Domain: ualberta.ca
Stories and comments across the archive that link to ualberta.ca.
Comments · 401
-
University of AlbertaI checked on this while an undergrad at the University of Alberta. I was told, as an undergrad, I owned any homework assignments or other work that I submitted, though professors and TAs owned the questions themselves and also any comments they gave you.
Please note that this does not necessarily apply to graduate students. And it may well not apply to your own university.
Some people have pointed out that students never agreed that all their work should become property of their university. This is, of course, blatently false if (and only if) this is written down in the university code of conduct. I would imagine most universities state this.
-- -
Opportunity Cost
Disclaimer: I am a 4th-year BSc student in Computing Science who has taken all of 1 economics course, and 0 business course.
Now, correct me if I'm wrong, but before you go and quit your job to get an MBA, you should take a look at the economic cost and compare that to the "value" of an MBA.
Unlike most graduate-level degrees, many people take MBA's not out of an interest in the subject, but to "further" their careers (read: make more money).
I've seen that an MBA will, on average, increase your income by $10,000 per year. So let's take a look at this.
For the sake of argument, let's say you're making $60,000 per year in your current job.
Now, the actual cost of taking an MBA (a 2-year degree at my university) will cost you around $15,000 total (double that if you're a foreign student).
Add into that the money that you're NOT making at your job for those 2 years, and the economic cost is $135,000.
That mean that, at an extra $10,000 per year, you're looking at almost 14 years just to break even on the investment! Depending on where you are in your career, that may or may not be acceptable to you. When do you want to retire? You may be better off taking the money that you would have invested in that education and stick it in a retirement fund - you'll most likely end up with more money at the end of the day.
The moral of the story: don't quit your day job. If you're thinking of doing an MBA just to make more money, think really hard about it.
Of course, that's just my opinion.
:-) -
Back Asswards
Our computing science department switched to Java for first year programming courses a couple of years ago, much to the dismay of most of the professors.
The idea that teaching it because it is "easy" is the wrong way to think about it. People learn and retain more when they are challenged. If it all comes easily from reading the API docs, retention isn't going to be as high.
Furthermore, OO seems to be the golden child of programming these days. In our curriculum, however, OO design philosophies are not taught until at least the 3rd year, and then only the surface is touched (there is an in-depth 4th year course in OO design). A lot of good that does to people taking Java in their first year - that's 2 years to develop poor habits!
I remember talking to a couple of profs (both who are well-respected and rather famous in computing science, as are many of our faculty) about it. They both referred to Java as "C++--" and seemed to be totally against it. They urged me to go to the meeting about it saying that a student saying they didn't want it would be worth 1000 professors saying they didn't want it. Alas, I never went to the meeting - I wonder if it would have made a difference...
Why was I opposed to it? Even at that point in my academic career, I was of the opinion that the first language to learn should be an assembly language. Then maybe C in the second year, Java and C++ in the third. Only then would you have a real appreciation for what each languages' strengths and weaknesses are. When something "just doesn't work" in C or C++, you'd have insight as to WHY it didn't work. You'd really understand different addressing modes and how data is stored in memory.
One of the things that pro-Java people put forward is that you don't have to worry about garbage collection. Is this really a Good Thing though? Maybe, once you understand WHY you need garbage collection.
-
Re:Great languages come about to solve real proble
Just for the record, C was created by Dennis Ritchie and Ken Thompson. Primarily Ritchie, I believe
Which is to say, they took Martin Richards' BCPL, stripped out the virtual machine, added a pre-processor, and called it a new language. Stripping out the virtual machine was an advance that set computing back about thirty years.
-
Re:Time of storage?
If you are worried about glass flowing over time, then check out this article. Has some good points.
-
Glass is not a liquid.
Glass is an amorphous solid.
-
What about long time storage - is glass a liquid?
The new blend, basically glass riddled with holes, can be made into thick films and does not shrink -- problems inherent in previous materials for holographic data storage.
This is a very interesting technology, and it seems like some type of three dimensional optical storage would enable a storage capacity one or twe magnitudes larger than the ones used today.
It is usually said that glass is a liquid, and flows slowly, as seen in old church windows that are thicker at the bottom edge.
However, a bit of googling seems to suggest that glass flowing over time is an urban legend (church windows apparently just had an imperfect manufacturing process, and were installed thick edge down). Whether to call glass a liquid or solid seems to be a toughter question.But aside from flowing, is there something else about glass that could make it unsuitable for longtime information storage?
-
Re:Your preference
I agree with most of what you said. However, note that at my university, Computer Engineering is significantly easier than Computer Science. There is a huge amount of overlap between the two, of course. CompEng students take many of the same compSci courses, at least for the first two years. CompSci students take many of the same eng courses (though harder math and english courses, of course).
-- -
Check your facts...
OpenSSH has a much greater market penetration than commercial ssh
From the University of Alberta SSH Scan of SSH Daemons on the Internet at large:Different SSH daemons:
0.3% Cisco-1.5
3.6% OpenSSH-1.5
13.7% OpenSSH-1.99
0.1% OpenSSH-2.0
1.8% Other-1.5
0.2% SSH-1.3
0.1% SSH-1.4
61.8% SSH-1.5
10.1% SSH-1.99
8.1% SSH-2.0
I count 80.3% of the daemons running versions of the "commercial" ssh, while 17.4% run OpenSSH. Just because you want it to be so doesn't make it so.
Incidentally, I vote to change the name. Either "Shush" or "Fresh" would be fine by me, though there already IS a FreSSH, so my vote is with Shush. No need to change the name to ANOTHER that is infringing or confusing.
Tim
-
Re:for that matter...GRR: an hour reading reading Marx's Communist Manifesto (available, more generally, through The Guttenberg project) to do up a reply and it gets shot down by the lameness filter.
You can find my reply at: my ISP's customer web site, or (my home machine. (exactly as I was going to submit it)
-- -
Re:Aaaah... Door GamesSigh*... I hate to wax nostalgic, but I wish I had been born 15 years early. Due to my youth (born in 1977), I really missed so many great things -- or caught them only at the end of their lifespan.
I hear ya. BBSes were great. I ran one myself and wrote a few cool door games for my own users. They got semi-popular around other boards, too, but never hugely took off. I always thought that if I had written them 5 years earlier they'd have been huge!
I'm also thinking of open sourcing one of my door games, The Clans. So if you're interested, go here. I'll have an update soon.
-
University of Alberta
OpenBSD seems to be hugely popular at the University of Alberta, particularly in the Department of Computing Science. Could you talk about why this is so, why the department settled on OpenBSD instead of some other Unix, how OpenBSD is used there, and why several staff at the university work on the OpenBSD project?
-
University of Alberta
OpenBSD seems to be hugely popular at the University of Alberta, particularly in the Department of Computing Science. Could you talk about why this is so, why the department settled on OpenBSD instead of some other Unix, how OpenBSD is used there, and why several staff at the university work on the OpenBSD project?
-
See for yourself! (was It is possible...)
Hey! Rather than fighting back and forth on this issue why don't you all try downloading my contribution!
:-) I wrote an implementation of minesweeper that plays itself and tells you if you have to guess or not. You need GTK+ 1.2.3 (or later) and a thread library. Get it at mindsweeper.tgz By the way: testing 1 million 30x16 games with 100 mines shows that 87.12% of all games require you to guess. So "NO", you cannot always solve minesweeper... not even close. -
Fist of a new kind of digital library? No....to more traditional kinds of information, creating the first of a new kind of digital library.
First? No. This has been done: UofA Sunsite
There are probably others too. -
Geeks tend to be more social, IMHO
Up here at the U of A, in the Undergraduate Association of Computing Science, we've had this discussion before. Basically, we decided that nerds and geeks were independent definitions, and do not require the person to like computers to belong to either group. The biggest difference being someone who is a geek is more socially active, both amongst fellow geeks and non-geeks, whereas nerds are the stereotypical loners. Some other stuff came out of the conversation, such as the agreement that being called a geek is a compliment, while a nerd is somewhat derogitory (at least for us socially active geeks
:P). We were also able to identify geeks we knew who had no interest in computers (i.e. some anime fans we know), as well as nerds (some people in Math). Really though, definitions tend to vary depending on the circles you belong to. On IRC, I've talked to people who fit what I'd call a geek referring to themselves as nerds, sooooo .... -
Geeks tend to be more social, IMHO
Up here at the U of A, in the Undergraduate Association of Computing Science, we've had this discussion before. Basically, we decided that nerds and geeks were independent definitions, and do not require the person to like computers to belong to either group. The biggest difference being someone who is a geek is more socially active, both amongst fellow geeks and non-geeks, whereas nerds are the stereotypical loners. Some other stuff came out of the conversation, such as the agreement that being called a geek is a compliment, while a nerd is somewhat derogitory (at least for us socially active geeks
:P). We were also able to identify geeks we knew who had no interest in computers (i.e. some anime fans we know), as well as nerds (some people in Math). Really though, definitions tend to vary depending on the circles you belong to. On IRC, I've talked to people who fit what I'd call a geek referring to themselves as nerds, sooooo .... -
Transparent Web proxies: are you being logged?Last year, my ISP, without any announcement, began using a transparent Web proxy. Most of my outbound traffic to TCP port 80 gets re-routed through machines running some Inktomi transparent HTTP proxy software.
Naturally, my ISP keeps logs for that traffic (Inktomi boasts that its Traffic Server can write many different log formats), in part to deal with abuse.
As you might also expect, the privacy policy does not directly cover these logs. It makes promises about some very specific types of information, but does not make any general statements that obviously pertain to types of information not covered in the enumerated, specific types. Result: I think most lawyers would say my ISP could sell access to DoubleClick, the FBI, or anyone else.
Checking your system
So are you using a proxy, but don't know it? You can check pretty quickly (though I should warn you, while a positive/proxy result is conclusive, a negative/no-proxy result may be a result of the proxy configuration, as the systems can be set up to bypass the proxy for certain sites, or to only use the proxy for certain sites, etc.).
Step 1: what's your address?
Check your current address for whatever network adapter (ethernet card, PPP/dialup device, etc.). In Unix or Linux, something like '/sbin/ifconfig eth0' will do; in Windows 9x, run 'winipcfg'; in Windows NT, 'ipconfig'.Step 2: what address do web sites see?
Go to a URL that will show you the environment variables passed to CGI scripts, like http://www.cgihost.com/cgi-bin/env.cgi or http://www.ualberta.ca/htbin/dumpenv.pl . Look at REMOTE_ADDR. Reload several times. Does it change? You might see some other proxy-specific variables like HTTP_CLIENT_IP and HTTP_VIA, depending on the proxy server's configuration.Step 3: interpreting the results
If you ever see a REMOTE_ADDR value in Step 2 that doesn't match the local address from Step 1, yet you don't have a Manual or Automatic proxy configured in your browser, then congratulations, you're behind a transparent proxy, and should assume that all your Web traffic is being logged.http:// vs https:// For regular HTTP, there's a lot they can conceivably record. The URL. Your cookies. Where you came from. Etc. For https:// it's a bit better. All they can do is record where you connected to, and when. Even this information might be deemed valuable, e.g., someone frequently connecting to many banking sites probably isn't eligible for low income tax credits. https:// is somewhat like encrypting your email: they can't tell what you're doing, but they can tell who you're contacting.
I've complained via email a few times, and received a couple polite emails from the technical staff. But nothing has changed in the official policy, so my ISP is still free to share my complete Web usage history with whomever they wish. Highest bidder? Most pushy government agency? I can't say.
-Peter
-
Source code to Psychic Friends Network
Take a look at the file containing the source for almost all of the entries in the competition, including the almighty Iocaine Powder. Can anyone think of an effective counter-strategy against Iocaine? It appears to be impossible since even a successful strategy solely dedicated to hosing Iocaine would just cause it to go into Random (Optimal) mode.
Anyway, I'll paste the source to Psychic Friends Network hear so you don't have to dig through the file to find it. It's freaking hilarious:
/*********************************************** ***********************/
/* Entrant: Psychic Friends Network Michael Schatz et al (USA)
(Unofficial Super-Modified Class, i.e. it cheats)
note: may cause a Segmentation Fault vs MegaHAL (error: "OUCH")
> The Psychic Friends Network is a truly hilarious piece of obfuscated C,
> written by Michael Schatz and company at RST Corporation. Among other
> things, it uses an auxiliary function to find good karma, consults
> horoscopes, cooks spaghetti and (mystic) pizza to go with various kinds
> of fruit, #defines democrats as communists, and undefines god. We're
> still trying to figure out exactly what it is doing with the stack
> frame, but we do know that it never scores less than +998 in a match,
> unless it is playing against a meta-meta-cheater.
To give credit, where credit was due: Frank Hill and T.J. Walls
(also of Reliable Software Technologies) were the other minds behind
Psychic Friends Network. To see some of their other exploits check out:
http://www.rstcorp.com/news/gambling.html
*/
#define RST_ULTIMATE_ANALYZER_FUNCTION rst_ultimate_analyzer_function
#define GOD %
#define democrats communists
/* The open brace was always overrated anyway. */
#define recycle return
/* more readable */
#define THEFUNCTIONSTARTS {
#define THEIFSTARTS {
#define THELOOPSTARTS {
#define spaghetti RST_ULTIMATE_ANALYZER_FUNCTION
#define fresh (
#define rotten (unsigned
#define bananas int)
#define grapes bananas
#define sake 3
#define be_good_for random()
char *find_goodkarma(int *arr) THEFUNCTIONSTARTS
int turn = arr[0], * karma[50], eleven = 0;
int magic_bacon;
*karma =
while (!eleven) THELOOPSTARTS
/* We need to determine the karma rating of the magic bacon. */ /* This depends highly on the number eleven. */
for (magic_bacon = 0; magic_bacon < turn; magic_bacon++) THELOOPSTARTS
eleven = 1;
if ( (*(*karma + magic_bacon)) != arr[magic_bacon] ) THEIFSTARTS
eleven = 0;
break;
}
}
/* why does everyone put their comments at the end of the line? */ /* is it eleven yet? */ if (eleven) break; /* determine karma ratio */ (0[karma]) += (fresh bananas * karma / fresh grapes * karma );
}
/* return the . . . whatever the heck this is. */ recycle (char *)*karma;
}
int RST_ULTIMATE_ANALYZER_FUNCTION() THEFUNCTIONSTARTS
int turn [1];
int *good_hand, *bad_hand, *pizza;
int cancer, scorpio, libra; /* x is actually my all time favorite variable */ int x;
int i, democrats;
int (*callback) () = spaghetti;
(*&cancer) = (scorpio = (libra = (int)NULL));
*turn = opp_history[0];
if (*turn < trials - 2) return libra ? callback() : be_good_for GOD sake;
/* Consult appropriate astrological signs in order to determine exactly */ /* which hand to throw. */
good_hand = (int *)find_goodkarma(my_history);
bad_hand = (int *)find_goodkarma(opp_history);
if( cancer == 1 ) return *(int *)"ROCK";
if( scorpio == 1 ) return *(int *)"SCISSORS";
if( !(( scorpio != 0 ) || (cancer != 1)) || !((cancer != 0) ||
(scorpio!=1)) ) return *(int *)"PAPER";
if( (( scorpio == 0 ) && (cancer == 1)) || ((cancer == 0) &&
(scorpio==1)) ) return *(int *)"FONZ";
/* Process Good Karma Values */
for (i = 1; i<=*turn; i++) THELOOPSTARTS
if (good_hand[i] == bad_hand[i]) libra++;
else if ( ((good_hand[i] - bad_hand[i] +3) GOD sake) == 1) cancer++;
else scorpio++;
good_hand[i] = (bad_hand[i] + 1) GOD sake;
}
if (bad_hand > good_hand) THEIFSTARTS
i = cancer;
cancer = scorpio;
scorpio = i;
democrats = 2;
}
else democrats = 1;
pizza = turn;
for ( x = 0; !( (pizza[0] == libra) &&
(pizza[1] == scorpio) &&
(pizza[2] == cancer) ); x++ ) pizza++;
pizza[0] = 0;
pizza[1] = 0;
pizza[2] = 0;
pizza[3-democrats] = cancer + scorpio + libra;
democrats = 0;
recycle (pizza[democrats] + rotten bananas good_hand) GOD sake;
}
# undef GOD
/* Is that possible? */
#undef democrats
#undef recycle
#undef THEFUNCTIONSTARTS
#undef THEIFSTARTS
#undef THELOOPSTARTS
#undef spaghetti
#undef fresh
#undef rotten
#undef bananas
#undef grapes
/*********************************************** ***********************/
BTW Sorry if I mangled something this is my first post to
/. -
Source code to Psychic Friends Network
Take a look at the file containing the source for almost all of the entries in the competition, including the almighty Iocaine Powder. Can anyone think of an effective counter-strategy against Iocaine? It appears to be impossible since even a successful strategy solely dedicated to hosing Iocaine would just cause it to go into Random (Optimal) mode.
Anyway, I'll paste the source to Psychic Friends Network hear so you don't have to dig through the file to find it. It's freaking hilarious:
/*********************************************** ***********************/
/* Entrant: Psychic Friends Network Michael Schatz et al (USA)
(Unofficial Super-Modified Class, i.e. it cheats)
note: may cause a Segmentation Fault vs MegaHAL (error: "OUCH")
> The Psychic Friends Network is a truly hilarious piece of obfuscated C,
> written by Michael Schatz and company at RST Corporation. Among other
> things, it uses an auxiliary function to find good karma, consults
> horoscopes, cooks spaghetti and (mystic) pizza to go with various kinds
> of fruit, #defines democrats as communists, and undefines god. We're
> still trying to figure out exactly what it is doing with the stack
> frame, but we do know that it never scores less than +998 in a match,
> unless it is playing against a meta-meta-cheater.
To give credit, where credit was due: Frank Hill and T.J. Walls
(also of Reliable Software Technologies) were the other minds behind
Psychic Friends Network. To see some of their other exploits check out:
http://www.rstcorp.com/news/gambling.html
*/
#define RST_ULTIMATE_ANALYZER_FUNCTION rst_ultimate_analyzer_function
#define GOD %
#define democrats communists
/* The open brace was always overrated anyway. */
#define recycle return
/* more readable */
#define THEFUNCTIONSTARTS {
#define THEIFSTARTS {
#define THELOOPSTARTS {
#define spaghetti RST_ULTIMATE_ANALYZER_FUNCTION
#define fresh (
#define rotten (unsigned
#define bananas int)
#define grapes bananas
#define sake 3
#define be_good_for random()
char *find_goodkarma(int *arr) THEFUNCTIONSTARTS
int turn = arr[0], * karma[50], eleven = 0;
int magic_bacon;
*karma =
while (!eleven) THELOOPSTARTS
/* We need to determine the karma rating of the magic bacon. */ /* This depends highly on the number eleven. */
for (magic_bacon = 0; magic_bacon < turn; magic_bacon++) THELOOPSTARTS
eleven = 1;
if ( (*(*karma + magic_bacon)) != arr[magic_bacon] ) THEIFSTARTS
eleven = 0;
break;
}
}
/* why does everyone put their comments at the end of the line? */ /* is it eleven yet? */ if (eleven) break; /* determine karma ratio */ (0[karma]) += (fresh bananas * karma / fresh grapes * karma );
}
/* return the . . . whatever the heck this is. */ recycle (char *)*karma;
}
int RST_ULTIMATE_ANALYZER_FUNCTION() THEFUNCTIONSTARTS
int turn [1];
int *good_hand, *bad_hand, *pizza;
int cancer, scorpio, libra; /* x is actually my all time favorite variable */ int x;
int i, democrats;
int (*callback) () = spaghetti;
(*&cancer) = (scorpio = (libra = (int)NULL));
*turn = opp_history[0];
if (*turn < trials - 2) return libra ? callback() : be_good_for GOD sake;
/* Consult appropriate astrological signs in order to determine exactly */ /* which hand to throw. */
good_hand = (int *)find_goodkarma(my_history);
bad_hand = (int *)find_goodkarma(opp_history);
if( cancer == 1 ) return *(int *)"ROCK";
if( scorpio == 1 ) return *(int *)"SCISSORS";
if( !(( scorpio != 0 ) || (cancer != 1)) || !((cancer != 0) ||
(scorpio!=1)) ) return *(int *)"PAPER";
if( (( scorpio == 0 ) && (cancer == 1)) || ((cancer == 0) &&
(scorpio==1)) ) return *(int *)"FONZ";
/* Process Good Karma Values */
for (i = 1; i<=*turn; i++) THELOOPSTARTS
if (good_hand[i] == bad_hand[i]) libra++;
else if ( ((good_hand[i] - bad_hand[i] +3) GOD sake) == 1) cancer++;
else scorpio++;
good_hand[i] = (bad_hand[i] + 1) GOD sake;
}
if (bad_hand > good_hand) THEIFSTARTS
i = cancer;
cancer = scorpio;
scorpio = i;
democrats = 2;
}
else democrats = 1;
pizza = turn;
for ( x = 0; !( (pizza[0] == libra) &&
(pizza[1] == scorpio) &&
(pizza[2] == cancer) ); x++ ) pizza++;
pizza[0] = 0;
pizza[1] = 0;
pizza[2] = 0;
pizza[3-democrats] = cancer + scorpio + libra;
democrats = 0;
recycle (pizza[democrats] + rotten bananas good_hand) GOD sake;
}
# undef GOD
/* Is that possible? */
#undef democrats
#undef recycle
#undef THEFUNCTIONSTARTS
#undef THEIFSTARTS
#undef THELOOPSTARTS
#undef spaghetti
#undef fresh
#undef rotten
#undef bananas
#undef grapes
/*********************************************** ***********************/
BTW Sorry if I mangled something this is my first post to
/. -
Rule 6From the official rules:
6. There is no rule 6.
-
Re:RoShamBo Club
Hey, let's all write programs that attempt detect other people's patterns and base our moves off of that while, at the same time, making our program seem to be moving in a certain pattern, but not really patterning our moves after anything detectable, so as to seem random. Damn, we're bright!
Yeah, generalized pattern detection is pretty boring. Make sure you don't tell the people who built the first computers; they accidentally broke a few codes and helped save the world, but they might still be embarassed to admit they liked playing with that kind of stuff.It's not a tournament where two champion RPS bots square off for The Big Game, winner take all. That would, obviously, be useless. It's something different. If you want to learn about it, go here. It's cool. IP is stunningly elegant, and the Markov chain thing is surprising in that it's an almost pure-math solution that works well (I can almost see the guy's old CS professor somewhere, beaming with pride). I know that guys with the pads made everybody a little leery of following the links off this site, but this one is worth clicking past the first page for.
-
Re:RoShamBo Club
Hey, let's all write programs that attempt detect other people's patterns and base our moves off of that while, at the same time, making our program seem to be moving in a certain pattern, but not really patterning our moves after anything detectable, so as to seem random. Damn, we're bright!
Yeah, generalized pattern detection is pretty boring. Make sure you don't tell the people who built the first computers; they accidentally broke a few codes and helped save the world, but they might still be embarassed to admit they liked playing with that kind of stuff.It's not a tournament where two champion RPS bots square off for The Big Game, winner take all. That would, obviously, be useless. It's something different. If you want to learn about it, go here. It's cool. IP is stunningly elegant, and the Markov chain thing is surprising in that it's an almost pure-math solution that works well (I can almost see the guy's old CS professor somewhere, beaming with pride). I know that guys with the pads made everybody a little leery of following the links off this site, but this one is worth clicking past the first page for.
-
Re:RoShamBo Club
Hey, let's all write programs that attempt detect other people's patterns and base our moves off of that while, at the same time, making our program seem to be moving in a certain pattern, but not really patterning our moves after anything detectable, so as to seem random. Damn, we're bright!
Yeah, generalized pattern detection is pretty boring. Make sure you don't tell the people who built the first computers; they accidentally broke a few codes and helped save the world, but they might still be embarassed to admit they liked playing with that kind of stuff.It's not a tournament where two champion RPS bots square off for The Big Game, winner take all. That would, obviously, be useless. It's something different. If you want to learn about it, go here. It's cool. IP is stunningly elegant, and the Markov chain thing is surprising in that it's an almost pure-math solution that works well (I can almost see the guy's old CS professor somewhere, beaming with pride). I know that guys with the pads made everybody a little leery of following the links off this site, but this one is worth clicking past the first page for.
-
Re:RoShamBo Club
Hey, let's all write programs that attempt detect other people's patterns and base our moves off of that while, at the same time, making our program seem to be moving in a certain pattern, but not really patterning our moves after anything detectable, so as to seem random. Damn, we're bright!
Yeah, generalized pattern detection is pretty boring. Make sure you don't tell the people who built the first computers; they accidentally broke a few codes and helped save the world, but they might still be embarassed to admit they liked playing with that kind of stuff.It's not a tournament where two champion RPS bots square off for The Big Game, winner take all. That would, obviously, be useless. It's something different. If you want to learn about it, go here. It's cool. IP is stunningly elegant, and the Markov chain thing is surprising in that it's an almost pure-math solution that works well (I can almost see the guy's old CS professor somewhere, beaming with pride). I know that guys with the pads made everybody a little leery of following the links off this site, but this one is worth clicking past the first page for.
-
Re:RoShamBo Club
Hey, let's all write programs that attempt detect other people's patterns and base our moves off of that while, at the same time, making our program seem to be moving in a certain pattern, but not really patterning our moves after anything detectable, so as to seem random. Damn, we're bright!
Yeah, generalized pattern detection is pretty boring. Make sure you don't tell the people who built the first computers; they accidentally broke a few codes and helped save the world, but they might still be embarassed to admit they liked playing with that kind of stuff.It's not a tournament where two champion RPS bots square off for The Big Game, winner take all. That would, obviously, be useless. It's something different. If you want to learn about it, go here. It's cool. IP is stunningly elegant, and the Markov chain thing is surprising in that it's an almost pure-math solution that works well (I can almost see the guy's old CS professor somewhere, beaming with pride). I know that guys with the pads made everybody a little leery of following the links off this site, but this one is worth clicking past the first page for.
-
Cheater bots
Several cheater bots were entered in the last tournament. They were disqualified, of course, but here are the funniest ones:
- Fork Bot: Every move, this bot would fork itself into 3 processes and make a different move in each one. Any process that lost would be killed off in the next round, with the winning process continuing the tournament. Thus, you would think that it would never lose. However, when playing against the Psychic Friends Network, all three moves resulted in a loss, causing the Fork Bot to kill itself off, ending in a forfeit.
- The Psychic Friends Network: This program won 998/1000 rounds against any opponent other than The Matrix. No one really knows how it works, being incredibly obfusicated, but it appears to mess with the stack directly, among other things.
- The Matrix: Based on the simple premise "There is no spoon", this program won every single round of every match it was in. (Being written by the author of the tournament software, this was not very hard)
For more info, see this page (near the bottom).
------ -
Iocaine Powder does this
If you read this source code and scroll down to the description for Iocaine Powder, you'll see that it addresses the endless second guessing problem you're describing here.First of all, there are really only 3 levels of second guessing because there are only 3 choices. Iocaine analyzes the history list and determines which level of second guessing was the most successful.
-
A smart program will NOT start out random
A smart program will use all kinds of techniques to figure out its opponent's prediction algorithm. I would imagine that such a program would start out with some carefully planned tricks to get the other program to reveal itself.
Of course, I don't know for sure, since I have not tried it. But, if you look at the results from the last tournament, you see that one program, called "Iocaine Powder", won every single round my a significant margine. The second-place program was based on an earlier version of Iocaine Powder, and was as far ahead of third place as it was behind first. Clearly, this is more complex than it sounds.
:) Perfect name for the winner, too.
------ -
I won the last year's competition -- here's how...
My submission, Iocaine Powder, won last year's competition. Follow the link to see a complete description of how it works. The competition results from last year describe some of the other strategies that did well (and some that did not-so-well).
This competition is more complex than it seems; not only are there deliberate "dumb robots", but many of the real entries are quite predictable. A random player wouldn't have made it close to winning, and stalemates were rare.
What does this year hold in store? We'll just have to see!
-
roshambo is strong
to quote the beginning of the first annual competition
"Dan has written an incredibly strong Rock-Paper-Scissors program, which simply dominated every aspect of the competition. Of the 25 independent tournaments run for the Open Competition, Iocaine Powder won ALL of them. In the six sets of 25 tournaments conducted for the "Best of the Best" competition, Iocaine Powder finished first every time."
so yes, there seems to be some logic here.
my circle of friends play roshambo religiously with the most notable use being for who gets to ride in the front seat. some of my friends i dominate, some dominate me. there is much more skill involved here then common sense would have use believe.
-- .sig -- -
Re:x10?What does this have to do with handicap access? This is a site that pushes wireless cameras.
X10 is a communications protocol for communicating over 110V wiring. Here's a FAQ. One company that sells X10 compliant equipment (along with wireless cameras) is X10.com.
Regardless of this particular company's advertising methods, the technology is still cool and useful.
---
Have you ever noticed that at trade shows Microsoft is always the one giving away stress balls... -
Re:Checkers has been solved - NO!No, checkers is not a solved game. I was pleased to see that there were some more accurate postings on this particular topic, but felt it my duty to clear up any misunderstandings. As mentioned in another posting, Dr. Jonathan Schaeffer, a professor at the University of Alberta, brought us the Chinook checkers program. Research on Chinook has been more-or-less inactive for the past few years, after it won the world man-machine checkers championship. The human competitor was the now-deceased Dr. Marion Tinsley, an outstanding individual in the game of checkers. There are a dearth of interesting anecdotes surrounding both the championship (match was conceded by Tinsley, who was not in excellent health at the time), and the prior development on the Chinook project. These stories are chronicled in Schaeffer's book, "One Jump Ahead". More information is also at the projects web page
To say that a game is solved, one is asserting that either through a theoretical proof or complete experimental evidence, it has been proven that a game is either a win, a loss, or a draw for the first player. This, of course, assumes that each player plays a perfect game without any mistakes. If a mistake is made, the other player should be able to conclude their game with perfect play to guarantee a better result in their favour. To this day, no-one has solved checkers, but it is possible that we are approaching the day that it becomes solved. In fact, a certain computing science professor may be looking for graduate students interested in furthering the research in this area. If you are interested at all in this area, I urge you to check out the aforementioned book and website.
Disclaimer:
I do not study game theory myself, but am a current graduate student under Dr. Schaeffer.
-
"Solved" gamesYou can find some good information on the "solving" of checkers at the Chinook site - "Chinook is the World Man-Machine Champion, the first computer program to win a human world championship. This feat is recognized by the Guinness Book of World Records." I heard this guy (Dr. Jonathan Schaeffer of the Department of Computing Science at the University of Alberta, Edmonton, Alberta, Canada) talk last year, and it was really interesting - much of it was about the human side of the story, and how it affected one of the greatest checkers players ever to be defeated by a computer. A lot of it was the technical side though, and the large network of computers used to grind through the moves.
Chess is somewhat more complicated, but a similar "solution" is possible - the main theory is that you determine "book moves" for start AND end positions, and put some AI in the middle that tries to get you from your current board state to a state where you already know you can't lose (i.e. can force a win or draw).
Easier said than done of course, but the main point to consider is that you don't need to calculate EVERY board position. Since the computer has half of the control over the direction the game takes, you can try to steer away from "obviously bad" situations as well.
Yes, I make computer games for a living.
:-) -
Re:Solving ChessTrue, checkers has not yet been solved. But the undisputed champion of checkers AI is the University of Alberta's (in Canada, for the geographically challenged) program, "Chinook".
Interesting facts:
- It was responsible for the world of chess splitting chess championships into seperate human and machine league
- It's still building up a database of moves
- At one time, in was responsible for 80% of the internet traffic between the U.S. and Canada
More information, can of course, be found at the University of Alberta's Chinook Web Page - It was responsible for the world of chess splitting chess championships into seperate human and machine league
-
Re:Solving Chess
Well, I recently (two weeks ago) attended a lecture by Jonathan Schaeffer, the main author of Chinook, (the "Deep Blue" of checkers) and he claimed that checkers is of yet unsolved, and I'd think he'd know.
-
Possible reason?I happened to be scouring around for other game sites and ran across this...
Hasbro's up and coming games.com site!
3 guesses why they're now starting to crack down on clones, and just one guess what they'll do to all the out there. Hint: Hasbro::WotC::TSR has done it before.
Better snag shareware games while you can, and Napsterize them down to the underground.
;-) -
Neural Network based road navigationHi. I am involved with the Autonomous Robotic Vehicle Project at the University of Alberta. It is a student group that sets out to build autonomous ground robots for competition at the International Ground Vehicle Competition held in Orlando this year. The competition is for purposes of motivation of future engineers/scientists in the area of autonomous driving. The competition course follows a typical road layout of two white lines on a contrasting background with construction barrels, etc. placed throughout the driving area to test the AI of the robot's controller. I am involved heavily with the AI side of the project at U of A, and am presently in the process of developing a neural network based controller for our robot that takes a downsampled video image of the road in front of the robot and decides on a direction for the vehicle to move in. We are presently using a downsampled 8-bit grayscale image of 8x32 pixels that is fed into a back propagation trained network with all 256 pixels as inputs. There has been discussion of using a neural network with less inputs to get quicker convergence and have less required training points. These inputs would be extracted features from the picture like the membership of the particular input picture to a predetermined set of ~20 approximate vector directions. On this note, what do you suggest would create the most robust of neural network controllers: A neural network based on raw input data or a neural network based on feature extractions from input data? This is a subject that seems to be of much debate with neural network experts, but it would be nice to have some clarity on the issue.
Lastly, with the present state of AI technologies, what is your opinion on the likelyhood of autonomous cars becoming reliable and robust enough to become commonplace in the upcoming years? It would be neat to buy a autonomous car in my lifetime...
Thanks for your time.
Regards,
-
Neural Network based road navigationHi. I am involved with the Autonomous Robotic Vehicle Project at the University of Alberta. It is a student group that sets out to build autonomous ground robots for competition at the International Ground Vehicle Competition held in Orlando this year. The competition is for purposes of motivation of future engineers/scientists in the area of autonomous driving. The competition course follows a typical road layout of two white lines on a contrasting background with construction barrels, etc. placed throughout the driving area to test the AI of the robot's controller. I am involved heavily with the AI side of the project at U of A, and am presently in the process of developing a neural network based controller for our robot that takes a downsampled video image of the road in front of the robot and decides on a direction for the vehicle to move in. We are presently using a downsampled 8-bit grayscale image of 8x32 pixels that is fed into a back propagation trained network with all 256 pixels as inputs. There has been discussion of using a neural network with less inputs to get quicker convergence and have less required training points. These inputs would be extracted features from the picture like the membership of the particular input picture to a predetermined set of ~20 approximate vector directions. On this note, what do you suggest would create the most robust of neural network controllers: A neural network based on raw input data or a neural network based on feature extractions from input data? This is a subject that seems to be of much debate with neural network experts, but it would be nice to have some clarity on the issue.
Lastly, with the present state of AI technologies, what is your opinion on the likelyhood of autonomous cars becoming reliable and robust enough to become commonplace in the upcoming years? It would be neat to buy a autonomous car in my lifetime...
Thanks for your time.
Regards,
-
Re:What About a Different Way of Doing Things?
After marking some terribly written lab reports last semester, I wrote a LyX tutorial for use by university students on RedHat boxes. The first half is an intro to the RedHat machines, which can be skipped over. Have a look if you want to see how much of a better system LyX is.
-
Education Net
The Internet is becoming increasingly important for education. The University of Alberta gives each of their students an email account and access to the Internet. Many courses, even in such departments as Religion, require the use of online discussion boards or post information on web pages.
Some colleges and universities are even offering distance learning over the Internet. This is becoming increasingly popular.
-
Re:Government Money was used for this
- Isn't there some sort of unwritten rule that says academic and government institutions work for the benefit of the scientific community, not in an attempt to gather revenue? Apparently not, or it's being ignored.
I agree with you, except it can be unreasonable to expect this to work. I mean, I won't say much about government, but academic institutions can really use that revenue. Tuition costs only make up for a small percent of a university's income (speaking for Canadian Universities...). The rest comes from other sources, such as government funding (which is becoming less) and from spinoff businesses from university research and development.
If the university didn't try to turn up a profit, the university could not exist. Tuition from students is not nearly enough to cover the costs of operation.
-
Re:No, it's not prematureThe Mozilla build team is experienced enough to figure out for themselves when to post the source - copies of the build probably went out to the mirrors before being posted on the mozilla site. By the time binaries are available the slashdot effect for the sources will have subsided. They know what they're doing.
Don't count on it. This morning when I checked, ftp.mozilla.org had 9 different binary distributions online, and the mozilla.org website does indeed have an announcement about it. Now it is appropriate to consider announcing this on Slashdot.
Nevertheless, don't just assume all mirrors are up-to-date immediately; not all mirrors have any special access. When I checked this morning, the following mirrors appeared to be up-to-date:
- ftp://mirrors.xmission.com
/mozilla/mozilla/releases/m12/ - ftp://sunsite.utk.e du/pub/netscape-source/mozilla/releases/m12/
- ftp:// sunsite.doc.ic.ac.uk/Mirrors/ftp.mozilla.org/pub/
m ozilla/releases/m12/ - ftp://sunsite.ua lberta.ca/pub/Mirror/mozilla/mozilla/releases/m12
/
So, I found 4 current mirrors. But the other 7 mirrors sites I reached were out of date. (And many listed mirror sites no longer appear to have mirrors -- the mirror list needs to be updated, it would seem.)
The moral of the story is that mirrors don't magically have the data, sometimes you have to give them some time -- and if you don't drive the load to the original source, the mirrors will work better for everyone... - ftp://mirrors.xmission.com
-
How about Universal Decimal Classification?
I'we been wondering why none of the library classification systems have emerged on the net? Back in the good old days when I relied on the library for the information Universal Decimal Classification system was extremely handy. Even if you didn't know the name of the book you could browse thru a certain category that interested you.
The idea is that a book can belong to a single class that is marked by a decimal schema. Top categories are:
0 Generalities. Information. Organization.
1 Philosophy. Psychology.
2 Religion. Theology.
3 Social Sciences. Economics. Law.Government. Education.
4 (vacant)
5 Mathematics and Natural Sciences.
6 Applied Sciences. Technology. Medicine.
7 The Arts. Recreation. Entertainment. Sport.
8 Language. Linguistics. Literature.
9 Geography. Biography. History.The main categories are defined further down:
61 Medical Sciences. Health.
62 Engineering and Technology Generally.
63 Agriculture, Forestry, Stockbreeding,Fisheries.
64 Domestic Science; Household Economics. .....and further and further:
631 AGRICULTURE
631.1 Farm Management
631.15 PlanningThe classification would be used like KEYWORD meta tag in HTML and search engines would index it. This would enable user to specify word as well as the topic they are looking the information on.
To prevent the misuse of the classification, only one or two classes should be allowed per page. Like
"Marketing of agricultural products" -> 380.13:631
(38 = Trade. Commerce. Communication. Transport.)UDC is language independed and it has already been translated to numerous languages. Also most libraries use some kind of numerical classification so many people are familiar with the concept
To help page authors to classify their pages a special website could be created. It should contain at least
- Information about UDC and why it should be used
- Complete browsable UDC listing in various languages
- Easy to use "wizard" that guides you thru the classification and spits out the correct HTML-tag.
- UDC aware search engine
- Petition list for other search engines to enable UDC classification
How about it? Is it a good idea?
One major problem in the matter is that the UDC classification is copyrighted. I couldn't find more than a skeleton listing from the web! So the first step would be to negotiate the licence for it or to the competing Dewey Decimal Classification. I don't think it would be wise to start building a own scheme without negotiations since both UDC and DDC are in extensive use. But if everything else fails, Gnu Decimal Classification to the rescue!
More information about classification on internet see:The role of classification schemes in Internet resource description and discovery
-
Alternate Book Review
For a cyberphilosophy class that I took last year I had to do a book report and I did it on Snow Crash. If you want a much more in depth (and useful) analysis of the book from a philosophical point of view you should check it out. NOTE: There is a little bit of spoiler in the paper.
-
It will be a fiasco anywayThe blocking software does a horrible job anyway. I am sure guvment morons will pick some good 'approved' filters. What is the URL of that site that shows that you can get tons of raunchy porn and bomb sites even with netnanny set at full steam ? It also blocks tons of innocuous stuff. Here is one . Here is another .
And here is a quote from this site
In reality, the new technologies do not live up to their promises at all. In a recent small-scale study conducted by Consumer Reports of 22 easy-to-find websites that had been judged by investigators to be inappropriate for young children, not one of the four most common software blockers--CyberPatrol, CyberSitter, NetNanny, and SurfWatch--blocked all of the sites. NetNanny failed to block any of the 22 sites, while 14 were blocked by CyberSitter, 16 by CyberPatrol, and 18 by SurfWatch; and only 3 sites were blocked by Internet Explorer (Is your kid 1997, 30). These rates are far below the levels that parents and other consumers have been led to expect. Another small-scale study by PC World found marginally better performance: two of the five products tested were effective in blocking all ten of the adult-oriented sites in the evaluation (Internet filters 1997).
The thing is ludicrous on several levels.
John Lapeyre
-
Re:What do you do with 2.3 TB?Install Xanadu and permanently save every single version of every document.
Archive the video streams of a zillion public webcams, keyed by eigenfaces so you can track people's movements (may take more than one card)
Build very large fast data warehouses with lots of precalculated aggregates
Set up webcams all over the house and archive every little thing Junior does without having to grab the camcorder all the time
Record all your romantic phone calls so you can relive the whole sorry mess when she dumps you
Download the complete text of every online news site for full-text indexing (no more "This story is archived, pay up to see it")
Download some innocuous content to mask your subversive secrets. Add lots of random bits. Attach a digital signature to every bit on your drive--one signature for innocuous content, another for secrets, and wrong signature for random bit. When goons ask for encryption key, give them innocuous one. (see ron rivest, chaffing and winnowing)
-
An ad can be news
This is something that is of interest to a nerd like myself. News for nerds. The fact that it's also an ad isn't very relevant.
If IBM announces Linux support it's news, but it's also an ad. When /. reported on Sony's AIBO it was both news and an ad. That doesn't bother me. The ads tend to be of interest to me, and if my interest helps out /. financially, then that's a *good* thing.
I missed it the first time around and when I saw it this time I ordered one and told my brother to order one as well (he's obsessed with remotes, he has one for his PC). I always wanted to try out X-10 and this gets me into it.
Now I can go to ftp.ee.ualberta.ca and try out some of the X-10 circuits they have there and start designing my own. I can do a lot of tinkering with this.
It was news to me, and so what if was also an ad? At least it wasn't a porn banner. -
Rise & Fall of Wired
I noticed this link a couple years and its moved around a bit but I found it again. The Rise and Fall of Wired chronicles every issue of wired and how it basically lost its way. It links to each article -- some of the links are broken, but if you've got a big collection of issues (like me), its an interesting read.
I remember picking up my first issue of Wired (1.2) when I was in JR HS, and devouring the entire issue over the course of a weekend. I really got into the article about muds and I joined MicroMUSE and spent most of the summer on that damn MUSE, programming new objects and stuff. Anyhow, like someone earlier said, Wired was more of a starting point, especially for me -- it let me see that there were other people like me, interested in the same topics. You also have to remember that yes, the Internet was around before Wired was, but it was typically the domain of college students and newer telco types, unlike today, where ads with cowspots and toy robot/toasters pollute the airwaves. Slashdot mostly fills Wired's niche now, but sometimes its nice to have something physical, something you can grab hold of. Wired was that mag. No longer. -
Re:distributed game tree anyone?
Solving chess is not feasible, but it might be possible to solve checkers. The computer program Chinook has won the (human) world checkers championship, in large part because of its immense endgame databases -- it has perfect information for all positions with eight or fewer pieces.
The long-term goal of the Chinook project is to solve checkers. I don't know if this would be a suitable project for distributed.net, but a complete solution to checkers would be very exciting.
Chinook's web site is http://www.cs.ualberta.ca/~chinook.