Name: Jason Rennie
Member since: 2000-03-21 19:17:06
Last Login: N/A
Homepage: http://people.csail.mit.edu/~jrennie/
I'm working for the summer. Consulting for a cool company called ITA Software. Btw, if you're reading this, are a good lisp or C++ hacker or are an XML expert and wouldn't mind working in Cambridge, MA, send your resume to alex@itasoftware.com. ITA is revolutionizing the airline ticketing industry. Many airlines still use mainframes and (get this) assembly code to process tickets, find flights for customers, etc. Most airlines would have trouble finding you their cheapest ticket from Boston to L.A. simply because there are so many options (combinations of flights, booking codes, etc.) and because their software isn't meant to actually search for a low price ticket. ITA has written a collosal library of software for dealing with the day-to-day aspects of airline ticketing. A big application is low-fare searching. See beta.itasoftware.com for a sample. There are also tons of other aspects for which airlines and airline-related companies need software.
Anyway, I'm working on a machine learning-related project for them. It has to do with Poisson processes, something which I learned a lot about in a class I took in the spring. I've also been coding a lot. I'm becoming pretty familiar with all of the ++ aspects of C++. It's amazing that gcc still has a ways to go before it is compliant with the standard. readsome() will be a nice function to have. I'm surprised at how easy C++ is to deal with once you know most of the ins-and-outs of the standard libraries. 'map' has made my life a whole lot easier. 'string's are nice, although they'd be nicer if everything used string's rather than char*'s. I'm surprised that there isn't a resizing-vector in the standard library, though. Well, at least it's easy enough to derive such a class. Anyway, after spending the first month or so hating every bit of C++, I now mostly enjoy using it. The project that I'm working on is coming well. I'm nearly finished with a protype that will probably go into use RSN. I just need to evaluate it and make sure that it does better than what was used before.
On the school side, I've been working on my master's thesis. I've been learning a bit about Bayesian statistics and how to determine the probability of a new object from training data by integrating over all possible parameters rather than estimating a "best" parameter (via MAP or ML). I also think that I've been learning how to do research. In the past, I've tended to think up a "cool" idea, phiosophize about it, analyze it, draw conclusions about it and then do experiments with the idea. I've learned that it's better to first test the idea. Once you get the idea, you should immediately implement it and play with it. See what it does. Try to think of ways to further and expound on your original idea. Once you've seen the idea in action, then it is time to philosophize and to draw conclusions. The same is true for programming. When I write code, I often try to scrutinize it to try to catch bugs before I run the code once. I do find bugs this way sometimes, but I spend (waste) a lot of time looking over code. Occasionally, I tell myself to write and immediately test once the code compiles. I find that I more quickly find and fix bugs this way and I end up with working code more quickly. I guess I'm just re-learning what Microsoft learned long ago: testing is a necessary evil---the quicker you begin testing and the more you do, the better the end product.
Anyway, the master's thesis is coming along. I have most of it written. I need to fill in the content holes and compile a full first draft this weekend. I'll be spending the next few weeks polishing up the writing and presentation.
Master's thesis and ITA have kept me quite busy of late. It's almost like having two full-time jobs. The fall should be nice. I plan to slack off and take it easy for at least a few weeks. Everyone needs their down-time :)
Hi codic. Hopefully you get a chance to read this. First I'll comment on the C/C++ thing :-) I'll be the first to admit that I know C better than I know C++, but I feel that I am a fairly competent C++ coder and am comfortable writing from a C++-mindset (as opposed to a C-mindset). Feel free to quiz me about C++. I'm actually in the middle of a C++ project (the xbattle stuff that I mention in my diary). I could send you code if you are interested...
Concerning the rating system, one of the points that I tried to get across in my diary entry is that I don't think that Advogato's rating system is set up to handle a negative rating. EBay can deal with a negative rating because of the way in which people are allowed to rate each other.
codic said:
I also feel that a rating system that allowed negative
ratings would be most effective if
everyone could rate users, but the weighting of a
user's rating (I can't help but notice that
that rhymes) should be proportional to their status
(i.e., a rating coming from a Master should
mean much more than a rating coming from an
Outcast).
I would have to diagree. If I'm not mistaken, this was exactly the case when Advogato brought in the Dimwit rating. A Master could demote an Observer with one click, but a whole swarm of Observers couldn't touch a Master's rating.
By only allowing positive ratings, one encourages people to value their account---switching to a new account wouldn't do anything productive. If one wants to create a real "community," an important thing is to make people value their accounts. The "community" can become very artificial if people frequently change accounts to avoid negative ratings.
So, I was just reading over the "Outcast" Certification patch: AIms and Assessement [sic] article. At first glance, the idea of having a negative rating to discourage spam might seem like a good one, but it is a flawed idea, particularly in the case of Advogato since 1) such negative ratings can be handed out freely and 2) it is trivial to sign up for an account without a negative rating associated with it. An "outcast" rating does nothing to restrict the efforts of a spammer. Advogato has implemented an effective way to reduce spam at the article level: only let people post who have the respect of some number of Advogato members. One way to reduce spam in the diary domain would be to set a minimum time window between advertising diary entries on the front page. One might have Master diary entries advertised up to once a day, Journey diary entries advertised up to once every two days, etc. As with the articles, members that have not achieved the respect of other members would not be allowed to advertise their views quite as frequently or as strongly.
There are systems that deal with negative ratings well. EBay is one of them. When you make a transaction with another person, you have the opportunity to rate him/her based on the interaction. Three ratings are offered: Positive, Neutral and Negative. People generally give Positive ratings unless they have something serious to complain about. The major advantage of this is that sellers are able to easily build a good reputation for themselves if they treat their buyers well. The system doesn't eliminate corruption; many sellers complain of bounced checks and often require a credit card or money order. It does, however, produce more reliable sellers. Those with a large number of sales seem to only rarely get a negative rating.
What can Advogato draw from EBay's rating system? One useful conclustion is that ratings work well when 1) ratings cannot be made on a whim and 2) ratings are based on equal-level, trust-based interactions. From the recent rash of namecalling that we saw on Advogato, one can infer that people are willing to give a negative rating based on a minimal amount of interaction; few are willing to give out a positive rating so quickly. Also, when a Master deems an Observer to be a Dimwit or an Outcast he/she has little worry of losing the Master rating as a result. The so-named Dimwit/Outcast doesn't have any flow to "fight" with. Since EBay allows everyone equal rating power, people are more careful about handing out negative ratings. I'm not suggesting that we switch to a rating system like EBay's---Advogato's system works well for restricting article posting. Rather, because Advogato does not have the qualities of EBay's system, Advogato's rating system cannot deal well with negative ratings.
Getting back to basics, there are certain Advogato "privileges" that one may want to restrict. As I see it, there are exactly two such privileges, posting diary entries and posting articles. I see no reason to restrict the posting of diary entries. One may want to restrict the way they are advertised on the front page: allow more advertisement for Master diaries, less for Observers. There is already asystem for restricting article posting. lkcl claims that we need a class that gives people no privileges. I don't see any reason for this. Everyone should be allowed some method of communication, however restricted it may be. lckl also wants many certification grades. Again, I don't see a point. Apprentice/Journeyer/Master divide up the spectrum pretty well. More classes will cause confusion without providing any benefit.
Anyway, that's all for now. If you write a reply in your diary and want me to hear about it, give me a rating (there's always Observer if you don't think me worth of Apprentice) and I'll take a look at your diary. It be nice if there were an easier way to reply...
Looks like the dimwit rating has been done away with. Yeah! :-)
jrennie certified others as follows:
Others have certified jrennie as follows:
[ Certification disabled because you're not logged in. ]
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!