Q Squared Inc.

Where the 'Q' also stands for quality.
Home
About Us
Contact Us
Site Map
 
 
Q Squared for your Information Technology needs

Founded in 1989, Q Squared is my IT sub-contracting umbrella pseudonym. My contract services include computer business application research, requirements gathering, design (UML), development and support code for legacy (COBOL, DB2, CICS, JCL) and server based technologies (.NET (ASP, C#, VB), HTML, XML, SQL Server), testing and implementation. Whatever your need I travel to you. Work from home scenarios always welcome.
 
Latest News:
 
 
07/15/2009, Clearwater, FL; Hello room service? Can you help me find my web service? I seem to have virtually lost track of it.
 
Have you recently got the urge to smash your laptop speaking in tongues hands rubbing your forehead in utter frustration?  Well then you probably aren't trying to learn how to use ASP.NET web services with Visual Studio 2008, IIS 7.0 and Windows Vista.
 
As of this date I have successfully implemented ASP.NET web servcies in my web applications that utilize AJAX extended features. I struggled a little with coding and testing as the debugging features in Visual Studio 2008 do not help such as providing intellisense at the line of code where the problem occurred. I will look into a product called Fiddler which was suggested by some of the ASP.NET community forum contributers. I did get a call to a public weather web service to work once from a Windows Application but susbsequent calls failed. I fail quite a bit on code in the method trying to convert data to and from arrays.
 
The implementation objective is to handle multiple web services as a project and to expose them so that they can be accessed through a URL associated with a virtual directory that contains the web service, its methods and generated files that provide information needed to interface with the web services and methods. These files might be a WSDL and a DISCO type for example. Add a little complexity with IIS 7.0 on a Windows Vista machine which simulates the server environment but is still local (localhost) and you have a real maze going on.
 
Enter the proxy yet another player in this mystery.  The proxy is a class that is used to work with objects at runtime for requests/responses to/from the web service and the calling code. At execution time a lot is going on that gets these web services to work in Visual Studio and from IIS 7.0.  
 
As a curiosity I created a seperate project for a HelloWorld web service both as a project and as a web service website.  Why there are two of these in Visual Studio 2008 I haven't a clue. I think it comes from an old original idea Microsoft had and changed.  In any case I added the project directory to IIS 7.0 which I believe made it a virtual directory. I requested the ASMX file which allowed me to see my web service and showed me the URL it was accessed through.  Then I went to the .NET command window tool and executed the WSDL.EXE pointing to the URL from the browser.  It actually created a CS file. I did not see a WSDL file however which is what I expected to see. 
 
I also went the route of adding a web reference to web services as a project and as a web site. For the web site one it added the WSDL and DISCO file. For the project one it just added a localhost.  So whatever that means I'm not sure yet.
 
The worst part of working with ASP.NET web services is the limitations on how to handle and return data to the object making the call. Web services data returned or passed to the methods have to be XML friendly. That means that if you are returning data from a database tool you have to convert it. The examples I have seen that handle multiple data types use arrays. Moving data from a DataTable object to an array through a class type is a real pain. The better solution may be to convert from and to an XML Document object but I have not seen this technique used in examples on the web. I hope to discover a consistent, dependable and practical solution to put to use. 
 
Web services have been a primary target for me in this .NET initiative.  I have learned that web servics are a common way to exchange data a concept known as web farms housing a multitude of them some in public UDDI directories. For my contract job tracking web app I could see the possibility of pulling a requirement directly from a job board in a keyword match and having it prepopulate an add job requirement ASP.NETcontrols for example.  Another idea might be to pull daily per deim rates from GSA which I currently cut and paste into an XML file.  Of course the web service would have to be available but you get the general idea. 
     
 
06/17/2009, Clearwater, FL; A Walk on the Client Side.
 
Its back to the client side of web applications.  I will be revisiting JavaScript and learning what AJAX has to offer.  I already have a couple of JavaScripts that I picked up to do pop-up pages. Its a good time try out JDeveloper too which I plan to use to start up some Java initiatives.  The client based JavaScripts should work on both with DHTML. Not sure how things will shake out server side but it should be interesting.     
 
06/15/2009, Clearwater, FL; Web Parts?
 
I took a look at web parts but I am not sure where I can use them or for that matter if they are worth the effort to implement. Will be looking for some real world examples and see if anyone out there is placing this as a job requirement. In my initial readings I have found the amount of effort in combination with customized and/or composite controls to be rather daunting.  I guess I feel that coding controls is the job of the software vendor.  Perhaps my eyes will be opened to vast possibilties as yet unforeseen.  The problem may be that I've limited my time on social websites such as YouTube and Twitter to a minimum. I know the kids like to be able to arrange their music, video, pics and blogs with their own signature style.
 
06/07/2009, Clearwater, FL; Adventures in IIS 7.0 Deployment and Security On Board the SQL Express.
 
Deployed two intranet web applications to IIS 7.0.  This is another step towards that enterprise wide business approach. It's a time to bone up on server terminology and do a little administration whilst fine tuning website management skills.  Had I been paying attention to good website development techniques or would my transition to the server prove to be a nightmarish experience?  
 
I've never had to be the administrator of the servers on my contracts.  As a developer I was given my access privaleges based on my anticipated support area coverage. On a few occasions I had to install software on Windows that required that I map to software tool directories.  I was often confused. The first change to my C#.NET back code was to change the hard coded full path strings to server mapped paths rendered at execution time. These were files such as XML and text where I stored data that I planned to use across applications or for administrative use such as unhandled error logs. Luckily this was not extensive as most of my data usage is through SQL Sever. 
 
Speaking of SQL Server I moved to SQLExpress 2008. I should have done this a long time ago. I didn't think that SQLExpress would provide me with the tools that I needed. I was wrong! I downloaded it, installed it and attached my existing SQL Server 2008 database to it without a problem. So now I have two SQLExpress versions the other is 2005 which I used for the job tracking database. I may look into an upgrade conversion to 2008 for that later but I think it is a good idea to develop with both and address multiple version backward compatability needs that I'm sure exist out there.  
 
In the midst of applying security to the web apps.  Both of these web apps are of the intranet ilk. Security for an intranet web app is usually different than a web app available to the public. Commercial websites have many security issues which I may or may not be able to simulate.  Secured Socket Layers is just one important area of concern for handling transactions such as credit card payments. I will not be taking this level of security on. In fact in the future my finance web apps will probably defer payments for services to a thrid party service that has a devoted staff of expertise.
 
I decided to use forms authorization and the ASP.NET API. I used the Visual Studio 2008 Web Administration Tool (WAT) to store credentials in SQL. For the JobTrack web app I created 3 roles to assign authorized access levels to forms authenticated members. 
 
I cut my teeth on encryption and decryption targeting the request/response QueryString that I use to pass data between pages to maintain state and flow. I haven't seen byte level code since my Fortran and Assembler days. Egad! Yes folks these technologies do have a tendency to get recycled. I copied the encryption/decryption class code right from the Apress book. I studied it but to tell the truth the use of byte arrays, UTF8 encoding and hexadecimal character representation in the string to prevent special character unexpected alteration of the context of the original clear data was quite difficult to grasp completely through.  Kudos to the original coder. I did figure out how to parse out key/value pairs of my decryption string object in leiu of the original 'Request.QueryString["Parm"]. Check out the ASP.NET Forum for my solution.  
 
When will I get a paid position again?  I'll be looking at ASMX/WCF web services and messaging probably with Ajax and JavaSript in the next couple of months. To think my last contract was just about changing JCL. I'm waiting for the fun to begin with conversions from legacy to client/server. Which of us will go first; the last line of COBOL code in the world or me?       
 
 
04/03/2009, Clearwater, FL; Q Squared-Brian Quinn starts up training initiative with an ASP.NET 3.5 web app with C#.NET and SQL Server 2008 database.
 
With more unexpected time off a new formal training initiative was undertaken.  This is phase two of an overall strategic initiative to manage the contracting services as seperate business entities.  The underlying purpose being a foundation to implement a business object approach to utilizing .NET technologies such as web services and stored procedures. 
 
This project will push the envelope a little further than the job tracking project did.  We will use a more robust and professional approach in both methodology and implementation of current state of the art software features in the .NET universe. Most of the project tasks will center on web application building and deployment. As a guide we are using the text "Pro ASP.NET 3.5 in C# 2008 written by Matthew MacDonald and Mario Szpuszta out of Apress publications. 
 
I like to think of this project as being recursive in its evolutionary characteristics.  Sort of like the artist painting a picture of the artist painting a picture.  As we learn more about what we need to learn we become better at organizing our ability to apply the technology that we learn to help us learn more efficiently.  You can also think of it as killing two birds with one stone. We correspond each task we perform in the project to a lesson exercise in the book thus instantly transferring the knowledge we obtain to a practical hands on solution that inevitably helps us to become better at what we do.  We also set up a scenario for simulating distributed development by having multiple web applications and databases for each business area. This now makes the implemenation of shared database components a fundamental foundation for making data requests through stored procedures and web services from various interface points an attainable goal.
 
Some of the highlights that we expect to come out of this project will be the ability to fully understand and implement stored procedures for SQL Server 2008, use of LINQ with various datasource types within ASP.NET web applications, website deployment to a server and use of web services designed to tie business objects to communicate and handle data across multiple databases.
  
It's sort of an adventure forward for me I must admit.  At this point I am not even certain that I understand fully if my planned business objectives and infrastructure changes will allow me to apply some of the more advanced topics i am hoping to hurdle.  If I have learned nothing else from getting into this .NET stuff it's that you end up going down many a rabbit hole even with the best of scoped out plan intentions. As an example I spent way too much time on the Rich Controls lesson trying to force a desired functionality that did not warrent the time and effort.  The lesson learned there was to accept limits of available software tool options and know when to move on. 
 
01/18/2009, Clearwater, FL; The current economy and some personal observations about the IT contracting business
 
This has been a difficult year for all of us in this country struggling with the current economic crisis.  I had just settled into a contract with DMV in NY State when the governor of NY announced drastic cuts in spending which eventually led to my being cut.  I finished up the year at AFLAC in Columbus, GA on a project that I'm still trying to figure out why it was even started. 
 
I am not surprised that we have this crisis in our country and our IT business.  Our standards have dropped over the years.  We have been conditioned to accept sub par service and results in our personal and professional interactions.  Our banks, automotive manufacturers, oil and energy producers, healthcare providers and government agencies from federal to state to local are all sinking in backward, outdated beauracratic ineptitude.  They have become the top heavy empire that collapses upon itself in Isaac Asimov's science fiction Foundation series.  Unfortunately we do not have a team of scientists at the edge of the universe prepared to implement a new phase for mankind's survival and growth.
 
We have gotten lazy and stupid in this country.  We accept products that don't work.  Even the geniuses at Microsoft continue to release software with bugs.  They were one of the pioneers of lowering the standards on quality IT software.  They promote perpetual change for no good reason other than to have people believe that spending more money on a new version of a software product is what they absolutely must have.  If it doesn't work don't ask us to explain ourselves because we don't have to.  Don't ask automotive manufacturers to build inexpsive realiable cars that run on alternative energy sources.  Don't ask about why you are paying 3 times the price to fill up your gas tank or heat your home.  Don't ask why banks who have made poor decisions in lending money for homes should be bailed out by hard working tax paying Americans who's credit scores are preventing them from getting affordable insurance, credit or even jobs to feed and house themselves by the same banks.
 
Don't ask government agencies to account for their waste of taxpayer funds.  Don't ask why so much taxpayer money is being used to pay for jobs offshore that could be used to give jobs to those same American taxpayers.   Everyone of the client project job sites that I travel to have more green card or VISA workers than US citizens.  Is this offshore initiative by design or just simple deterioration of the American workplace?  Don't assume either way.  Turnover the stones before you make your assessment.
 
At  AFLAC I was reminded of a common pattern that has emerged on IT contract projects.  I had several conversations with a colleague a few years my senior.  We both came from legacy mainframe backrounds.  He was very critical of change to server and web based products such as .NET technology.  He prefered that we reamain using COBOL, CICS and JCL forever.  When I told him that I disagreed and was training myself in said .NET technologhy he pointed out that there were many kids that were working on this and that I would be remiss to compete with them.  I have never stopped learning and never intend to.  I consider my strengths as a well rounded blend of analytics and ever evolving software application.  The real key is to know the W's, who, what, where, when and oh yes how. 
 
Learning and evolving is a way of life.  It has always been this way.  We have forgotten how and in all fairness some of it has been propogated by some pretty clever manipulators.  We have to go back to basics and rebuild our country.  It begins with pride and strength.  Never accept anything less than the most of yourself and others.  This is the road to recovery.
  
01/18/2009, Clearwater, FL: Job Tracking Web App (Update) -
From VB.NET to C#.NET and more
 
I have begun my journey into C# with a conversion of my web application
from VB code behind to C#.  A couple of additional changes come with this effort which include a move up to Visual Studio 2008, SQL Server 2008 and .NET 3.5.  The new project will revisit the creation of a cuztomized resume for each requirement that comes into consideration for service. These resumes must be readable as HTML and MS Word documents.  Although not a core part of the C# training it is vital that I am able to present resumes in a timely manner that best market the skills and experience that I offer as they pertain to the needs of my clients.
 
Highlights of the project will include new .NET 3.5 features such as LINQ, web application deployment and versioning to a server, more JavaScript and AJAX and a some minor security and authorization techniques.
 
   
07/10/2008, Clearwater, FL: Job Tracking Application (Update) - XML transforms and web application reports
 
The Q Squared job tracking web application is at the end of Phase III.  We now have the ability to generate a customized resume based on a matching job requirement.  This exercise in document creation proved to be an unexpected challenge.
 
Who would have guessed that generating a resume in XML and transforming it to HTML or MS Word would have been so awkward.  Working with documents that have tags in tree structures is radically different from working with relational database or other file structures used in computer languages like COBOL, C or Visual Basic.  
 
When I started this task I envisioned using ready made templates for resume formats that I would read in as XML Documents and write back out replacing body content within group tags with details from my data extracts which contained data content. That idea didn't pan out well.  Parsing through tag data wasn't easy.  The limitations on identifying and singling out tag types such as elements, text and declarations did not make match merge processing feasible.  
 
I ended up changing direction and decided to simply write the XML file out as a new XML Document.  I cheated a little by relying on global tables to store repeating resume  lines such as skills set listings.  In time I'm sure I will discover how to make better use of variable array lists and shared class data retrieval but that is another story.  I did a lot more typing than I though I would to get the XML file completed and readable.  Many attempts resulted in an unusable XML file especially when characters that had a keyword usage in XML where in my resume content.   
 
The XML file completed I now journeyed into the unfamiliar territory of XML transformation using XSLT. This language really confused me.  A language of templates and slashes. The headaches really started to get bad now.  It took me days wrestling with this until I was able to get results to display in HTML.  I was cornered into having to transform my resume into HTML tables.  Other options caused problems for the transform code.  I did get a resume and was able to set up an email from the web application.
The only problem now is that when I use the MS Word option to view the HTML document I don't get the same presentation results.  MS Word sort of decided what I wanted and as a result the details in my project table were subjected to a previous table that held my project header.  The same XML the same XSLT and two different looks when viewed in HTML or MS Word.  I left it at that for now.
 
The Report Viewer feature in ASP.NET is interesting.  The most frustrating part of this feature was using randomly selected reports and object data sources at run time.  Having to figure out how to set up the instances and add the instances to controls was not easy.  After a little beating of the old noggin against the wall I worked it out.  Now I have some very simple yet effective reports.  It's a start but I have my eyes set on tools like Crystal Reports in the near future.
 
The rest of the job tracking web application project will be considered revision.  I hope to get a little more functionality out of the resume generator and figure out how to set up XSLT for multiple resume template layouts.  I also want to highlight content when the resume option to focus on industry or skill experience is selected.  A little fine tuning here and there and I'm done.  The next project I have in mind is a training web app that will compliment job tracking.  In time I hope to get into more advanced areas using IIS, web services and message queing accross applications.
   
  
05/27/2008, Clearwater, FL: Job Tracking Application (Update) - That's not even remotely funny!
 
The Q Squared Job Tracking web application is at the end of Phase I.  The last task in the project phase was to set up the ability of a CSR in the field to add a GSA maximum daily allowance rate into an XML data file using a PDA of choice.  They would use a location code in an element node attribute to uniquely identify the node and store the amount in a text node.  I chose a very simple function to cut my teeth on my very first remote device process using XML.
 
My quick and simple task turned out to be more than I bargained for.  I got introduced to the world of device emulation and synchronization.  That's right folks I don't even have my own Pocket PC or Smart Phone let alone a test lab full of models to experiment on.  It's safer with the make believe devices.  The downside of it all is that the development environment on a laptop for remote device emulation through Visual Studio 2005 is painstakingly slow.  I mean really slow as in molassis slow ergo my news headline pun.  Of course the Microsoft documentation for using remote devices is fragmented and confusing to say the least.  I know Microsoft has knowledge based tools to drill down for solutions but they really need to streamline the approach for beginners.  I think Sun does a slightly better job on that then Microsoft does.  I'd say the very first step in the process of learning to code for these devices is to explain in simple useful terms how to sync up the emulated device with a develpor's PC.  
 
It took me days of googling and stripping out fragment factoids from Microsoft to get ActiveSync to connect a Pocket PC Mobile 5 emulated device.  I started my project with the assumption that Visual Studio 2005 had all I needed.  Hah I say!  Ha Indeed!  I had downloaded ActiveSync a year ago and had no idea of what it did other than the fact that I knew I wanted to try some PDA data processing that would update a database or data packed in a message somehow.  I selected XML as my data file because I wanted to start down the path of XML serialization anticipating a need to convert and pass data through some sort of gateway architecture to a server or mainframe (I don't have either at my disposal currently).  
 
After about 5 terabytes of downloading from Microsoft I started my C# Device Application in Visual Studio 2005 using Mobile 5 emulated devices with ActiveSync and Device Emulation Manager and XML with schema and style sheet.  Simple forms use with objects was simple.  Data was the real problem.  I gave up on a SQL Server Mobile database walkthrough because I couldn't get Visual Studio 2005 to recognize a connection to its server engine.  I had planned after all on using XML anyway so I let it go.  Setting up the usage of the XML data file required that I copy the XML files into the emulation device folders.  I went around and around on this until some kind soul out there explained in human terms that ActiveSync was needed and would allow all the directories of the PC and the emulated device to appear in an explorer file.  Synching the devices was a living hell.  I finally got them synched up and added my XML files to the emulator device folder.
 
Now my efforts went to converting XMLReader code written in VB.NET to C#.NET for the device application code.  I had already figured out how to extract the daily maximum allowance amount to use in my web application when calculating a per diem rate on a client job requirement.  That effort turned out to be equally as difficult.  It had been a while since I last coded in C++ and C# was mostly new for me.  Turns out there is very little consistency between the two languages.  I had a pretty complex set of conditional logic in place to parse through the nodes of the XML file.  I googled a lot in getting the code converted.  I had to do some clever reverse negation to reproduce the do until conditions.
 
I did get the XML file read and will now set up the code to add to the XML file.  I know that I could update the XML file in an MS Excel workbook in 30 seconds with XML mapping but I had to start somewhere with remote devices.  The really good stuff will be in phase 3 of this project when I set up the processing for using a PDA to enter a skill search string, get a short list of candidates, select a candidate, request a resume and have it sent to a contact listed in the device.  This would send a message with data perhaps XML I'm not sure yet to trigger a script to extract resume data, format a document of choice and fax/email it to a client in a matter of minutes or seconds.  
      
I'm worried about paying the rent right now but I am sure learning.  Reading Tony Dungy's book Quiet Strength too.  I'm a huge Colts fan.  I could use the inspiration right now preparing and improving myself in my career and like Tony mentions quite a bit waiting to see what plan God has for me.
  
 
Why  .NET?:
 
It is my initial goal to get my feet wet with some legacy to .NET conversions.  I'm trying to get as much done while I have all this down time.  Of course no contract worker really wants too much down time.
  
What you will find about me in this site.


If you are looking for help with your legacy business application solutions you have come to the right place.  I offer COBOL, DB2, CICS, JCL skills and more.  Rates for the Tampa Bay area are as low as $37.00  per hour.  I even travel to client sites if you need that.  Want to put me on the road.  It's OK because I'm free to travel on an ongoing basis to your client locations. Hey .NET skills are in the works as you read this.  I never stop learning and figuring out ways to serve you better.  What seperates me from the average computer programmer is my strong analytical and communication skills.  Are you frustrated by technical workers that can't write coherent and useful documentation?  Does it bother you that your technical workers can't articulate at business meetings or presentations?  You needn't worry about that with me.  This is an area that I believe is often undervalued.  In a time when software skill keywords dictate who will get interviewed isn't it time we stopped overlooking how valuable the intangible skills truly are?  Don't believe for a second that a high Brainbench score is the key to a successful candidate. 

What can I do for you?


I hope that you will consider my offer of assistance with your IT business application needs. I have been in business for 20 years and I'm not ready to retire anytime soon.  When I take on a project I give total commitment to getting results.  Your problems are my problems.  Your success is my success.  I've retained my old fashioned views on partnerships.  You watch my back and I'll watch yours.  That's something that I learned in my volunteer National Guard commitment. My approach to business solutions come from a hybrid of experiences on multiple contracts with various clients.  This exposure over the years working with some of the smartest minds in the business has prepared me to deal with a multitude of problem scenarios and resoultions. My values have their foundation in being mentored by people that cared and strove to help others around them.  I was taught to take pride in my work and to never give up no matter how difficult the situation., I believe that foundation of good morals, sports and discipline were the key factors to honing my abilities which I believe are endless.
 

 

Q Squared Inc.
Brian Quinn
518-727-2933
15 S. Jupiter Ave
Clearwater, FL 33755