Skype(drclue)Mail(drclue)Phone(email me)
Howdy, and thank you for your interest! Unlike many,the boot here is to a Linux Desktop configured for LAMP,Node,Asterisk etc. ,supporting both front end and back development. Seasoned telecommuter (18+ years experience) LAMP Logo Server -=<()>=-
Every machine in the house runs Linux. Most configured for LAMP, Asterisk, Node etc..
Linux Unlike many, the daily boot is to a Linux Desktop configured for LAMP,Node,Asterisk etc. The history here with Linux starts around 1994 and has included a wide variety,with the current favorites being Ubuntu and CentOS. For these systems and others , basic administration from a programmer's perspective. Typically any manipulation of the OS can be achieved, although administration is not my profession as those tasks are not needed on a daily basis. Can create both .deb and .rpm packages, and have occasion to do so as development work often involves creating installable servers , setting up init.d etc. Apache Install and configure from source, with even an ability to modify that source or create custom modules. Since the desktop here is used to develop LAMP projects, configuring Apache2 etc. is just part of normal life. Netscape servers have also been supported ,as well , including making loadable modules plug-ins In numerous cases custom HTTP servers have been created in C/C++ to provide some process an http interface and/or towards proxied transactions. Install and configure from source, create table layouts, stored procedures/functions, triggers, and enough time working with same that if reccollection fails , it is always known where the bodies are buried. Database experience in general extends back to before Microsoft existed and has even included chi 9 track tape. [ like the old sci-fi movies 8-) ]. It is from the this work with data that peers back then gave the moniker "Dr. Clue" in relation to pattern analysis. Also support alterntive data storage systems as well. Experience working with large databases (Such as every electronic part available on the market). Install and configure from source and/or configure modules. PHP abilities extend beyond the norm to include... Persistent processes (servers). Shared memory ,system V messaging FIFO/IPC. ...and other rarified air that can also be done from C/C++. Examples of applications include.... Running 100's of Spamhaus DNS transactions per second. Implemented webSockets HyBi server from spec Direct socket based email including MX DNS routing, mixed/multipart etc. WSDL/SOAP Including self assembling XSL templatable UI and transaction using only the public service descriptor files. As a strong supporter of MVC and the the W3C standards the codebase includes classes for dual data outputs supporting both JSONized XML and XML deliveries via various AJAX style methods including (data islands,node load,XHR) with optional matching client side tools for XSL transforms valid back to IE6. Here is a simple CAPTCHA example that hides some pretty interesting coding features.
By simply pasting [ require(“captcha.php” ] into an existing form submission script , with no other alterations , one gets CAPTCHA.
Controlled via CSS ( CSS Parsing) Proxy function including chunking AES128 encryption Virtual server support (optional separate CSS files)
NodeJS is a little new to the herd , but has already seen multi-user applications (Chat,Whiteboards,Buddy browsing,Multi-player game state etc.) , plus tools to allow browser side and server side to share far more javascript, and a client side implementation of NodeJS's require() functionality. Currently as part of an opensource effort, AsterClick An Asterisk PBX<==>webSockets event based XML interface built on PHP is being ported to NodeJS as AsterNode using the Socket.io module. Implemented webSockets server from spec in PHP to provide an event driven (NO POLLING, NO WEB SERVER) XML communications API between HTML5 browsers and the Asterisk VOIP PBX , including the optional client side ability of using .addEventListener() with Asterisk telephony events. Integrating web,database and telephony has always been a special area of interest. Gitt is the favored version control tool and is well suited for any interated development, be it design or code. While usage of Gitt is not mandatory , it is preferred.
Protocols HTTP WebSockets SMTP POP REST Asterisk AMI/FastAGI WSDL/SOAP etc. -=<()>=-
These protocols and many others have been both implemented and exploited over the years.
HTTP From simply leveraging headers to creating HTTP servers themselves , or even emails with inline images, the HTTP protocol has been applied in countless applications be they written in PHP or C/C++. WebSockets [ RFC 6455 ] WebSockets provide reliable, event driven communications between server processes and mondern browsers and older browsers can be augmented via various methods to use WebSockets too!. Implemented the specification from scratch in PHP, versionsthrough HyBi 17. Also perform websocket services in NodeJS, leveraging Socket.io which affords backwards compatibility through fallbacks to flash,AJAX etc. while sharing the same javascript websockets interface. Leveraged this protocol to create an event driven interface between Asterisk PBX and web browsers to provide realtime monitor,command and control in web applications. Performance is such that iwhen one presses the [HOLD] button on a phone, both the indicator lamp on the phone and the indicator in a web application appear to move at the same instant. SMTP/ESMTP Email can often be the bain of morning coffee, but is a frequent flier in development. The email classes developed here are able to use just about any mail interface, but often SMTP/ESMTP is the ticket. Experiance with HTTP multi-part dovetails into this too for rich email and embedded images, which display in most browsers even if they have images turned off! As icing on the cake, DNS MX routing is supported and can be used to verify email addresses actually exist, prior to sending any mail. Can also run DNS spamhaus checks to aid in filtering out spammers. POP The attributes and behaviors of an email account can be leveraged for a wide variety of applications, be they typical mail triage/filtering , or as command and control systems which use email as a matter of conveinance Either way, the classes to cover POP and other variations have already been written and application tested under fire. One such use was in having a server configured with a /32 range of IP addresses and having the code send emails from each ip address and test reception at various test accounts to verify the ip address was not blacklisted anywhere. REST Really, is there anyone left in the world who can't make a REST call? If one wants, you can have a REST server too! Asterisk AMI The Asterisk PBX telephony system is the most pervasive and open source server for interconnecting landlines, VOIP, mobile amd other communications channels. If you've ever called a customer service number , chances are the entire phonecall occured on an Asterisk server. The Asterisk AMI interface affords command and control of every possible action that can occur,and action that can be taken during a call. This API has been used to among other things, providing a realtime NO POLLING event driven interface to web browsers via a websockets server implementing both protocols. Also created methods of dynamically editing the Asterisk dialplan without server restarts. This is always a cool trick since nearly (if not ALL) asterisk management applications reload the server all the time. Asterisk FastAGI FastAGI is a sibling of Asterisk AMI, and is used to interface with an Asterisk Dialplan which is an Asterisk scripting language of sorts that routes calls to extensions. Created a tool that allows dynamic loading of PHP code in realtime and giving same complete control over the call as well as an automatically created AMI interface, so that those creating PHP are insulated from some of the grunt work and so that PHP scripts can be re-loaded without restarting Asterisk or any other process. XMPP Implemented the protocol using a few different techniques, and intend to do so again with WebSockets at one point or another. :) WSDL/SOAP Implemented classes from the bottom up to leverage WSDL Created tool for reading WSDL descriptor files that from same both generated the UI and processed the transaction. While even as is, the generated UI can be used with XSL, a more intentional use of that approach is in the personal SCRUM. :)
Browsers -=<()>=-
Making browsers play nice togeather since the days of Mosiac and Netscape browsers!
Browser Normalization The art of getting the various brands and versions of browsers to play well togeather is something termed here browser normalization. This normalization ability extends beyond JavaScript to HTML,CSS and even server side. The work with browsers extends back to 1994, and includes support for Chrome,Safari,FireFox,Opera,IE Including IE6 and while this particular page is only tested on Chrome,Safari,FireFox and Opera, less equipped browsers can be supported. While NodeJS is a server and not a browser, javascript normalizations have been occuring there as well which has provided among other things a browser side implementation of the NodeJS require() functionality. JavaScript has been coded here since Netscape first introduced it way back when. Like all the languages programmed, an object orientated approach is used, along with advanced features and fallbacks. Love closures too. Never really got around to making a "portfolio", but slowly , starting with some of the oldest, archived work is being dusted off and as time permits will fill this section with various goodies. Puzzle theamed Drag-n-drop interface to various Google search properties Clicking the [Goozle] logo leads to an old, but interesting Xbrowser element that provides a drag-n-drop interface to various Google search properties in the theme of a puzzle. Not only is this unit cross browser, but has remained functional through years of browser gyrations. Here is another ancient Inmformation out of date, yet interesting example of early dynamic HTML featuring an interactive map , dynamic fare tables etc. This demo is from 1999 and leveraged an early browser normalization library shaerd by a few other demos and projects of that era as well. CalTrain trip planner This little demo is of a programmable web trainset, which can be almost as much fun as the one under the Christmas tree. :) Here too that same DHTML library was used. Animated web toy train set. Using that same decade old libray from the CalTrain demo gets this classic Outer Limits TV animation. Outer Limits TV animation CSS Very adept at extrapolating design goals from minimal information , or coding pixel perfect HTML/CSS from design images for elastic,fixed and platform adaptive designs. Can also exploit and make fallbacks for) CSS3 animation features. If one looks closely, this page uses several CSS3 items, including this tabbed box and the starburst animation! Since some of the earliest browsers , conducting transactions with a back end after page load has been standard development fare, be it XHR,Script elements,iframes,websockets or other methods of post load communications. Typically when given a choice, data is delivered as either XML or JSONized XML, although many other formats have been encountered and supported. These days, the absolute best post-load communications technique is IMHO WebSockets, which are faster,event driven, and extremely low overhead and most importantly NO POLLING!
With the current websocket tools like Socket.io, even browsers that don't do webSockets are afforded transparent fallbacks to flash,AJAX or whatever the browser best supports.
Created jQuery/jQueryUI subclassing tools. These tools can intercept and augment the behaviors of pre-existing plug-ins to derrive new features or combinations of features, without having to create an entirely new plugin. Created tool for jQuery development that re-colors the jQuery icons sprite, combines additional application specific sprite maps and calculates CSS offsets for the sprites. Produce XML/XSL derrived jQuery elements via both xbrowser XML data islands Even in IE6 and AJAX delivered data, and can operate in multiple concurrent delivery modes, allowing an initial "AJAX" delivery to be embedded in the page instead of needing a second request. Created jQueryUI plugin loader that uses W3C valid HTML attributes to load widgets with no page specific code or javascripting knowledge required of a page designer. All jQuery plugin parameters can be legally passed in the attributes, including callback functions. This code can be used for various libraries and legacy code. This allows libraries to be loaded on demand and scripts to be maintained without ever needing to edit the HTML pages. XML/XSL Templating XML is all around us and the basis of HTML,RSS,ATOM,WSDL,SOAP,SVG and a whole raft of standards. Not only is XML part of the thought process, but it can be structurally styled with XSL into almost any other form or layout server side (or clientside back to IE6).

If your contemplating mobile applications , XSL should be part of that contemplation.
Also XML can be fashioned into cross browser data islands in the HTML page and then XSL used to produce even jQuery objects. One of the coolest things about XML/XSL is that compents of a project can be authored away from any supporting infrastructure or access to same which can aid in both security and ease of team development.
W3C HTML CSS XML XSL SVG etc. -=<()>=-
Leveraging W3C standards goes a long ways in MVC, and even provides low bandwidth templating!
HTML Be it XHTML,HTML5, or other variations , same is hand coded in a plain old text editor and easily validated. Very adept at exploiting the latest HTML5 features and/or creating fallbacks - fall forwards CSS As with HTML,XSL,... CSS is coded in a plain old text editor. From the first versions of CSS through current standards, including animations and the ability to provide fallbacks and gracefull alternatives. Can easily express tables , listboxes and other forms as CSS. Also as seen even in this web page the styling and overloading of form elements is fairly trivial too. :) Multiple layout strategies and combinations supported Centered body Fixed pixel Elastic Multi device Multi columns Sprites ...etc XML XML is the basic markup underlying HTML,RSS,ATOM,WSDL,SOAP,SVG and finds it's use in conveying data wide spread. A great deal of the libray code here both client side and server side , revolves around XML and/or JSONized XML. These two formats are designed to share the exact same XSL templates. XSL XSL does for structure, what CSS does for style, and shares the cache advantages of such external files too. XSL is easily hand coded. In this example XML/XSL producing jQuery accordion XMLXML via AJAX and xbrowser data islands is formatted with XSL to produce a complex jQuery accordion and provide a pagination function.
Since no actual back end is stored with this demo, same is represented by a static XML exemplar file thus always returning the same page. If one inspects the pagination elements, one will indeed see that they do indeed request the correct pages.
The use of XML/XSL allowed the front end to be developed without ever seeing the back end, using XML files to represent the server component. The code for this example supports xbrowser XML data islands and XHR transforms. The example works back to even IE6.
SVG is the W3C's vector art standard, and all the artwork one sees on this site is derived from the SVG vector format exported to .png. SVG has some major advantages over bitmaps in editing , resizing , scripting, merging database content into images, and most often delivers with less bandwidth. The concept of layering,grouping and other features are actually part of the image Unlike bitmaps, SVG images can be resized, rotated etc. with zero distorions SVG images can dynamically include data (charts,diagrams,personalizations etc.) SVG images are scriptable via javascript SVG images being XML work perfectly with XSL SVG images can be deployed on any browser SVG images are often a fraction the size of bitmaps SVG images can be rendred to bitmaps both server and client side. Like any w3c standard that gets the job done, it has full support!! Used with other W3C standards like XML/XSL , data driven images can be sent a single time , cached and then customized over and over with but XML messages , reducing bandwidth in a complex charting system for example to but the unique data being redered from view to view.