Charles' Log: week of 13 Nov

  1. Nov (Monday).  Modified e250 root's mydb2cc (start DB2 control center) to include db2jstrt.  Seems to work consistently now.

    Finally wrote working recursive display of Danly left "exploding category navigation bar".  Establishing firm documentation standards for my macro files, and (especially for complicated recursive stuff), show code synopsis in psuedo-code first.

    Seems to be a new bug in Net.data: the @dtw_exit() function doesn't always work, especially when called from inside a %include'd file.  Makes debugging difficult, especially if (recursive or other) loops get out of control.  Moral: always examine "view source" output of page for clues.

    Discovered bug work-around: in order to make net.data macro language functions recursive, define the function twice: once with no body, once with the recursive body.  E.g.

        %macro_function recursive_func() {
        %}
        %macro_function recursive_func() {
           {% function body... %}
           @recursive_func()
           {% etc... %}
        %}
        

    Wrangled with IBM tech support (800 237 5511) to try and get definitive answers on Net.data bugs.  They think "our" customer number is PRA7781, but some of the front-line people that answer the phone say this is an obsolete number.  Different people seem to think this number relates to a contract in either Atlanta or Chicago, and some let me through.  I suspect we don't really have a valid customer number, but a careful display of ignorance and frustration seems to get me through eventually.  Once I've got a specific PMR response number assigned, support is golden.

    Today's duh!: we are running version 6.1 of Net.Data, but I printed out the version 7 docs.  Navigated www.ibm.com to Net.Data support and printed out the 6.1 docs, put them in my "official" binders.  (Not a whole lot of difference, a few features missing.  Most bugs are still bugs.)

  2. Nov (Tuesday).  Cleaned up home page display (dhome.d2w) and category page display (catdisp.d2w) to use same model, split out appropriate %include files.  (Banner.i, quicksearch.i, leftnav.i.)

    Reviewed category navigation model with Addie (since there is none in the mockups or shopper experience), and wrote 1st draft of catdisp.d2w to display a three level catalog display: currently selected category on top, 2 x N table of sub-categories, and linear list of sub-sub-categories under each.

    Entered sample product data by hand, began work on display of abstract product information (a product is, for example, a T-slot bolt; an item is a specific kind of T-slot bolt with specific attributes).

  3. Nov (Wednesday).  Added display of products to bottom level of category display in "main" part of window.  Began implementing actual product pages.  Review of category display navigational logic -- concluded there is none (<g>!) (i.e. no specs or mockups), going with a three level display for now (cat, subcats in 2xN table, subsubcats in linear list under subcats), will see what Danly thinks.

    Discovered that net.data "function (dtw_odbc)" code can both pass arguments (no surprise there) and apparently use the full net.data macro language syntax, %if's, predefined @-functions, etc.  So a really, really, crude way to write our own functions is to have them always do a trivial SQL query.  This is probably a really slow and pointless work-around to the %macro_function bugs, but I'm noting it here just in case. 

    Set up alternate entry into Danly store using "default" net.data files provided by the WebSphere Studio store creator.  This not only provides a graphic demonstration of how little functionality the store creator provides, but it also supplies us with a backup interface that we (presumably!) know works if we make mistakes in building our own interface files.

  4. Nov (Friday).  Configured e250 webserver to "listen as" ip 64.241.229.101, which is how external users are now able to see the sun box.  (Added line "Listen 64.241.229.101" to /opt/IBMHTTPD/conf/httpd.conf.)  Verified (by using Lynx from an outside host) that outside browsers can see pages, including the dynamically generated pages from the Danly project.  Changed stores/Danly1/index.html to redirect to full URL of net.data generated pages, using tags instead of javascript.

    Configured e250 webserver to parse all .html files for server-side directives.  In /opt/IBMHTTPD/conf/httpd.conf, change the top level <Directory> to include "+Includes", as in:

       <Directory />
       Options FollowSymLinks +Includes
       AllowOverride None
       </Directory>
    
    (Eventually this should probably use the xBitHack, as described in the Apache documentation, for performance improvements.)

    Integrated current static of "static" Danly pages with dynamically generated pages in under-development prototype.  Changed server root page (http://e250.ibsentg.com internally, or http://64.241.229.101 from the outside) to link to original root page or to Danly prototype project.  Corrected minor problems with static files.