Category Archives: Javascript

Phil 7/14/15

7:30 – 5:00

  • Write up a description of Dong’s skillset.
  • Call Arhouse.
  • Continue on ComponentNetwork
    • Chain -> History
    • ‘Relevance to Search’ dialog for keywords, etc.
    • Accumulate search terms in some way. Possibly weight them?
    • Rebuilding the network construction so that it’s handled by its own class. The basics are working, need to add connections based on pending requests next. Overall it’s better than using addEnvironment, which really wasn’t all that appropriate. It should be easy to add in textures too. Fingers crossed.
  • Looks like my workstation should be in next week
  • Pluto flyby!

Phil 7.10.15

8:00 – 4:00 SR

  1. Sent Steve F. some background on Visibility and equipment requests
  2. Continue working on integrating dynamic data provider into charts. First pass is done, but kind of crappy. I think there needs to be a recursive way of adding the data. Something like an tree object that recurses through itself to create the data provider which is then rendered. Ponder it over the weekend.
  3. Need to make a self-contained example of the flexbox/ng-repeat interaction.
  4. Redid my tuition reimbursement because Novetta changed it after I submitted it before.
  5. Uploaded the current app and it still works!

Phil 7.9.15

8:00 – 5:00 SR

  • Asked Dong to make sure that all projects were standalone, and didn”t depend on Maven, etc. that was outside the repository.
  • Fixed one of the names in the PM database list
  • Trustworthiness –
    • Need to change the queries around so that the kind of data is listed (Url:, Keyword:, etc. This can be parsed as needed by the submitting methods – done
    • Get the initial interactions beween the webGL and the search. Set up the dataFormat to handle the types.
      • Working on the resetDataProvider and resetDataFormat.
    • Add new search buttons (Google News, Fact Checked, Alchemy News, etc) – done
    • Start adding in the DB
      • In the link table, types can be ‘relation’ ‘supports’ ‘disputes’, others(?)
  • Meeting with Brad and Steve
    • Send software and hardware configuration to Steve Filippi (scfilip)

Phil 7.8.15

8:00 – 4:30 SR

  • Re-ordered my dev machine
  • Had a good discussion with Lenny about future directions for the project and how to effectively use my time while we wait for someone to come on board.
  • Working on figuring out how to put an absolute div in a dynamic page. Ok, here’s how I got it to work.
  • This is the style
    <style>
        .wrapperPanel {
            display: flex;
            justify-content: center;
            background-color: lightgray;
            margin-bottom: 10px;
            margin-top: 10px;
            width: 98vw;
            height: 30vh;
        }
    
        .mainWindow {
            position: relative;
            width: 100%;
            height: 100%;
            background: linear-gradient(darkblue, black);
        }
    
        .glDiv {
            position: absolute;
            width: 100%;
            height: 100%;
        }
    </style>
  • and this is the HTML
    <div class="wrapperPanel">
        <div class="mainWindow">
            <ng-network-webgl class="glDiv" config-obj="glc.configObj"></ng-network-webgl>
        </div>
    </div>
  • The mainWindow css is needed so that the div with the ‘glDiv’ css has something to reference to. Otherwise the overlays won’t work.
  • Lunch thoughts
    • Confirm/Dispute
    • URL chain (or, just chain)
  • Handoff meeting from Brad to Steve tomorrow at 2:00 or later.
  • Added webgl network canvas using inheritance for the controller. Aside from forgetting the stylesheet, everything worked as hoped for!

Phil 7.6.15

8:00 – 4:00

  • Told Lenny about Dong’s resignation.
  • More dynamic chart data.
  • Set the meta information about the kind of data into each item so that the directive knows what to draw.
  • In the main app, set it so that the data was returned in one object and meta information about the query was returned in the other
  • Connect the data provider to the initial pull
  • Add additional defined strings for query types to support different flavors of queries (DRILL_DOWN, etc)
  • Add defined strings for response type (NEW, REPLACE, APPEND, UPDATE, etc) UPDATE should keep current data and only add new.
  • Need to be able to add and delete (lines? lighting?) between nodes without adjusting the behavior of the nodes. It’s be nice to be able to do this as part of the mouseover
    • AddRelation(target) – creates an entry in a hashmap
    • DeleteRelation(target) – deletes the entry
    • CustomMouseoverBehavior(c:WglComponentBase){} – add to CanvasBase

Phil 6.25.15

7:30 – 4:30 SR

  • Deploying new webgl chart tests
  • Looks like we have a new version of Angular. Update today?
  • Prepare slides for Monday’s presentation
    • Need (Spreadsheets -> Cloud)
      • Much faster – near real time
      • Database/Query approach
      • Integration of multiple data sources (FACTS, PM actuals, planned vs. actuals, etc)
      • Visual reports, based on current data
    • History
    • Roles
      • Phil – Architecture, UX, browser and server development
      • Phil – DB, browser and server development
      • Testing – unfilled
      • Documentation – unfilled
      • Graphic assets – unfilled
    • Current Capabilities (screenshots)
      • Back-end DB and server code
      • FA
      • RA
      • RQ
      • Vis
      • Scripting
      • Auto Ingest
    • The Flex Problem (Google trends Flex/Actionscript/Angular/typescript)
    • Upgrade path
      • Separate, smaller, report-driven apps
      • FR
      • Charting
      • Scripting
      • RQ
      • FA query builder
      • FA other?
      • RA port
      • User manager
    • Upgrade Schedule (1.5 man-years to get back to stable, tested code with periodic updates)
      • Charts coming online
      • Scripting
      • Query Builder
      • RA port.

Phil 6.24.15

9:30 – 5:00 SR

  • For a break, I’m going to build a directive that pops up in response to a NovettaUtils.ATSMessenger event. Also going to look into using flex containers for the WebGl
  • Took a much-needed detour into handling resize events so more advanced CSS can be supported. . It works like this:
    • First, set up the callback. Not that it is attached to the window, not an element in the scope.
      window.addEventListener('resize', this.handleResizeEvent, false);
    • Then we have the event handler
      private handleResizeEvent(ev:Event):void{
          console.log(ev.type);
          var parent = this.getTopNode();
          if(parent){
              this.setAdjWidth(parent.clientWidth);
              this.setAdjHeight(parent.clientHeight);
              this.renderer.setSize(this.adjWidth, this.adjHeight);
              if(this.getUse3D()) {
                  var pcam:THREE.PerspectiveCamera = <THREE.PerspectiveCamera>(this.camera);
                  pcam.aspect = this.getAdjWidth() / this.getAdjHeight();
                  pcam.updateProjectionMatrix();
              }else{
                  var ocam:THREE.OrthographicCamera = <THREE.OrthographicCamera>(this.camera);
                  ocam.right = this.getAdjWidth();
                  ocam.top = this.getAdjHeight();
                  ocam.updateProjectionMatrix();
              }
          }
      }
    • How to center a absolute div
    • Ok, got the basics of the pop-up directive working in a dynamic viewport!

Phil 6.23.15

8:00 – 4:00 SR

  • Looks like demo for charts and VISIBILITY review will be 9:30 on Monday
  • New texture map works. Need to re-jigger base classes to generalize
  • Clicking on a selected anchor node in the network does not de-select it. Fixed
  • Lenny’s going to send locations of labs over, the task will be to draw the budget at the lat/long specified by the zip code.
  • Added imageLoc to item data so that associated images can be mapped to data.
  • Had a discussion with Dond about how to structure the data so that the pulls from the DB are consistent and requiring minimum translation. No good answer though.
  • In a bit late tomorrow. Dentist.

Phil 6.16.15

8:00 – 5:00 SR

  • We need to change the Funding breakdown error message so that it shows the amount of the error. The current message is confusing (“Funding Breakdown Total is less than the amount … $449,999.00”). Change to read “Funding Breakdown total is $36.17 less than the required amount”.
  • We need to change the ‘add users’ so that a new user added should immediately get added to the “role selection” popup without having to go through the selection of the just-added user.
  • Installed the new version of WebStorm. The deployment now seems buggy. Spent an hour getting everything to work again. Good thing I had notes.
  • Back to working on fake data generator for network
  • Changed I3DMinMax to I3DProperties. Not sure I like it, but there is more getting stuffed in there.
  • Got a first pass at the data provider. Need to do the format, then modify the chartInfo so that the graphic objects can be created.

Phil 6.11.15

8:00 – 5:00 SR

  • DB Backups
  • Fixed some bugs in FR, the most serious was a multiplication/rounding (error?) in JavaScript that was causing calculated results to be off by something like 0.0000003.
  • The charts are not showing up on Lenny’s browser. Loading times for the JS are very short, with a 304 warning. Maybe we need to compile our TypeScript into one large file? Got it to work. It generates a *pile* of error messages because the typescript inclusion is messed up. Output is 3,500 lines of code.
  • Need to estimate times for development of follow on work for Lenny
  • Got 3D Network display working (again…)

shiny

Phil 6.5.15

8:00 – 4:30 SR

  • DB Backups
  • Add video support Angular or straight HTML5? Or just links….
  • Adding links/lines between Components
    • Added targets to components. Does it need to be mutual (a ‘source array’?) so that removing items chases down all the links?
    • Added line updating behavior
    • Need to add links from data provider into Components.
  • Need to add types to series that tell how the element positions are to be calculated. Do I need to change to pos and size?
  • Accidentally blew away my working svn directory and had to restore. Yikes!
  • Here’s the current version

3dbarChart

Phil 6.4.15

8:00 – 4:00 SR

  • DB Backups
  • Got into a discussion with Lenny about conferences. Nice data visualization one in Boston
  • Fix bounds so that it’s based off of the data bounds and the stage bounds – done
  • Make a format based on rotated hsl values if one does not exist – done. Fixed labels too.
  • Started network displays. Need to add types to series that tell how the element positions are to be calculated. Do I need to change to pos and size?

Phil 6.3.15

8:00 – 4:30 SR

  • Fixing FR
  • DB backups
  • Working on the dataFormat object so that any named date element can have a format – done
  • Adding stage dimensions to dataFormat
  • Moving bar construction out of controller and into WebGlCharts – done
  • Fix bouds so that it’s based off of the data bounds and the stage bounds
  • Make a format based on rotated hsl values if one does not exist

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.