- It is not simple. I firmly believe the easier we make it for someone to give us feedback, the easier it would be for us
- It doesn’t give any positive feedback. We know when things do not work but what we don’t know is when things do.
We would like to put up something like this(NOTE: this page doesn’t work! just shows you what we want to do): http://www.c3dl.org/wp-content/tester_template/
Our site is wordpress driven and while wordpress has some very nice features, there are definitely downsides to it. Often we find that if we want to do something out of the ordinary, we end up having to jump through hoops to get wordpress to play nice and not get in the way.
For the past week or so, I have been trying to hunt down a plug-in that will allow us to create a form on a page and then let it display the results (pretty much a customizable comment form that is different from the comment forms on our other pages). At first I thought I could do this with a contact form plug-in. I have since discovered that a comment form is not exactly the same as a contact form. BTW… I’ve just started doing research into this area so if I’m mistaken about this, please let me know. Contact forms get mailed back to you while comment forms are shown in page. I was hoping that I would be able to find a plug-in that would let me do this but no luck so far. While there are lots of contact form plugins, I don’t think I see any that show the information right back to the page. I think I can get what I want by doing some theme editing but I was hoping there would be a simpler solution. In any case, hopefully I’ll be able to find something soon to solve this.
I’m currently in the process of trying to port over our library so that it works in Safari(WebKit) (and eventually Chrome too) and not just Firefox. The first step of this was getting rid of our use of a ‘const’ namespace, and I’ve accomplished that (I haven’t actually released it because I want to make sure it works right before I release it and start letting people use something that’s broken), but now I’m having trouble with the differences between how Firefox handles including extra files in script tags, and how Safari does it.
The issue is that to use c3dl you have to tell the browser to include some extra files (normally using script tags) and instead of having to manually include each file (there are quite a few of them, it is a library after all), it is handy to include one file, which then gives instructions to include all the others. Doing it this way means that you can make changes to the library (maybe add some now files or get rid of some obsolete ones) and you only have to change the file that says what files to include, which will cascade to all the pages that include it. If we manually put all the includes in every web page, you’d have to update every one of them every time there was a change to the file structure of the library.
Firefox seems to accept this and when the first file you tell it to include (from now on we’ll refer to that as fileA), says to include some other files (we’ll call them fileC, fileD, and fileE) it reads them before it gets to the next file that the page tells it to include (we’ll call that one fileB). To rephrase that: The page says to include fileA and fileB. FileA says include fileC, fileD and FileE. FileB has some other code (in our model, this is the actual 3d app that you’re trying to display in the canvas). Firefox includes fileA and based on what it says also includes FileC, FileD and FileE. Then it includes fileB. Safari includes fileA, then fileB and then gets around to what FileA told it to do and includes fileC, fileD and fileE (I think…it crashes before it can get here). The problem is that files C,D and E are the library, while B is the code that needs the library to run. So we have to get C,D and E before B, or to go back to the real code, we need the library before we read the code that uses the library. So I need some way to force Safari to read the files in the library before it reads the file that says what the page does.
So Firefox would include c3dapi.js, then everything c3dapi.js says to include (it just adds some more script tags like this to the DOM, each of which specifies some other .js file to use), then it would include orbiter.js. Safari includes c3dapi.js, then orbiter.js, then all the other files that c3dapi.js added. So I need some way to force Safari to include them in a specific order. We have already received an email or two with suggestions (Thanks Tim) on how to make the code work on Safari, and they at least allow us to do away with the SCRIPT_PATH variable, but they still fall victim to the same problem about the order of the includes. Right now I’m using appendChild on the head element to add the extra script tags, but I’m thinking there might be a way to sneak them into the middle of the head’s child tags so we can get them to be read before the next script tag that actually did appear on the page. I’m thinking something like insertBefore or insertAfter, but I need a little more time to play with those.
I’m going to keep working on this, and if anyone has any suggestions, I’d be happy to listen.
Yesterday I fixed a bug in the grayscale effect. Today I fixed rendering sphere objects as points. That means there are now about two known remnant bugs from the Canvas 3D to the WebGL port. Almost done!
I was using one of our mocap demos as a test for the last bug. Looking at it, I thought I should update it and make it a bit more intuitive. Hitting keys to change the script state? What was I thinking? So I created a form and added some simple controls along with jQuery UI sliders on the page. Use your cursor to orbit around the scene and the scroll wheel to zoom.
Isn’t WebGL fun!? Since all the cool kids are doing it, we have made an account on twitter to tweet our development news. Our twitter id is C3DL A while ago, Cathy found that Firefox crashes if you try rendering point primitives using Canvas 3D while running DVD Player on OSX. A bit of a strange bug, but I guess most bugs are. At that time, I wrote a blog post which mentions the issue and I filed a bug in Bugzilla. That was half a year ago. Interestingly enough, this week someone changed the status of the bug to critical. I checked it out and the bug is still sitting there unconfirmed. This makes me sad and I want to change that.
With WebGL now part of Minefield, I wanted to see if the bug is still present. I opened one of our mocap demos and I was reminded why I hate testing for this bug. The process is nothing short of extremely frustrating. Why? Because as soon as I select a scene to play in the DVD player application, the entire OS freaks out. My cursor turns into a happy spinning candy thing while the OS response time slows to an insufferable crawl. I’m left waiting there for the Force Quit dialog to appear so I can quit Minefield or the DVD player. I often found myself following the three finger salute with its base class.
Anyway, this means that whatever was screwy with Canvas 3D slipped into Mozilla’s implementation of WebGL in Minefield. I believe I can rule out the DVD Player being the cause because I think it plays nice when rendering other content. I say think because I don’t have the patience to keep playing with it and narrowing the problem down, it’s that bad. But what I do know is it’s crashing at least when rendering points.
I know, the problem is very specific. You need to run Minefield in OSX while playing a DVD while rendering point primitives. This is probably why my bug is still unconfirmed . I’m still adamant that this needs to be fixed. Sure, our library has a workaround, we render small spheres by default instead of WebGL’s point primitives. But what if we find the bug cropping up in other places? I need to update the bug in Bugzilla to try to prevent this. If the problem is now a Minefield issue instead of an extension issue, the chances of it getting fixed with be increased. If not, the problem will eventually become a Firefox issue. What worries me about that is sometimes Firefox issues take a while to get resolved.