February 10th - February 19th

  Java Team - Kenneth Philbrick

Tasks To Complete:

Kenneth Philbrick
  • Continue to work on the Messageing system
  • Doing UI Work -- For both sides of the project -- Java & one.world


Current Status:

Time Spent
Wrote Messageing Code (Basic Messages)
3 Hours
Wrote Messageing Code (Message passing methodes)
3 Hours
Wrote Message Passing Code ( More message passing methodes)
5 hours
Continued to Write Message Passing Code, and Removed Vectors from Search code in favor of Linked Lists. In search we are always doing sequenal search, so the Linked Lists lack of insertion costs are much better.
1 hour 45 min
Worked on the master browser updateing system, Fixed Brets file scanner, Started to get UI working, wrote more updateing code
6 hours
Started to work on Updateing UI code, and combining brets file scanning code
4.5 hours
Finished MP3 Player GUI,
10 2/3 hours
Started work on main file table
6 hours
Finished main table code.. Lots of debugging today.. Why the @#$@ cant MP3's have less crazzy features spent hours debugging errors in MP3 header code. Almost Finished, file tab in UI today.. ~1 hour left.  I'm going bikeing tommarrow.. I need a break.
+12 hours
Wow this took alot longer then I had hopped.. A bunch of things came up.. But I can finally say the file browser portion of Quero is done.. Or at least as finished as it will be for our V1..
10.5 hours


Week Summary

Kenneth Philbrick
  • Messageing is a real pain in the A#$. So heres what I have been finding difficult. It is easy to send/respond asyncrosly to messages, what is a little harder is when asyncros messages are imbeded in the middle of logic blocks which can time out in them selves..  Also handeling messages which can be sent out to many nodes and waiting for responces from all those nodes is also a pain.
  • 2/13/2001 - So how does the master browser correctly inform its parents about the changes which have taken place on it? I have thought about a number of possiblities, just queing messages, passing them on, or compressing the differences.. I have decided that while it will be more work it would be much better to compress the differences.. So heres the idea, the masterbrowser will keep track of all the changes which occure to its local nodes. ~ every 5 minutes the master browser will dump the set of changes in the last 5 minutes to a temp variable, and allocate a new change listerner. This will allow the change lister to run async from the main master browser. The master browser will then send the contences of the temp var to its parent. Now In addtition to its basic change list the masterbrowser will maintain is current compressed state. Becouse the masterbrowser updates should be assumed to get very large they will be gziped.
  • 2/17/2001  Ok.. Well I have been spending the last few days working on our projects UI.. So the thing that has just been driveing me crazzy over the last few days has been the MP3 header format.. Yeah, I know you want us to write about distributed computeing robert, but this is just what has been giveing me the largest headaches these last few days. So heres the jist.. Mp3 files can provided extra info in many ways.
  1. There is the extenal info, file size, file name, real standard stuff..
  2. To allow people to add extra info there is the optional ID3 tag on the end of the file.. This is a 128 bytes of appened text to the mp3 music file.. This is great if there is info in it, but again allas it too is optional..
  3. Then there is the mp3 file header. This isn't optional, and it provides ~32 bits of cool info, music HZ, music encodeing format, layering info, etc.. Well this is a little more difficult to extract then the other stuff.. For it isn't necessarly at the begining of the file. You see, the header can be preappended by two things, first random shit, the only way to detect the header when it is appended by random shit is to scan the file for the first occurance of the byte pattern 0xffe0 or 11 1's not 16 bits, just 11. Or, if this wasn't enough there is a effort online to come up with an version 2 of the ID3 tag, this version 2 while hardly in use appends the data not to the end but the front. So worst case the file has a ID3 v2 header on the front, then random shit, and finally a actual music header some where in all this.. Well after many, many, many hours, and 18 minutes of typeing this.. I got it all to work, tested it on many, many MP3's! and it all works..
  • So tommarrow, after cycling I plan on finishing up a few loose ends with part of the UI.. And then moveing on to a bunch of really quick UI features.  Not nearlly as complicated as the ones I have already finished. I hope, the UI can be finished in another day or two..  Then its back to the Java master browser.. And then Demo Time!

  • 2/19/2001 Well I found a bug in the JMF. Yeah, well it turns out that Sun can't play MP3 files where the headers aren't at the top of the file, but are appended by data other then a ID3v2 tag. The JMF will just vomit shit out and crash, well everything, at least under the Windows version of the JMF. Well thank god, with the code from the previous night, I instantly knew what was "special", with all my MP3 files which were crashing the JMF, so taging them and excludeing them from the whole system was bloody easy..
  • The other big thing I did today was clean up my table code, this took a while but it is really cool, and very powerfull. I can now create tones of "Quero" tables, which are super powerful. If the UI is done by 4:30, I will post a copy so I can demo it to you all, other wise.. well.. I have a big paper for another class that I have to finish by friday, so My process schedular is now ticking off , and I am going to switch modes..
  • Where we stand from the java side. There is a long way to go, still, this is going to be really tight, but it just might work.. Ohh well its, 4:27 AM and I'm sighning off.. -- Kenneth
  • 2/20/2001 Hey I heard back from sun, turns out that they aready new about my bug. It should be fixed in the next release of the JMF.
  • Heres the message from sun: "
    • >This bug has been fixed.
      >The next release due shortly will have this fix.
      >JMF should now play all mp3 files that say winamp can play.
      >Thanks for reporting it, though.
      >Babu Srinivasan
      >Java Media Engineer"