9:30 – 3:00 FP
- Biting the bullet and installing R on fgmdev. Installed, and working on getting all the packages in.
- Installed the folllowing
- apt-get install r-cran-car then library(car)
- apt-get install r-cran-gplots then library(gplots)
- had to re-run library(gplots) so that plotmeans was visible correctly
- After installing all the packages, I bounced Rserve, and then remembered that I had to bounce tomcat. Which took a *while* to restart.
- everything appears to be running correctly 🙂
Here’s the current list:
Packages in library '/usr/local/lib/R/site-library':
colorspace Color Space Manipulation
mvtnorm Multivariate Normal and t Distributions
pwr Basic functions for power analysis
Rserve Binary R server
vcd Visualizing Categorical Data
Packages in library '/usr/lib/R/site-library':
car Companion to Applied Regression
gdata Various R programming tools for data
gplots Various R programming tools for plotting data
gtools Various R programming tools
multcomp Simultaneous Inference in General Parametric
mvtnorm Multivariate Normal and t Distributions
Packages in library '/usr/lib/R/library':
base The R Base Package
boot Bootstrap R (S-Plus) Functions (Canty)
class Functions for Classification
cluster Cluster Analysis Extended Rousseeuw et al.
codetools Code Analysis Tools for R
datasets The R Datasets Package
foreign Read Data Stored by Minitab, S, SAS, SPSS,
Stata, Systat, dBase, ...
graphics The R Graphics Package
grDevices The R Graphics Devices and Support for Colours
grid The Grid Graphics Package
KernSmooth Functions for kernel smoothing for Wand & Jones
lattice Lattice Graphics
MASS Main Package of Venables and Ripley's MASS
methods Formal Methods and Classes
mgcv GAMs with GCV smoothness estimation and GAMMs
nlme Linear and Nonlinear Mixed Effects Models
nnet Feed-forward Neural Networks and Multinomial
rpart Recursive Partitioning
spatial Functions for Kriging and Point Pattern
splines Regression Spline Functions and Classes
stats The R Stats Package
stats4 Statistical Functions using S4 Classes
survival Survival analysis, including penalised
tcltk Tcl/Tk Interface
tools Tools for Package Development
utils The R Utils Package
- Came upon an interesting thing: http://rapache.net/ it’s a pretty slick VISIBILITY-ish looking thing. Need to spend some time figuring out how it works. Not all that clear yet.
- OK, back to shaders and such.
- And I just got why rendering the entire scene to a framebuffer that you then process is important. It’s because you can post process the texture (i.e. the entire scene) to get blur, bloom, and other effects. Cool. Well, I know what I’m doing tomorrow.
Post delayed due to switching servers.
- Documenting workspace set up guide for Eclipse, GWT, Maven, and Spring
- Contacted Denise Price regarding SSP changes
- Spoke with Tangela Hall regarding several issues with the Vis Tool:
- Auto-fill is no longer functioning in PPM
- Some confusions regarding project and line item status, this may turn in to a feature request
- Create Funding Request seems to be broken at site but functioning fine here, I will investigate more tomorrow
8:30 – 4:30 FP
- Reflection cube maps today
- And they are working! The trick to handling rotating reflections is the following (note that the camera matrix is determined before the model roation, and the surface normal is calculated after the rotation.):
const M3DMatrix44f &mCamera = modelViewStack.GetMatrix();
modelViewStack.Rotate(angle, 0.0f, 1.0f, 0.0f);
glUniformMatrix4fv(locMVPReflect, 1, GL_FALSE, projectionStack.GetMatrix());
glUniformMatrix4fv(locMVReflect, 1, GL_FALSE, modelViewStack.GetMatrix());
glUniformMatrix3fv(locNormalReflect, 1, GL_FALSE, mNormalMat);
glUniformMatrix4fv(locInvertedCamera, 1, GL_FALSE, mInverseCamera);
- It seems to be a nice day for pretty pictures. Here’s an example of multitexturing:
- And now that our connection is better, maybe I’ll install R on fgmdev
9:30 -2:00 Tech support
- After many e-mails and phone calls, it looks like the server is now operational and fgmdev.com is pointing to it. We still need to transfer domain ownership once we get a account with http://www.enom.com
- Everything is the same on the new server; if you need to ftp, make sure your using sftp.
- I need to figure out how to reset RSA key so I can SSH in. Just noticed this at the end of the day, so I’ll look into it tomorrow
- Noticed the printer had printed out a bunch of junk last night. I am not sure why this happened, but I found that there was a firmware update, dated sometime last month. Hopefully it works better in the future in general
- Called Comcast about outages, looks like they finally got around to fixing the problem
- I think I finally got the state machine working right. I will have to examine this more closely tomorrow.
if(_rState == RTS && (_lState == READY || _lState == DONE)) //Receiving states I think it is important that this is checked first
_lState = CTS;
else if(_rState == SENDING && _lState == CTS)
_lState = RECEIVING; //Stay in this state til all packets are sent
else if(_hasData == true && (_lState == READY || _lState == DONE) && (_rState == READY || _rState == DONE)) //This state only happens on first send of if the receiver has nothing to send. Finished Processing automatically put the receiver into a RTS state if it has data
_lState = RTS;
else if(_rState == CTS && _lState == RTS)
_lState = SENDING;
else if(_rState == SENDING && _lState == ACKNOWLEDGE)
_lState = RECEIVING;
else if(_rState == ACKNOWLEDGE && _lState == WAITING)
_lState = SENDING;
else if(_rState == DONE && _lState == ACKNOWLEDGE) //When the last packet is sent the sender goes into a DONE state
_lState = PROCESSING;
- This method feeds into a switch statement which looks for SENDING and RECEIVING states. These two states require more then a simple change of state, which is why they are processed separately. Once one side sends something it goes into a WAITING, depending on how many packets are to be sent. It will stay in that state til it gets an ACKNOWLEDGE from the other side. Likewise if the local state is RECEIVING, it will change to ACKNOWLEDGE after it receives. On the last packet sent, the sender goes to a DONE state which triggers the receiver to go to a PROCESSING state. It stays in the PROCESSING state til an external element calls the finishedProcessing() method. Once finished processing, the receiver goes into either a RTS or DONE state, depending on if it has data.
- Added a public boolean method called isProcessing(), so the data dictionary will know when it needs to ingest data.
- If the sender goes into a DONE state after the last packet sent, number of packets sent does not need to be sent across the wire. This means each message is only 1 byte, as only the state needs to be sent.
- The inclusion of the WAITING and ACKNOWLEDGE states, should fix the problems I found while testing on Monday, where it was sending more data before the other side was ready.