Geeky comics

Today's Dinosaur Comic:

Title: there's only like three doors on the first floor, and everyone on the third floor just gives you the runaround and sends you somewhere else. on the forth floor everything's your fault, and everyone on the fifth floor is a screwup. comedy!

Dinosaur Comics is great, second only to xkcd.


My contact info

Milda mentioned she doesn't have my MSN address, so I'll just get it all done here:

  • E-mail: ankurdave@gmail.com
  • MSN (also an email address, but I never check it, so don't bother): ankur_dave@msn.com
  • Phone: on second thought, I won't give that out arbitrarily.
  • Website (this is effectively down currently, but might be up at the end of the summer. No guarantees)
  • Slashdot
  • Wikipedia
  • Bookmarks
  • Sourceforge (that's a programming website, btw)
  • LinkedIn

Luckily for me, I can post these without fear of spam; Gmail's spam filter is the best I've ever seen: I've only gotten 2 spam emails in my Inbox since I started using it over 2 years ago.



People ask why I'm never signed in to MSN Messenger, or Skype, or whatever. Here's a sort of explanation from a reader of Slashdot (comment 19948169). This comment is in reply to a Slashdot post about a News.com story about kids saying email is "dead."
Over time I think these kids will learn that in the real world where you're trying to get work done, IM is annoying as hell. It's like having someone call you on the phone every few seconds. No thanks.

E-mail, web forums, and other "delayed" forms of communication are so much better for almost everything.

IM is really only a substitute for the phone. And then only when it makes sense, like to save money on long distance or when you need to be quiet.


Harry Potter 7

We got the book at about 12:30AM today, and I just finished it at 8:30AM. No spoilers for you, but I'll say it was definitely very good — excellent descriptions (Rowling's style deviates from the rest of the books, becoming more mature) and a great ending.

We also watched the movie (#5) starting at 9:00PM yesterday, and although others have criticized it, I was glad that it didn't try and fail to be like the book; rather, it deviated completely, allowing it to be enjoyable in its own right rather than always under the shadow of the book.

I'm not sleepy or tired at all after having not slept, but it's slightly hard to type because I keep making mistakes like typing "becoming" as "becomeing."


Subversion and coding style

I just realized that Subversion (and I think CVS) implicitly encourages developers to use short line lengths rather than longer ones. If you change one character on a long line in Subversion, it says the entire line is changed and sends the entire line back to the server in the diff. The server, since it stores files as diffs as well, stores the entire line. So since the entire line is changed, the shorter your lines are, the more efficient Subversion can be about sending and storing it.

Windows permissions/account management

I hate how Windows doesn't let you delete or modify a file when a process is holding it open! Linux lets you do it and it just keeps a copy in memory to satisfy the offending process. Also, Windows has no root account! This is extremely annoying and makes me feel like the computer is giving me orders, instead of the other way around. I mean come on, Windows has more permissions than I do?! Even when I elevate privileges in Vista, there are so many things I can't do because the @%#$& OS says I can't!

Gaah! OK...trying to calm down...


Dual monitors

I got a second monitor at work, and now I get to experience the awesomeness of two monitors! They really do improve productivity for programming.

I use the first one (my laptop's built in screen, 1920x1200, 17") for primary development (that is, actually writing code) and the second one (1280x1024, 17") for debugging/testing and reading documentation. Maybe I can get a third monitor* for reading Slashdot! :) Maybe I'll post a picture of my office.

*A third one probably wouldn't actually work because my laptop only has one graphics card. So unless I can get my hands on one of those external monitor-joining boxes, I'm limited to two.

AP tests

I got 5s on all (Computer Science, Calculus AB, World History) of my AP tests! Yes, including World History, for which I didn't study and pretty much skipped two of the essays!


Gravitating away from UI programming

Today I did my first non-UI assignment at SchoolSoft (did I mention that it's now called DreamBox?). It was a generator, a class that generates numbers (or other kinds of data) for the client-side application. For example, when asking the kid to compare different numbers, the generator provides those numbers. It seems easy but there's actually some complexity: if the kid is doing badly, the generator might have to "adapt" and make things easier. Sometimes the teachers (yeah, we have professional teachers on staff) want the questions to come in a certain order or something. So the person who makes the generator has to find algorithms for how to make the correct sequence of numbers. It's pretty fun, especially compared to the frustration of UI programming.


I get paid a lot!

This week I get paid, and it's a lot! About $550 on most weeks (although last week I was on vacation for three days) (it's not $15/hr * 8hr * 5day because I don't work 8 hours a day, more like 7.5. Eight hours is the maximum I'm allowed to work, actually). Not bad for a job doing something I would have done at home anyway :)


Vacation: IIT conference in Santa Clara, CA

As I mentioned earlier, for my vacation I went to the 2007 IIT conference. There were some pretty impressive people speaking there, like the CEO of GE and Hillary Clinton. Some people who were more of interest to me, though, were people like the president of Stanford (who was one of the major researchers who developed the RISC architecture), the originator of FTP, and Manindra Agarwal (a professor at IIT who was the main researcher who developed the AKS primality test, which is an algorithm to check if a number is prime in polynomial-logarithmic time), whom I personally talked to.


Per-process permissions

I've had the idea to implement per-process permissions for a few years now, but someone on Slashdot expressed the exact same idea as mine in an easy-to-understand way (and got moderated +5 for it...):

Hey, it's time for me to bring out my rant against current Unix/Windows permissions systems! Whee.

OK, here's the short version: it's good that files on modern OS have access restricted to certain users, but that's not nearly enough. Instead access to files should be further restricted by process so that eg. Firefox only has permission to read/write to its cache, bookmarks, and download folders and that's it. If you need to upload, it should be forced to use a common API to beg the user for permission to even view uploadable files. Why? Well, exactly to stop this sort of exploit where a trojan promises to do something useful, but actually searches (using fancy new Spotlight and Windows Search, no less!) for files called "my CC#s" to send back to the mothership.

In other words, I think we should Sandbox Everything.

Apparently, SE Linux is trying to do something like this, but OS vendors need to find a way to make this whole process seamless and easy, so that I can right click on an application, go to permissions, and say, "This program I will allow to read my home directory, but only write to its own directories; that one I will let write anywhere, but read only itself" and so on.

It will be really hard to implement this in a user friendly way, but it is clearly the necessary next step in computer security. Apple, Microsoft, and (consumer oriented) Linux devs should start working on this now.


IIT 2007 Conference

From tomorrow to Friday (07-04 – 07-06) I'll be at the IIT 2007 Global Alumni Conference in California. In it, people like Hillary Clinton are going to give speeches, and there'll be discussion on tech topics. Here's the program overview.


School schedule

OK, so following in the tradition of Milda and Mary P, here's my schedule (which I just received today because I forgot to get one at the end of the year).