Category Archives: 3D Charting

Phil 5.15.15

7:30 – 4:00 SR

  • Backups
  • Tried ‘compress’, which seemed to compress the files in-place. It did not put them in a zip file. Going to try gnu utilities next.
  • Lenny says all the funds are dispersed in CONUS. Need a globe and planar charting. Basically the difference should be AZ/EL vs X/Y
  • Migrating the generic chart data classes/interfaces to WebGlChartData
  • had to cast an array index from string to <any>. Don’t know why:
    export class ChartInfo extends NovettaUtils.ATSBase{
       public cSeries:CartesianSeries[];
    
       constructor() {
          this.cSeries = [];
       }
    
    
       public addSeries  (key:string, source:WglChartData.IChartDataElement):void {
          var cs:CartesianSeries = new CartesianSeries(key, source);
          cs.mapData(this.minVec, this.maxVec);
          this.cSeries[<any>key] = cs; // <----------- why??????
       }
    }
  • Added a dataprovider and dataformat to WGLA_controller2 and started passing data into Wgl3dCharts. Individual elements with their mappings are coming across correctly. Next comes the actual mapping.

Phil 5/14/15

8:00 – 4:30 SR

  • Backups. Starting to zip them before storing them because they compress so well. Need to add that to the script. Looks like we use compact.
  • Working on globe chart
  • Adding an IComponentConfig. Which found an error!
  • Got Hierarchical placement working – pretty picture for the day:

Hierarchical

Phil 5/13/15

8:00 – 4:00 SR

  • Backups
  • Had a weird issue where the touch command wasn’t working in the Makefile. It looks like putting it in system32 is ok for the command window, but not ok for a program – it had to be on the path. I put it in with the gnu files and it works now.
  • Had a long-ish discussion with Dong about how to set the data in the message. It’s much better now. Here are the interfaces:
    export interface IMinMax {
       min:number;
       max:number;
    }
    export interface IChartDataElement{
       [label:string]:IMinMax;
    }
    export interface IChartMessage{
       type:string;
       name:string;
       data:IChartDataElement;
    }
  • And here are some messages caught by the listener in Wgl2DController (‘min’ is a point that uses the ‘min’ value from the minmax object:
    {"type":"bar","name":"Facts","data":{"Jan":{"min":0,"max":125}}}
    {"type":"min","name":"Future FACTS","data":{"Sep":{"min":200.17,"max":266.49}}}
    {"type":"area","name":"Future FACTS","data":{"Jun":{"min":202.29,"max":202.29},"Jul":{"min":193.38,"max":215.48},"Aug":{"min":196.77,"max":240.99},"Sep":{"min":200.17,"max":266.49},"Oct":{"min":203.57,"max":291.99},"Nov":{"min":206.96,"max":317.5},"Dec":{"min":210.36,"max":343}}}
  • Adding data objects on:
    • Area chart – done
    • Bar Chart -done
  • Start bars/spheres chart (lat/long)(min/max)
    • Set up WebGl3dCharts.ts and added it to the Makefile
    • Tomorrow, create a WglChart3D.html file and maybe a new controller?

Phil 5/8/15

7:30 – 11:00 SR

  • Backups
  • Integrate charts and events. Need to add data to the picking code. The event needs to be
    this.myMessenger.broadcast('WebGLCanvas:selected', model.getDescription());

    . The data object will have the detailed information.

Phil 5.5.2015

7:30 – 3:30

  • Was going to coordinate with Ronda, but she’s not here. Oh, she sent an email saying that her accesses were pulled. So backups….
  • Status reports!
  • Walked Dong through TypeScript/Angular factories and directives.
  • Working on the standalone WebGL Chart Directive. And I’ve totally forgotten how to handle functions in a directive.
  • Made an inherit7 sandbox. Can access the global and local part of the class. Need to make a template-url and clean up.

Phil 5.1.15

8:00 – 4:30 SR

  • Deployed the login fix
  • And for some reason, my machine could only connect to Google when I came in. nslookup was timing out on dns1.wcc. Poking around seems to have fixed it.
  • Helping Dong with the charting code.

Phil 4.30.15

8:00 – 4:00 SR

  • In my defense, the 800 MB download includes a version of Angular and threeJS. With examples and documentation. So there :-b
  • Got onto one of our new servers. It also looks like Ronda is able to transfer files, even if I can’t. The new process may be to ask Bill to send the files to her for upload. I do think that at the very least, we can have all three servers share a drive for uploads and updates.
  • Spent most of the morning getting Dong up and running with the TypeScript dev environment. For some reason, Visual Studio interferes with GNUMake.
  • Started walking through the TypeScript structure of the chart code. Tomorrow, we’ll try to integrate the dataprovider.

Phil 4.24.15

8:00 – 4:00 SR

  • Filled out financial NDA
  • Work on having two charts, then move into slideshow using ng-switch?
  • two charts – check!
  • WordPress on Win 8.1(?) now wants to make the edit area short. It can be temporarily stretched by using the HTML tab and dragging the lower right corner. Reverts after a save though.
  • Two charts with two controllers – check! And inheritance is working perfectly. This is my entire second chart controller definition:
    export class Chart2MainCtrl extends Chart1MainCtrl {
       constructor(timeout:ng.ITimeoutService) {
          super(timeout);
          this.dataFormat = { // might add 2D/3d, dynamic/static, etc.
             outlayGoals: {label:"Outlay Goals", objectName:"outlayGoals", type:"area", hexColor:0xFFAAAA},
             obligationGoals:{label:"Obligation Goals", objectName:"obligationGoals",  type:"area",hexColor:0xFFFFAA},
             pm_actuals:{label:"PM Actuals", objectName:"pm_actuals",  type:"bar",hexColor:0xAAFFAA},
             facts:{label:"Facts", objectName:"facts",  type:"bar",hexColor:0xAAAAFF},
             future_pm_actuals:{label:"Future PMA", objectName:"future_pm_actuals",  type:"area",hexColor:0x00FF00},
             future_facts:{label:"Future FACTS", objectName:"future_facts",  type:"area", hexColor:0x0000FF}
          };
       }
    }
  • And this is how the Angular module uses them:
    module AngularApp {
       // define how this application assembles.
       class AngularMain {
          appModule:ng.IModule;
    
          public doCreate(
             angular:ng.IAngularStatic,
             chart1Ptr:Function,
             chart2Ptr:Function,
             glDptr:Function) {
    
             this.appModule = angular.module('appMain', []).
                controller('glCtrl1',['$timeout', chart1Ptr]).
                controller('glCtrl2',['$timeout', chart2Ptr]).
                directive('ngWebgl', ['$timeout', glDptr]);
          }
       }
    
       new AngularMain().doCreate(
          angular,
          WGLA2D_ctrl.Chart1MainCtrl,
          WGLA2D_ctrl.Chart2MainCtrl,
          new WGLA2_dirtv.ngWebgl().ctor
       );
    }
  • Adding slide controller. Had a brief fright when I forgot to add the ng-switch and just used the ng-switch-when. Everything works though. Uploading it to my server.
  • Working with getting text and the graphs behaving well togther. And although I’ve written somewhere else in this blog, I can’t find my post of viewport relative CSS sizing, so here’s another link….

Phil 4.23.15

8:00 – 4:00 SR

  • No change on network disks.
  • Talked to Lenny about more statistical analysis of PM Actuals vs Facts. We can treat the reqs as the population and look for outliers. Ranked lists based on performance are a goal.
  • Subversion was still having read/write problems. I attempted to change the URL, just to see what would happen (That didn’t work), but when I tried to check in again at the old Vis2 address, the checkin worked. It seems like the edit action did a chown on all the items in the repo. Good thing to know! Anyway, http://www.philfeldman.com/VisN2 is now working 🙂
  • Migrating to my new dev box and laptop. That is a *lot* of monitors…

Phil 4.22.15

8:00 – 2:00 SR

  • Still unable to access remote drives and no ticket. Sigh.
  • Still fixing svn.
  • Going to try to move the IChartGrid object to the base class and then inherit to create a new chart.

Phil 421.15

8:00 – 4:00 SR

  • Meeting with Dong, Lenny & Chris. Charts are the priority.
  • Working on migrating the chart grid to WegGlCharts.
  • Fixing subversion. Looks like the easiest thing to do is to copy over the old repo to the new one?
  • Tried copying, but the permissions were wrong. Trying this
    • svnadmin dump /path/to/repository > repository-name.dmp
    • svnadmin create repository-name [--fs-type fsfs] <-optional?
    • svnadmin load repository-name --force-uuid < repository-name.dmp
  • Finished moving over chartbg to WebGlCharts. Creating a chart now looks like this:
    var months:any = this.dataProvider.mappings[0];
    var charts:WglCharts.ConfiguredChart = new WglCharts.ConfiguredChart(rb, this.dataProvider, this.dataFormat);
    charts.setChartGrid(cg);
    charts.add2DCharts(months);

Phil 4.20.15

8:00 – 4:00 SR

  • Still having problems accessing my virtual drives from the server. Will try again tomorrow.
  • Moving common chart components to WebGlCharts.
  • Showed Dong how I’m getting server data
  • We also discussed unit testing. We’ll target the test code at the generated JavaScript, since we’re testing logic at that point.

Phil 4.16.15

8:00 – 2:00 SR

  • Charts are working. One really odd bug. The alert (blocking) dialog that pops up to notify non-hardware rendering is interfering with the render. There must be some kind of odd race condition. Removing it seems to fix?
  • Once the review charts are done, the next thing Lenny wants is the truancy reports. Then add Baseian prediction of those most likely to be late.
  • Installing software on new box
  • Got Skolded. Now what?