Log Messages and Errors
Mouse Events
State

Test Data
Why you may be here...
  • Language skills and Applications knowledge, design and development.
  • Specialized industry and tools knowledge.
  • Free Code.
  • Your also interested in the Applied R&D Projects.
  • You need or are developing the same App.
  • Pick, U2, multivalued Object DB, database utilities.
  • Personal Info (resume).

Focusing on Software Development

Welcome to my personal and professional page. In a nutshell I provide scalable business applications on C#, Web and multivalued platforms and services addressing the complete SDLC for small business and developers (i.e < 500 staff).

If you need anything simply email at david_horsman @hotmail.com. I'll get back to you.

Button Details...
  • (V)iew: Hide the menus or move them. There are four different layouts that the user can use for the page. The view button switches between them with each click. It cycles the menu view showing to the side, hidden, top, bottom.
  • (M)ouse Over: Toggles image Animation. When Mouse Over is turned on pointing the mouse at any menu choice will cause the thumbnail picture to be displayed for that menu item.
  • Font Size: Adjust the font size.
    • (-): Smaller.
    • (F)ont reset: Reset to the default font size.
    • (+): Larger.
  • (C)onsole: You can hide or show the console using this button.
    • (e)rror window: Shows or hides the Error/Logging Messages Window.
    • E(v)ent window: Shows or hides the Mouse Event Messages Window.
    • (s)tate window: Shows or hides the State Management Window. This window also includes the form that allows changes to the various internal program controls and features.
    • (T)est the console: Test the debug console message, error and type handling. This button sends test output to the console.
    • (c)lear the console: Clicking this button clears the messages from the display console.
  • (D)ebug: You can turn all of the debug features on or off using this button.
    • (o)n Error: Enter the debuger after any ERROR.
    • On (a)ll: Enter the debuger after any MESSAGE.
    • (m)ovement: Generates trace and debug messages for any animated move.
    • (t)ransitions and Filters: Generates trace and debug messages for the transition effects.
    • (d)etails: Outputs detailed verbose messages rather than summary tracing. Typically detaile mode applies to menu items where as summary mode refers to the group of menu items.
    • E(v)ents: Generates trace and debug messages for (mouse) events.
    • (h)over: Highlights page elements by type.

Whats missing:

  • Large image zoom: (Refers to the larger image that appears when you click a thumbnail.)
    Planned to zoom in and out with the frame sized fixed.
  • Large image full screen: This would either fill the window with the image or do so and switch to full screen mode.
  • Hide Thumnails: This would hide or show all thumbnail and large images but would otherwise not change them.
  • Clear all images: Clicking this button clears all large and thumbnail images currently being displayed.
  • Recalculate and display all images: This is a button but mainly a function called that recalculates the position all large and thumbnail images currently displayed.
    It is mainly intended for view changes, zone resizes or unanticpated errors.
    It requires at least the retention of previous state to be efficient.

What with all the buttons
on this page?

An important purpose of this page is an educational one. Many of the features and much of the javascript are intended to help new users observe and become comfortable with scripting.

There are two button controls that change the view of the web page or alter how the animations behave. The rest of the buttons consist of two groups. The first group controls various debugging features, the second group controls a text, event and state console. The console is used display error, event and trace messages as well as access a large number of configuration and control programmer's variables via a form. Students interested in javascript, web page development and animation will find these two groups useful.





If you need more details about skills:


Languages: C#, Javascript, X/HTML/CSS, Silerlight, multivalued object databases.

Applications: Service Billing, Accounting, Inverntory/SOE, Project Accounting, Purchasing, Mangaement Reporting, OLAP, Service Billing, Release Management, Legal, Foods, Importing, Distribution, many others.

Specializations: Service Billing, Mangement Reporting, Broadcasting and Cable Television, Communications and System Links, Protocols and Interfaces, e-commerce, IDE utilities, Data and Code Conversion.

Free Stuff: see the "free stuff" listing on this page.

Myself: Resumes, skills and accomplishments.

SDLC Areas:

  • Product Development, Scope and Requirements
  • Design and Development and Support (OOD/OOP, RAD, Agile)
  • Original User Interface, Class and Database Design.
  • OSS and MVVM and Database Frameworks.
  • Development/Coding Standards.
  • Code Generation, Templates, Scripting, VBS (Automation and efficiency).

that was a long list...

I'm having a long career and so have naturally covered a lot of ground. With that said, my focus is always first and foremost on producing code and designs.

I have mainly served small developers and small enterprise clients. This resulted in my frequently providing most services found in the SDLC as well as product development roles.

One challenge was to effectively transfer these skills to large organization solutions. This works best by being focused on the role and task at hand in combination with drawing on a much broader than typical background of experience.



Warning!!!
Before you
grab this client script...

I want peers and students to look at this style and code, not use it necessarily. The parts I might use, particularly the calls, will all be revised first. But I always intented to use AJAX (and now two other libraries.) It is industry standards that I support and endorse, not a mix or third party solutions. And in coding style, I am generally pro complex (but brief) snytax (like $(?)). AND I cant' emphasise enough, I don't actually recommend hand-coding in a production environment, but in the classroom yes.

This is an educational, training , prototype, platform evaluation project intended to have some residual and potential economic value. It is a high priority, in that it advances critical path points in three projects that would otherwise stall.

There are tons of educational script samples out there... So I'm not sure that "look at what's unique about this incomplete project" is really of great value to the community. In fact what I really would rather do is make the .Net database layer from another project open. There are hardly any samples of C# code that abstract a layer over the databases (integrated with MVC app, or whatever.) when I looked. Code snipets are in no way the same thing. That pattern (layer, component or class) is way more compatilbe with MVC and DB models as well as both current or best practices.

HAVING SAID THAT... I would greatly appreciate any feedback, criticism or comment from senior web developers and peers. I think we'll all learn something from it. Who knows? Maybe the world will become a... OK let's not get silly now.

I am looking for criticism, deficiencies, strenghths, QA issues, recommended current/best practices and that sort of thing. Collecting other code samples is now on my todo list. If you can spare a few minutes or more though please have a look and contact me. This can be via email (david_horsman @hotmail.com), openly in ITT (IT Toolbox) forums or any manner you like and I will try to use.

I will attempt to convert any usable feedback into POSH and XML like programmers comments, documentation or discussion. It will take some time to complete the documentation, keep in mind this is a beta site. Contributions from students are also very welcome on the basis that lack of experience really doesn't alter the facts. Part of the project's purpose is after all to give a students eye view and progression.

Here's the WARNING:
(Note to developers and students.)

This site was in most respects developed 100% without online research. With two exceptions all solutions developed or found on the site were either taken directly from my existing manuals or stumbled upon without aid of any sort. There serveral examples of inactive code, inactive failed attempts, UI redundancy and functions that perform similar or duplicated functionality. These functions are for demonstratioin purposes and I am concerned that anyone giving me a hand might misunderstand that and waste their valuable time. I want those comments too, but not under a mistaken understanding.

It is also very important to start off aware that this site is a script equivalent of POJ. It deliberately makes no use of external frameworks (including AJAX) and attempts to find solutions (if possible) within the domain and restraints of JavaScript and DOM alone (like that wasn't contradictory). There are frequent times when exploring english like sytnax that performance is being ignored.

Note: The CSS is intended to explore OO CSS concepts along with CSS functional, attribute and text decoration usage stratagies. The CSS is, like the JavaScript, is simple in it's syntax and a bit verbose. POSH, XML and OOD, though not used, and their relationship to CSS at a logical and implementation level are central to the CSS too. One unsolved issues in the CSS is could (separated) and should object like CSS entities be combined (composed) during obsfusication.

The project uses a single object array, avoids compound function calls, explores a verbose coding style intended for obfuscation (compression really,) and looks to provide an example of most basuc JS syntax and a variety of loops or patterns that navigate or access the page. My intent is to ultimately revise and only leave active only the script that might be considered a good (or best) practive given the above constraints as well as retain the sub-optimum or incorrect solutions, failed tests, etc. For example AJAX functions would be chosen before using a function from this library.

My intent is to ultimately revise and leave active only the script that might be considered a good (or best) practive given the above constraints. At the same time I hope to retain the sub-optimum or incorrect solutions, failed tests, etc. in some well presented form if it serves an instructional purpose. This should result in a history that consists of the script free version, the POJscript versions, an object based best practices version, and finally one that incorporates selected frameworks. Concurrent to this evolution will be a switch over to widespread server includes, PHP and database driven composition of the content.

Yes I did have some historical JS experience (2002) and am a senior developer and wasn't ignorant when I started. The isolation was more an attempt to get away from almost always locating a solution on the net when troubleshooting or developing. Thankfully, developers rarely have to do hard invistegation and find their own solutions and workarounds. While this is great, it tends to alter troubleshooting into the art of good browser research. Obviously, this in combination with hand coding was an imense advantage to my skills development; I already know how to learn libraries like AJAX or JQuery quickly and effeciently.

By way of amusing example, it turns out that of the two problems I looked up on the net or drew upon memory to solve (like the BR clear both) had an oddly circular relationship to internet research vs. ?bench? research. One of these two solutions was obsolete and I had indepently found the right solution currently in use. What was interesting is I didn't know that and failed locate that in subsequent code review searchs with any success until I "discovered" solution. (not DIVitis but nesting your floats in an outer float.) Only once I knew the answer was I able to phrase the question.

Risks, rationale and whining...

Potential clients and of course consultancies have tended to slam my lack of activity in PHP and ASP and my decision to put the effort there last; it is admitedly poor business economics on my part. Respectfully, I get that, but given my time are very limited resources they should only be done at the time needed or it would throw off other tasks. Frankly, these technologies are barely a challenge and a learning curve I dealt with a dozen times.

MOVE THIS related career economics thoughts.

Yes I strive to be an egoless programmer but...
Across the table (during the previous three years) there was a simple (or understandable) business decision to not take a risk with mid-level students and developers like myself in the 1-4 experience range. As in there were dozens of C# and Web developers with 7 years experience out begging for jobs. I'm an IDE tools, data, code and legacy software expert, but I can accept the percieved risks and caution I encountered on the part of prospects during this and the previous development project. But that should cut both ways.

However, the best overall strategy, tailored to my needs, personality and value to a client was the one adopted. In many respects, I just wanted to see how it turned out provided all the goals were met. This is worth mentioning in that I saw the "attitude" on the other side of the table as short sited in that a demonstated tendency toward long term loyalty was on the tableto the first decision maker to take the risk. On the other hand, my initially junior now senior rates (after 2 years effort) were increasing at a rate of 100% per year and if now stable, are still very inexpensive. Anyone smart enough to take the bait, or even back a technology would have that value at the rate then, not today regardless of wether it would rapidly stabilize at or below current market value. With the resources, there are many large companies that are able to implement that to varrying degrees through policy. So I think I can make a sound business case that I am of "great value" I investigate and take risks and would't make that mistake (hopefully) if I had similar resources. Not that I haven't been there too... I.E. I willing to risk to throw these two paragraphs somewhere on my career page on the chance I'll attract the right client that will get the underlying message and see past what might could easily be seen as imprudent, imature or egoish sour grapes.

ON TOPIC:

To provide further academic examples and alternatives, there are also three other ways to control the internal features of the page. One method shown is simple list of clickable links that toggle different settings. The second method makes use of a form where a variety of control variables can be altered by the developer. The third is programatically; to alter configuration via calls to the same component as the form.

The Web Template Project is typically of many projects I plan. I know that the greatest cost effectiveness can be gained by encorporating multiple goals within a project. In this case...

  • The first priority is that it meets my, MacroDM and Axion's need for an interesting, attractive, conservative web site.
  • The second priority requirement is that is provides a simple button control of layout and animations.
  • Additionally, it provides over 10,000 lines of javascript, HTML and style sheets for educational purposes. It is entirely POJ; particularly exploring what can be done within that limitation.
  • Also, it provided further research for my document, web and coding standards. Particularly, verbose coding techniques and web strategies leveraging client side resourses. This is a proto-type set of templates; currently hand-coded but intended for a web UI.
  • Further, it provided a moderately complex and adjustable application suitable for benchmarking the JavaScript environment on various browsers and client systems.
  • Last, it is the foundation work in terms of standard, style and strategy prior to Web Enabling an enterprise application.
See inside a major C# development effort!
  • 40,000 lines of clean code!
  • Multi-threaded design.
  • Mature exceptions handling.
  • Integrated Model-View View-Controller (MVVM).
  • Operating System Support (OSS).
  • Logging / Trace features.
  • File Application System.
  • Language Virtualization and extension.

In applications design and development, the sound business case, close attention to business rules but also to user interface design will lead to a quality product.

Though mainly focused on producing a great deal of clean code; I am also committed to maintaining a broad base of skills. My longest specialization is with multi-valued database languages, and more recently in C# with a lesser focus on C++.


Scalable Robust Applications, Products and Services!

  • Development in C#, C++, and VBA using SQL Server, MY SQL and Access.
  • MS Office automation.
  • Large complex business and utility applications.
  • Web Page development (XML, HTML4/5, CSS2, JavaScipt, templates, automated content.
  • Post-relational multi-valued database development.
  • Several software products.

The bulk of my work has been in Service Billing, Customer Care, standard billing, accounting, invertory and sales order processing, management reporting and OLAP. This required a lot of transaction processing and electronic interchange of data as well as data conversion and cleansing. Secondary specializations included a good deal of both commercial and proprietary IDE and Communications Applications.

This no nonsense background combined business expertise complimented by experience writing development tools and utilities dating to the mid 80's. This also includes work on more light weight solutions in automation, workflow, Outlook VBA classes and MS Access applications.

Document management and portfolio management for small business proved to a rewarding area of focus. Scripting, templates and development standards have been a business area complimented by development of high production user interfaces.

Working for small developers and small businesses ranging up to two hundred staff has meant wearing a lot of varied hats and many interesting projects. The opportunity to include small business consulting has also been challenging.

Hand coded web pages and using WPF and Silverlight.

With a background including work in markup languages, communications protocols and database transfer and conversion I have naturally been following XML and Web service technology closely. My own focus has been on hand-coded web pages, script and templates as opposed to vendor tools. Current work includes a heavy emphasis on WPF and Silverlight along with on-going work with CSS2 and transitional HTML4.

This web site itself was an evaluation project where the requirement was to be 100% Java free, retain an attractive look, be interesting, and be easy to update.

Commercial business applications. Advanced code, data and text utilities.

My more complex applications have targeted areas such as service billing, accounting, sales order entry and inventory control, communications, and control system interfaces. Advanced development tools included code conversion, generation, data conversion and search utilities.

Changes and improvement to existing applications.

A sizeable portion of my consulting work has involved modifications and enhancements to existing applications. The ability to be efficient and cost effective in this form of contracting is critical. In this regard I not only employ RAD and Agile methodology but have a particular focus on low cost solutions.

Free Script & Automation Stuff:

Javascript:

The javascript for the user interface template along with the animated thumbnails (with random effects) will be available soon, I'm just not sure when.

This is mainly a "load test" in terms of testings javascripts limitations for complexity on the client side. This was done by having the framework interact heavily with the animation.

This is first and foremost an instructional and academic project. In includes a number of console features as well as alternate user interface strategies. There is also a java free earlier version with some rudimentary effects.

VBA for MSO 2003:

The Outlook folder replications classes could be cleaned up and useful as a starting point for some projects.


Copyrighted free loaners?

Multivalued Technology

I have a mass of quite poweful PICK (or if you prefer, U2/Universe) code at my disposal. Some of the in house tools are available on a conditional basis to assist other developers, peers and users.


Potential Open Source?

C# & .NET

At the point it is unlikely that the Database Conversion, File System and MVVM Framework will be open source. I am totaly open to discussion of the idea but saddly have zero experience with the business model.

Why I thought it is useful was first it's educational value, the project was evaluative and academic in nature and scope. Previously, I was unable to find any examples or peers giving away C# database layers of any sort, there being a pretty substantial sample in that area.

For more on why you need similar components, see its DB detail page for the rationelle.