Ubiquity Trumps Policy

Quote of the day: “well intentioned standards bodies and departments of justice can do their best, but at the end of the day, volume deployment is the only setter of standards. Ubiquity trumps policy, just about every time.” -Johnathan Schwartz

In my observations, that certainly seems to be true, whether you’re talking about browser standards, cellphones, or something else entirely.

Thunderbird Can’t Disable Notifications Selectively???

I can’t believe Mozilla Thunderbird doesn’t have an option to selectively disable new mail notifications (ie: you are on a high volume mail list and set up a filter for those messages to redirect to a different folder…AND…don’t notify me I have new mail when those arrive). And you know what’s even lamer than the lack of support for that? A bug was filed in 1999 requesting to add that feature. And its now nearly 2009? And the feature still isn’t there but is sidelined into a pile of “maybe in our next major release…maybe…”? Lameness. That’s something I’d consider a relatively basic feature.

Anyone know any open-source-ish type imap-friendly email clients other than Thunderbird that would do a better job at this?

Ramping Up…

When I got to my office this morning my desk was streaked in sunlight, it just was so inviting.

And when I pulled the laptop back out it was able to successfully resume configuring itself, though it displayed some rather confusing looking messages like “administrator account disabled” that went away on their own…but the good news is the restore disks worked, it only took another hour of configuring and then I had a fresh clean vista system, and I got to be user Jessica instead of Lenovo User. It looks sooo much prettier in Vista.

So I got Netbeans and Thunderbird installed, and started doing some tutorials on Netbeans XML editing features. Kind of has some neat stuff there. S. (my officemate) got together a group of us from our team to each lunch in the cafeteria today. The cafeteria is just slightly smaller than the one in Santa Clara, but edible and all none the less.

Well, time to go eat dinner and be off…

Working on my website

Last night I worked on redoing the origami page on my website, to make it actually tell a story. To go with the story I scanned in a bunch of old photos and took a few new ones to go with them, though there’s a few I didn’t get to taking because I got tired and the camera battery was dead…but maybe later I’ll pull out the crane box from the top of the closet to take more pictures.

Dell Giftcard

I’ve been thinking for a while I better spend my dell giftcard that came with my laptop before it expires in the next couple months. So I finally got around to doing some shopping and ordering tonight. I ended up deciding to upgrade my laptop’s ram, get a properly-sized neoprene laptop sleeve, and a 2 gig usb memory stick…leaving less than 2 dollars unspent on my memory card after taxes and shipping and everything.

I was going to get a red memory stick, but it turns out pink was $2 cheaper for the same amount of memory, so I decided I could live with pink. I’m not sure exactly how that works, but I can roll with it. The sleeve was pink because, well, I’d been eying that pink sleeve since I got the laptop, but they didn’t have it in stock when I bought the laptop.

Friday Routines

On Fridays, before I leave work, I make it a routine to spend the last ten minutes of the day straightening up and getting organized for Monday. Its an idea I adapted some time ago from an organizing mailing list.

The most important step is to write down what I’m working on. Its easy to forget between Friday and Monday what I was in the middle of working on and where I left off…hot on solving a bug, write down my train of thought. By Monday it will be long gone and replaced with thoughts about the weekend. That alone saves enough time in lost productivity Monday morning to make up for all the other steps.

I straighten up everything on my desk. I put all the caps back on all the pens and put them all back in the pencil cup. I sort any papers on my desk and either file them (currently my file system is a pile on the corner of the desk where related papers are held together with paper-clips or binder clips) or stack them in neat piles. I’m kind of particular about my piles, they have to look neat, corners of the pages lined up.

Defragmenting

So why was I feeling inspired to even write about defrag?

My linux virtual machine (VM) at work has been getting really slow lately. Noticeably really slow. So it occurred to Mike yesterday that one reason it might be slow is the fake partition files are “variable” size, that the VM doesn’t allocate the full 40 gigs of the partition size unless it actually needs all 40 gigs…this is obviously a lot more efficient use of hard disk space than allocating a bunch of empty space to Linux it doesn’t need…but the result is…the VM partition file(s) get fragmented and split all over the hard disk and it just churns and churns without using a lot of CPU. So I’ve been trying to run defrag today (well, I tried to run it overnight but when I came in in the morning the computer had gone into powersave/hibernate and it’d only defragged like 3% of the hard disk. Real helpful…

So I’ve been running it in the background while I work when I’m not doing hard disk intensive parts (like while I’m trying to figure out code rather than build). Which means I’ve been having to deal with windows defragmenter.

Whatever happened to the days when defrag used to ask you if you wanted to do a full defragment or just do a quicker consolidation of free space or only defragementing files without consolidating the free space? And really since the whole point of defragging was to get all the VM files together and with room to grow without interruption, I wish I could make defrag a little smarter and tell it the VM files are kind of like yo-yo dieters and need lots of extra space to grow and shrink at will…just consolidate all the other stuff. I suppose that would be the advantage of fixed partitions though rather than variable sized VM partitions…

And let me not get started about the changes in how the defrag displays the hard disk blocks in light of really big hard disks and displays “estimated use after defrag” as a title for “progress so far” as opposed to “estimation of what this will look like if you don’t interrupt it before its done”…it has some good sides, but you can’t understand what its doing under the hood nearly as clearly as the old dos defrag screens…and then there’s always the tradeoffs of doing defrag as a non-exclusive process so I can run it in the background while I work versus running it from a boot disk so that there aren’t any fragmented “non-movable files”

I wish you could make defragment a little smarter…

I wish you could make defragment a little smarter… For those of you who are non-geeks, a “fragmented” file is a file that is stored in multiple non-contiguous parts of your hard disk. Or to make an analogy, your hard disk is kind of like a big parking lot. Parking analogy The parking lot at sea world is going to have all the cars right near the door at 9am, no problem finding several spots in a row. But late afternoon, some people have been there all day (old files) and are parked near the door. Other people showed up a little later (new files) and had to park in the faraway parking spots. But then a bunch of people got bored and left, but typically its not like first in first out. Its the family with the screaming two year old went home, the family that got hungry for lunch went home, those guys with the annual pass only showed up for a couple hours later in the day…so not everyone leaves (file gets deleted) at the same time. The result? Empty space in the lot (hard disk) is not contiguous. Sometimes that’s not a problem. If you’re just one car, any open space will do. Of course, you’d rather not circle the lot all day looking for where that one empty space is, so you prefer a less full lot. (That is why your hard disk gets really slow when its almost full…it takes a long time figuring out where to park each file till you’re ready to use it again). But lets say you have a pickup pulling two trailers (a big file). To park that thing, you’re going to need more than one parking space. If the lots not full you might park across several spaces. That’s fast, that’s easy. But what if you really need to leave your vehicle in this lot and there aren’t several spaces in a row available? Well, you’re going to have to start unhooking the trailers and parking each trailer (part of the file) separately. The first trailer is in E5, the second one is in A7 and the front is in C3…there’s a little bit of overhead of keeping track of remembering where each part is, but the bigger cost is the inefficiency of getting the truck and its trailers out ready to use, having to reconnect all the parts and fetch them from different corners of the lot. So then, customers start complaining about how slow its getting to get their trailers out. That guy with the sub-compact (tiny file) never complains because he can park just about anywhere…but that guy towing his RV is always complaining. Its slow, its a lot of work. So the owner of the parking lot comes up with a good idea…he’s going to make it a valet lot. It just got a lot easier to park. No more manually disconnecting your trailers, you just drop it off by the door, and go in…but when you get back, of course, you’re going to have to wait for the valet to fetch your car…that’s kind of how hard disks work, they have a valet that decides where to park each file when they show up. But…over time, you still have the same speed problem. So then they come up with this great idea. We’ll move the cars. But its kind of a lot of work, so they only start doing that when people start complaining (user requests a defragment). So they move all the small cars together, and all the big trailers they park together, so they don’t have to take time to reattach each trailer, and leave all the empty space at the far away end of the lot that’s less convenient. That’s kind of what defragment does…keeps your parking lot optimally used. everything as convenient as possible while consolidating all the extra space for future needs (say you want to hold a big convention in another part of the lot…it’d be a lot easier if you didn’t have to work around parked vehicles…)

Java’s GregorianCalendar

Who would have thought up a calendar where the month starts at 0-11 but the days of the month run 1-31 (or so)? Its nice having full featured calendar utilities…but they could be slightly more intuitive to use, or at least consistent.

College Curriculum Changes

I was looking something up on the UCSD CSE website tonight for a form I was filling out…well, one thing led to another, and I ended up poking around on the CSE website and checking out what’s new in the department these days.

The less exciting things included such news as one of the professors I had in college had died, which wasn’t particularly surprising because he looked like he should have been long retired when I took his class…oh well, I guess the next generation of students won’t have him refusing to answer questions about whether or not they need a blue book for their midterm.

The tritonlink website (formerly studentlink) has been upgraded a bit. Now on the online course listings, they have a link that you can read the cape reviews for the last several years for a given class just by clicking a link next to the course title. No more having to buy CAPE books for a dollar off a pallet on library walk (or well, technically usually they were on the other side of price center by the ATMS…but whatever) that only included the most recent year. Of course, the online cape results don’t include the written descriptions of the most common written feedback, but they do show you the breakdown statistically of the professor’s rating in a bunch of specific areas. Professor Burkhard still gets amazingly low 43% ratings for his classes. Somehow I successfully managed to never take any of his classes, but one of my friends used to TA for him. But what’s interesting to note on his CAPE reviews is although his “overall” rating as a professor consistently scores low, in the individual categories they were asked to rate, almost everyone rated him with a neutral or positive rating. And 40% of the class was expecting an A, which was much higher than the percent expecting an A from better rated professors. And of course, there’s the impressive 9 or 17 students who turned in a cape form for a 90 person class…apparently a lot of people still never go to class.

But the bigger more impressive change was the curriculum changes. I’m kind of jealous because they pretty much got rid of every class that I hated and that seemed completely useless and replaced them with classes that fill some particular gaps the program previously had and just are genuinely interesting and useful material.

They demolished compilers B, and now compilers A is just compilers. They demolished ECE 53B, the brutal electrical engineering class where they threaten that you have to learn so much stuff so quickly because those “poor” computer engineering students will get dumped into ECE 101 and need to catch up on this stuff. They eliminated physics lab requirement, and replaced it with a programming lab. They removed the additional science course “elective” which I never really understood the point of in the first place. So what did they replace all those requirements with? A “tools and techniques” lab class where they learn how to debug; C++ for Java programmers, a much needed course on teaching the *language* of C++…it appears the way they got around the previous reasons they couldn’t have such a class by making it a 2 unit course; a “perspectives” seminar where you get indoctrination in and orientation to research opportunities, industry careers, and graduate study programs; and a course on “software engineering”, where they teach design/implement/test, IDEs, version control, test harnesses, etc…all that stuff that was among the stuff you learn in the first sixth months of being “in the real world” of a software engineering job. They also have a number of changes to the technical electives offerings, most of which are no surprise, they’re things that were offered as 199’s when I was in school, and some class on learning to read and write technical english that exists only on paper in the catalog as an approved class but isn’t offered.

But all in all, all those changes are really practical from a preparing you for a career in computer science. And they took out/condensed some of the things that have historically been the most brutal parts of the program that I personally didn’t find beneficial in preparing me for a computer science career. Like that “math/science elective”…and particularly ECE. The problem with the ECE program previously was it was just really intense trying to cram 3-6 quarters worth of electrical engineering material into 2 quarters for the computer engineering folks. Now, instead, computer science people only take one quarter of electrical engineering, and the computer engineering students take three quarters of lower division electrical engineering…in the same sequence as the electrical engineering majors take, slowed down enough that it would better prepare you for the upper division electrical engineering courses.

I mean, the thing is, if you’re really just interested in software programming, you really don’t need a strong background in analog circuits. And if you were really interested in doing embedded circuits and stuff, you’d be doing computer engineering or electrical engineering, not computer science.

And one other interesting side effect of all the curriculum changes is aside from having a shift in and toward the lower division requirements, suddenly physics becomes suggested as a course for sophomore year (which I think is more appropriate in terms of student preparedness/success in the class), instead of freshman year, because freshman year, you’re taking more hands on programming/computer science theory classes (and good for actually getting a good feel for the major early on), and it moves up the suggested time for cse 100 from fall of junior year to winter of sophomore year which really gives you a lot more freedom and flexibility in terms of planning for and taking the upper division electives you’re interested in…which also helps with the graduating on time thing.

But I’m still kind of jealous that if I were a freshman at UCSD now, I wouldn’t have had to take physics 2cl, ece 53b (and for that matter most of the material in 53a), bild 10, and cse 131b. Granted, I enjoyed compilers B, because I had Ord for it so it was like CSE 30 rehash + compilers A rehash + a bunch of homework, but reducing compilers from 2 to 1 quarter I think is quite good for students in terms of what other courses they have the opportunity to take as a result.