Wednesday, January 2, 2008
The term from hell was a success, one more to go!
I just received word of the last grade I was waiting for for last term's courses.
I took the 3 CS courses that are reputed to have the highest/hardest assignment/project workloads, courses our advisors advise against taking concurrently, and I ended up with 2 A's and an A+. :-)
(The three courses: Graphics, Compiler Construction, Networking)
I really think I deserved one more A+ (in graphics), I don't know why I lost a couple marks on my raytracer, I did everything that was asked for and implemented bonus features, so I'll look into that next week. Even still, I'm pretty happy, an 8.33/9.0 grade point average for the term, beating my previous high of 8.0/9.0 last year.
W00T!
This term (which starts tomorrow, sigh) I'll be taking 4 courses. Right now, those 4 are:
ENGR 240 (Technical Writing for Engineers)
C SC 464 (Concurrency)
SENG 310 (Human Computer Interaction)
SENG 401 (Social and Professional Issues)
My schedule is half blessing, half curse: the good part is I have no morning classes and no school on Friday... the bad part is I have school until 6pm Monday through Thursday.
Friday, December 28, 2007
Apple bug # 5664745: Terrible performance copying large number of small network files
28-Dec-2007 03:17 PM Jim Roepcke:
Summary:
When I try to copy a large number of trees of files from a remote network share using the Finder, it takes nearly as much time just to "prepare to copy" as it does to actually copy. If it would just start copying right away instead of counting how many files it needs to copy, it would go much quicker.
Steps to Reproduce:
1. Mount a remote volume in the Finder.
2. Select a large number of directories containing many files to copy
3. Copy (Cmd-C)
4. Create a folder on local Desktop.
5. Open new folder.
6. Paste (Cmd-V)
7. Wait while the copy window counts how many files it's going to copy.
8. Wait.
9. Wait.
10. Wait.
11. Do something else.
12. Come back thinking it would be done but it's still counting.
13. Wait.
14. File a bug report about how Finder could just be copying instead of counting.
15. Check on the copy after writing step 15.
16. Still "6 minutes" (read: 20 minutes) to go, keep writing the bug report.
Expected Results:
I expected the copy to begin when I did the Paste (step 6). I know there's a lot of files, I know it's not enough to fill up my disk, and I'd like files to start copying right away. If it must count, can't it do that while it's copying?
Actual Results:
I had to wait way too long to copy files from a network share.
Regression:
Copying a small number of large files wouldn't cause a huge counting delay, just a large number of small files.
Notes:
Perhaps a "stop counting, start copying now" checkbox in the copy window would help.
Thanks!
Wednesday, December 19, 2007
Done for the term
Finally, I'm done school for the term. Just returned from my last exam. I expected it to be really hard but it turned out to be really easy. :-)
It would be nice to take some time off but thanks to shitty circumstances that I hope improve soon, I don't have that luxury.
Patched Oracle's code
I'm upgrading an old WebObjects 5.2.x application to run on WebObjects 5.4 on Leopard with Java 1.5. The old Oracle classes they were using didn't seem to work with the new stack, so I'm using their latest JDBC jar now. While I can at least connect with the new jar, WebObjects punts when it asks the JDBC driver to fetch the data type metadata from the database.
At first I thought it was a bug in my code, but it turns out it's actually a bug in Oracle's code. Using the debugger, breaking on SqlException and digging around in memory, I found the SQL string that the Oracle code had generated to send to the database, and found a typo in it.
It should have read "SELECT ..., 93 as data_type, ..." but instead it said "SELECT ..., 93as data_type, ...".
Using the javap tool I was able to inspect the JVM instructions the OracleDatabaseMetaData class was using, and confirm there *is* actually a space missing before the word "as" in the SQL and it's out of my control.
Then I got the bright idea to patch the bytecode. :-)
There's a tool called the Class Construction Kit available from the old BCEL site on Sourceforge. It lets you inspect AND modify Java class files.
I loaded the class file using CCK, it was trivially easy to fix the code. Then it was just a matter of putting the exploded jar file into my classpath and bingo, problem solved, no more SqlException, and my application runs!
It's a good thing I just learned the JVM instruction set for our compiler class this term, it would have been a lot harder to diagnose and fix this problem without that experience.
And people say going back to school was a waste. Hardly.




