Archive for February, 2006

On Software Development as a formalized Class

Sunday, February 26th, 2006

I TA a course about making viruses, hacking into computers, and taking down cellphone networks. I do so with no malicious intent, and a year ago had someone suggested that I’d be doing this, I would have been rather annoyed, I have long believed computer security falls into one of those cracks people label as pseudo-sciences, that the elegance of an attack is not very well defined, and that the algorithmic benefits of studying most forms of computer security, outside say cryptography is limited at best. I have changed my mind about most of this, yet I must sadly declare that I would never ever take CS166. I’d love to TA it again, for it has its good points, and I really can’t take a course who’s development I have aided in as a TA, but in another world and another time, had someone asked me to take this course, I’d have laughed and said no. One of my co-TAs in this course, a guy we shall call LAM (fits in for LAM is useful in MPIs and MPIs seem to absorb my life), has long commented on the overly-vocational nature of parts of our course, a charge I agree with, however am powerless to act against. This seems to be a common problem with the Brown CS department, charged on one hand with maintaining a liberal art stance on the universe, and at the same time being in a field where vocational knowledge brings money. If there’s one thing I have learnt from being more closely associated with the CS department this year, it is that people who have jobs and are about to graduate, talk of large sums of money, sums large enough that most of the worlds seems poor by comparison. This however ain’t an entry about CS166, for as a part of the teaching staff, I am not sure what part of the ethical divide I would be on should I post an entry on this. This is a post on CS32, another one of those courses I’d have never taking in another world and another time, but am forced to in this one, mostly because it’s one of my concentration requirements. So CS32 is supposed to be a course on software development, what this could mean in another university I am not completely aware on, certain people who are supposed to be significantly better than me at this entire question, such as Joel on Software have written about people who teach software development like things, about complex coding, and a hatred of Java (two funny stories/full disclosure: I have an extreme small world connection to the professor whose data is quoted on that website, I am friends with members of his family. Also FogCreek, while positioning itself as a non-discriminating company, and specifically mentioning national origins on its non-discrimination policy, has specific policies in place discriminating against me and other people who are important to me from applying to FogCreek), however all of these have given me no impression of what actually software development classes are about. I also happen to be in another, harder, math class which meets at the same time as CS32 (yes you can actually do this twisted thing at Brown), and hence don’t end up attending any of CS32, because frankly my math class is a whole lot harder. However the other day, my math professor was away doing whatever professors do when they aren’t at their professorial postings (in my parent’s case this usually involved professing, bird-watching, running after wildlife, photographing or more usually a combination of all of the above), and to fulfill requirements of going to class at least once in a semester, I went to CS32.

Now a long time ago, certain teachers were mildly annoyed, and mildly surprised to see me in their class, at Brown, people are smarter and not many care about seeing or not seeing me in class, and this is in general a good thing. CS32 however has about 16 people, of whom something like 12 actually attend lectures (grades mostly seem to focus on such things as projects, projects are big and involve work, assuming you are doing all the projects, and you really should be, you are pretty much getting most of what you need to get out of CS32, or so people say), and so I ended up in this little room with people I knew, staring at someone or the other’s code, and hearing a lecture on what was wrong about this particular code. And this was when it hit me, CS32, as a software development course, ain’t about teaching much of anything, it’s more about passing a doctrine on what you consider good coding practices to be. This is a good thing in someways, teaching people a multitude of libraries would be bad, because libraries are a dime-a-dozen, and teaching libraries seems to be just the thing they’d do at school, and not allow people to learn stuff for themselves. That being said it doesn’t make much sense, because as much as I might attempt to understand and follow his ideas, they are at the end of the day partly arbitrary, or else already well known, and hence adopted, sermons on what is good, and everyone has ideas of what they like or dislike. Point in case, the entire C debate on whether conditionals should be written as (const var) or (var const, I have hardly ever seen anyone use the first form in published code, and the later form makes far more sense to me, and it is one of those things he agreed with, but that being said, the decision is entirely arbitrary, and I am guessing that had I learnt C from a human rather than a book, my decision might have been different. Which brings me to the obvious problem, Brown considers it important that I go through a semester of this stuff, most people consider it important, but no one seems to explain why. Unlike all those other prerequirements which I skip, I cannot do this seeing as this is something I need to get through to concentrate in Math-CS, and yet it makes no sense.

To those who it concerns I will be hopefully filing my concentration later this week, I will probably not being going anywhere this spring break, and if I am really really lucky, I will be stopping by at a friend’s place in Montreal before I begin working in June, and will be stopping by somewhere in Europe over the fourth of July, the chances of any of this happening are low, but it might happen, and that’d be cool.

Also currently there are a few people I don’t like, and one of these days I want to write about certain parts of 166, only because it is the first time I have been engaged in getting a new course of the ground, and it’s been pretty fun.

Ze Panda

A few of the things in my life

Wednesday, February 8th, 2006

Blog time, perhaps. It is sort of late, and I’d rather go to sleep tonight, seeing as it is like one of the first days this semester when I really don’t have work to do. Strange, in retrospect I am not completely sure about whether or not I should regret not taking the cool graduate vision course I was in for a day. They were cool, they are helping solve a real crime in Virginia involving a run away car and such, and I really really wanted to do that, mostly because it was research, had lots of real stuff to do, and was very little fluff, however as an undergraduate I am in fluff filled classes and have little time to do much of anything else. I promise next year will be cooler, I’ll be done with most of the fluff, I will be in a year where I am pretty certain about completing concentration requirements, should I ever actually get the time to file one before this semester runs out, and everyone my year will be out exploring the world. Wonders of wonders, I am still associated with my research from last semester, if everything works out and things don’t go kaboom like they are now, I might even have a paper out, and that can be fun. Working with a professor across the country however is not always fun, it involves meeting other people, and that is not a fun thing to do if you are not a very people person.

Blogs were predated by .plan files, and being in a CS department where Zephyr is still popular makes you intimately aware of the importance of maintaining one. However I also have a blog, and hence it is fairly important to put stuff up here too. Well anyways, I am going to be in New York, New York for the summer, living with my roommate, his girlfriend and other people, and this can be fun. I will be working for a semi-to-majorly evil corporation which makes lots of money, and is not completely weird. I have so far interviewed with what was formerly Macromedia and is now Adobe’s Flex division, which seemed fairly exciting, because it involved mostly research, and Apple Corporation. Adobe was one of the places where I really wanted to work, sadly they came to Brown too late to actually create a major dent in Bloomberg’s chances of getting me. Apple on the other hand has convinced me of not really wanting to work there (no I don’t care about declaring this, I e-mailed them this already), because they really never got back to me, kept dropping out of sight, and pretended to be far more important and busy than they were. I have long been a fan of Folklore, and would at some point of time really like to work at something of the Apple they describe. That Apple however no longer exists. I am not sure I am applying for any internships after this, a lot depends on how I find this one, but I would really like to do more research the next year, probably a more tightly controlled piece of work.

The powers that be are going to discontinue making the Aibo at the end of this month. As many people as I have told about this, have told me I am crazy to want one or care about this, however I am known to be crazy, and an Aibo is one of those things which I would really like to own at some point of time when I am rich enough to not care about the über expensive price tag. That being said they are cool, used by colleges and things like the Robo-Soccer World Cup, and are some of the best pieces of robotics available in the consumer market. Sony wasn’t going to discontinue them until they got a new CEO/Chairman type thing who decided they weren’t making enough money. Post rootkit Sony seems to be doing increasingly evil things, is sad, they used to be a fairly good company according to me, and weren’t very high on my evilness scale, but are getting there now. I also just noticed, that outside of my cellphone, acquired from Cingular, and my digital camera, I really do not have any SOny products littering my room.

So KM has acquired one of those nifty Intel based iMacs, made because Apple shifted just as IBM was coming out with what it claims are better chips. He’s yet to post a review of this, however conversations, and hints provided so far, seem to indicate he’s doing pretty well with them. However what concerns me is the lack of native Photoshop support on any of those machines, even Apple admits Photoshop doesn’t really deal with Rosetta well. And as much as I’d like to think Photoshop CS 3 will solve these problems, it will be really really expensive, and again come with some form of a hardware key. I’d like to claim GIMP is the solution to all these problems, what with GIMP being open source and all, however I am yet to come across a really good native GIMP installation for Mac OS X, those that exist aren’t really there yet, and this is getting annoying. With my father recently acquiring one of ‘em PowerBook G4s, just about everyone I know who does any significant amount of computer usage has an Apple, this is amusing, for when I bought mine, KM was probably the only other person I knew who had a recent (as in post PowerPC) Macintosh. Hopefully at the end of the summer I’ll be buying an updated nifty MacBook thing, hopefully by then Microsoft will be announcing the launch of their now universalized Office or the forthcoming release of the same, one hopes anyways. My computer’s clogged and slow, well not really, my old computers got a lot slower, but umm, ya this might be a good time to buy a computer, before I (hopefully) end up in grad-school and end up becoming very poor.

Well I am in a software development class now, and I have to crib about Tigris. Tigris is cool in some ways, they host Subversion, which seems to be a pretty OK versioning system, and seems to fail less often than CVS, and is free, Tigris also happens to be one of the very few places offering project spaces (to university projects amongst other things) with support for Subversion. Now let us see, technically I should just make a repository in the CS department, this however isn’t very appealing to people (not completely sure why), and getting a Tigris project would be nice. We even have a name (Raphael, I originally wanted Rembrandt, but that was too hard to spell according to some), a team (SCE, LRG, IAN and me) and an idea, however my Tigris project has been waiting for approval for like the last 3 or 4 days, and they don’t really give any indication as to how long this should or should not take, I wish they did, but they don’t. Hmm, so much for that.

Ze Panda

PS: This is an extemely small subset of the going on’s in my life hence no mention of CS166, classes, or much of anything else. Someday I shall post about this, till then you perhaps want to find a way to access my .plan file

PPS: Attempting to write a worm in Java is an interesting exercise in seeing just how far you can stretch the capabilities of Java.

PPPS: Do not write a worm