I have been a teaching assistant (with teaching assignment) for 7 computer science classes over the last few years, so I am intimately familiar with the intro course scene. In fact, what you say about 7 years ago vs today is totally true: students arrive with less programming experience (but usually a strong background in something like math). This is all the more reason to be patient in the intro courses, because for many people programming is totally new. (And while programming is an important skill for computer science, one can also be a computer scientist without doing much programming at all. It's not as if being a mediocre programmer damns you to fail the rest of your upper-level classes, where you hardly touch computers!)
I can tell you that many people you would apparently have given up on have gone on to become really good. Maybe this depends on the quality of the students, but it's definitely true at my school.
Personally, I think the problem that makes designing "on-screen" fonts so hard is that the truetype standard doesn't support (well) using bitmaps for small point sizes. It really would be easy, like a weekend's work, to do bitmaps by hand for a font at a few small point sizes. What makes it difficult is trying to fake the same thing using hinting. (Of course, designing the font for large sizes is no cakewalk, anyway, but I do think the difficulty of hinting lies in the fact that hinting wasn't really a good idea to begin with.)
By the way, in the United States at least it's not possible to copyright a typeface, so it wouldn't be infringement to copy the MS version.
First of all, it's not clear that these are necessarily computer science majors. Many majors in my school, for instance, require their students to take the intro CS courses but nothing further.
Second, you should probably learn some patience -- though this stuff may seem easy to you and me, just because someone doesn't "get it" immediately doesn't mean that they won't, eventually, and go on to be successful. I'm reminded of one of the hardest classes I've ever taken, an undergraduate course on functional programming and advanced programming techniques... I hated that class at the time, but now I do that kind of thing for my research, and it's totally comfortable for me. Sometimes it's just a matter of getting over that hump, and sometimes the inability to do that may be more a problem with the teaching method than the student.
All I know is that digital cable sucks crap. That damn menu is so slow I feel like I'm using my TRS-80. I want a big loud noise burst and instant response when I change channels to get away from commercials!
I had the same reaction, so I checked it out. Apparently 128-bit internal processing is useful when doing many stages of texturing and effects, because while 8 bits per color is typically fine for humans, some of that resolution is invariably lost during processing.
However, there's NO REASON I can tell why you'd actually want to grab 128-bit color rendered frames! They could be dithered to 24 or 32 bit without losing anything visible.
Making really nice fonts is tough (even after making 65, I still don't really have the patience to make ones that are appropriate for large bodies of text!). But there's no reason why we shouldn't have more people making fonts. Check out my tutorial,
> being able to play as a team, talk with the people next to you -- it's just a whole > different aspect than playing online. For me, it's just more fun to put a face with the > name of the person you're playing with.
And before the advent of the internet, we had sports.
Yes, User Friendly is the /worst/!
on
User Friendly 1.0
·
· Score: 2
I don't like most of the geek comics you list, I think because I feel like their brand of humor consists of merely mentioning things that geeks get excited about, like final fantasy and anime and japanese ^_^ smiley faces. Basically, I feel like these comics are underinspired comics that happen to be "geek" comics, but somehow that passes. (For the record, mixing in robots and indie rock does it for me with Diesel Sweeties, so I'm just as guilty...) But I'll definitely agree that User Friendly is the most tepid of them all; it just takes the most tired cheap-shots at Microsoft, or AOL, or people who don't know how to use computers, and the clip art isn't even fun to look at.
I've taken up watching TV while I do exercises on the couch and floor. Good couch exercises include situps and crunches; there are a ton of good floor exercises like push-ups of various sorts, weight-lifting, squats, etc. I don't know about you, but I get mesmerised by the TV no matter what's on, so it makes the exercise a lot less boring.
By the way, the best TV show to watch while doing exercise (I think) is the anime classic "Dragon Ball Z". This show, if you haven't seen it, essentially consists of 30 minutes of straining in preparation for unleashing a gigantic fireball, or getting hit by a fireball, or struggling to get up after being hit by a fireball. When I see each of the characters reach the next ultimate power level, it really helps me do those extra 50 sit-ups.
Well, that article is about a single processor, not dual-processor machine.
(Not to mention the fact that when Apple quotes gigaflop figures they are talking about all-in-registers zero-pipeline-stall vectorized operation, not actually doing anything useful -- like reading from memory.)
Here's what I want in a meal. If I'm like other geeks, and I think I am, they'll be interested too:
- Easy to prepare in bulk, hard to screw up
- Made from cheap ingredients I can purchase in bulk and that keep more-or-less indefinitely
- Leftovers are robust and reheatable in the microwave
- Healthy and tasty
My best recipe so far is two gallons of chili made in a big slow-cooker. Do you have any other suggestions?
#1. For your first semester, meet as many people and get involved in as many social activities as possible. The people you meet your first year will be the core of your friends for your 4 years, typically. Ignore your classes except to pass them, they'll be intro stuff mostly. Never turn down any social activity!
#2. If you think you're pretty smart, consider getting a double degree or double major. It's not too hard if you start early, though it may cost you the ability to take fun classes to fill your breadth requirements. But start early if this is what you want.
#3. Don't take any shit. College is not really any different from high school, except your teachers are smarter. (And so you deserve to take even less shit than you did in high school.)
If it's an IP/port combination, that gives them 64k different keys per IP address. It's easy to procure a class C or B IP range for a small amount, and 64k*64k is several billion keys...
Any solution that talks about a "database" is probably trouble, because setting up a "database" requires some sort of trusted centralized server, or if done peer-to-peer, is subject to the same sorts of problems that the peer-to-peer systems already face. (ie, what about the RIAA computers that inject their own hashes into the system?)
One basic problem with relying on hashing for the identification of files is that a malicious user can still send you a file, telling you it has the right hash, and you won't be able to check until you receive the whole thing. (Or you won't be able to check at all if you download only part of the file from them!)
> Making a valid OpenPGP key is a computationally intensive task, suggesting that few people > would make thousands of them on the possibility they would be blacklisted. They also don't > require any form of real identification, making them effectively anonymous. Also gaining a > good trust metric would be an incentive to keep the same key, especially if downloading > was restricted based on your trustability.
I did a project that concentrated essentially on what you say here -- making key (identity) generation difficult. It's easy to make RSA keys (for instance) quickly if you don't care about security (and also difficult to independently verify that the key is "valid"), but I give a way to provide a token along with the key that's independently verifiable and difficult to create. This token can also "grow" in strength over time. Check out the paper here:
http://www-2.cs.cmu.edu/~tom7/papers/peer.pdf
We don't talk much about creating a "web of trust" kind of thing, but do talk about "cold hard evidence" of cheating. The next step is to see what other kinds of misbehavior can be audited (and how someone can provide proof of infraction), for instance, sending out too many flood messages onto the network.
Try O'Caml (caml.inria.fr); it's a modern language that's compiled very efficiently (independent benchmarks) and is suitable for heavy crunching. O'Caml has lots of features that you won't find in many languages, like algebraic data types, higher order functions, etc., but is intended for real general purpose programming. Most importantly, it's type-safe (statically) so you probably won't spend as much time tracking down bugs unrelated to the problem at hand. (That has certainly been my experience with SML, a language from the same family.)
When we talk about the speed of an algorithm operating on a number, we talk about the *size of the input*, not the magnitude of the number itself. So, when they say polynomial here they mean polynomial in the size of the input (log of the number), just as when I say linear I mean linear in the size of the input (log of the number).
Man, and all this time I was trying to turn lead into gold...
I have been a teaching assistant (with teaching assignment) for 7 computer science classes over the last few years, so I am intimately familiar with the intro course scene. In fact, what you say about 7 years ago vs today is totally true: students arrive with less programming experience (but usually a strong background in something like math). This is all the more reason to be patient in the intro courses, because for many people programming is totally new. (And while programming is an important skill for computer science, one can also be a computer scientist without doing much programming at all. It's not as if being a mediocre programmer damns you to fail the rest of your upper-level classes, where you hardly touch computers!)
I can tell you that many people you would apparently have given up on have gone on to become really good. Maybe this depends on the quality of the students, but it's definitely true at my school.
Personally, I think the problem that makes designing "on-screen" fonts so hard is that the truetype standard doesn't support (well) using bitmaps for small point sizes. It really would be easy, like a weekend's work, to do bitmaps by hand for a font at a few small point sizes. What makes it difficult is trying to fake the same thing using hinting. (Of course, designing the font for large sizes is no cakewalk, anyway, but I do think the difficulty of hinting lies in the fact that hinting wasn't really a good idea to begin with.)
By the way, in the United States at least it's not possible to copyright a typeface, so it wouldn't be infringement to copy the MS version.
First of all, it's not clear that these are necessarily computer science majors. Many majors in my school, for instance, require their students to take the intro CS courses but nothing further.
Second, you should probably learn some patience -- though this stuff may seem easy to you and me, just because someone doesn't "get it" immediately doesn't mean that they won't, eventually, and go on to be successful. I'm reminded of one of the hardest classes I've ever taken, an undergraduate course on functional programming and advanced programming techniques... I hated that class at the time, but now I do that kind of thing for my research, and it's totally comfortable for me. Sometimes it's just a matter of getting over that hump, and sometimes the inability to do that may be more a problem with the teaching method than the student.
All I know is that digital cable sucks crap. That damn menu is so slow I feel like I'm using my TRS-80. I want a big loud noise burst and instant response when I change channels to get away from commercials!
I had the same reaction, so I checked it out. Apparently 128-bit internal processing is useful when doing many stages of texturing and effects, because while 8 bits per color is typically fine for humans, some of that resolution is invariably lost during processing.
However, there's NO REASON I can tell why you'd actually want to grab 128-bit color rendered frames! They could be dithered to 24 or 32 bit without losing anything visible.
http://www.andrew.cmu.edu/~twm/makefont/
> being able to play as a team, talk with the people next to you -- it's just a whole
> different aspect than playing online. For me, it's just more fun to put a face with the
> name of the person you're playing with.
And before the advent of the internet, we had sports.
I don't like most of the geek comics you list, I think because I feel like their brand of humor consists of merely mentioning things that geeks get excited about, like final fantasy and anime and japanese ^_^ smiley faces. Basically, I feel like these comics are underinspired comics that happen to be "geek" comics, but somehow that passes. (For the record, mixing in robots and indie rock does it for me with Diesel Sweeties, so I'm just as guilty...) But I'll definitely agree that User Friendly is the most tepid of them all; it just takes the most tired cheap-shots at Microsoft, or AOL, or people who don't know how to use computers, and the clip art isn't even fun to look at.
I've taken up watching TV while I do exercises on the couch and floor. Good couch exercises include situps and crunches; there are a ton of good floor exercises like push-ups of various sorts, weight-lifting, squats, etc. I don't know about you, but I get mesmerised by the TV no matter what's on, so it makes the exercise a lot less boring.
By the way, the best TV show to watch while doing exercise (I think) is the anime classic "Dragon Ball Z". This show, if you haven't seen it, essentially consists of 30 minutes of straining in preparation for unleashing a gigantic fireball, or getting hit by a fireball, or struggling to get up after being hit by a fireball. When I see each of the characters reach the next ultimate power level, it really helps me do those extra 50 sit-ups.
I really hope they *do* barcode every atom in the universe.
By the way, the number of atoms in the universe is estimated to be around 10^80, not 10^20. That's a biiiig difference!
Well, that article is about a single processor, not dual-processor machine.
(Not to mention the fact that when Apple quotes gigaflop figures they are talking about all-in-registers zero-pipeline-stall vectorized operation, not actually doing anything useful -- like reading from memory.)
Nah, if you rinse beans well they don't upset your stomach. (Well, mine at least!)
I think Ayn Rand would disagree .
Here's what I want in a meal. If I'm like other geeks, and I think I am, they'll be interested too:
- Easy to prepare in bulk, hard to screw up
- Made from cheap ingredients I can purchase in bulk and that keep more-or-less indefinitely
- Leftovers are robust and reheatable in the microwave
- Healthy and tasty
My best recipe so far is two gallons of chili made in a big slow-cooker. Do you have any other suggestions?
Uh, except the new technologies are not yet available, but there are millions of DVD drives and set-top players already deployed...
#1. For your first semester, meet as many people and get involved in as many social activities as possible. The people you meet your first year will be the core of your friends for your 4 years, typically. Ignore your classes except to pass them, they'll be intro stuff mostly. Never turn down any social activity!
#2. If you think you're pretty smart, consider getting a double degree or double major. It's not too hard if you start early, though it may cost you the ability to take fun classes to fill your breadth requirements. But start early if this is what you want.
#3. Don't take any shit. College is not really any different from high school, except your teachers are smarter. (And so you deserve to take even less shit than you did in high school.)
That's it. Enjoy!
If it's an IP/port combination, that gives them 64k different keys per IP address. It's easy to procure a class C or B IP range for a small amount, and 64k*64k is several billion keys...
> Digital signatures could be used to establish who your friends are regardless of their
> changing IP addresses.
And what's to prevent the RIAA from generating a zillion keys and flooding the network with crap?
Any solution that talks about a "database" is probably trouble, because setting up a "database" requires some sort of trusted centralized server, or if done peer-to-peer, is subject to the same sorts of problems that the peer-to-peer systems already face. (ie, what about the RIAA computers that inject their own hashes into the system?)
One basic problem with relying on hashing for the identification of files is that a malicious user can still send you a file, telling you it has the right hash, and you won't be able to check until you receive the whole thing. (Or you won't be able to check at all if you download only part of the file from them!)
> Making a valid OpenPGP key is a computationally intensive task, suggesting that few people
> would make thousands of them on the possibility they would be blacklisted. They also don't
> require any form of real identification, making them effectively anonymous. Also gaining a
> good trust metric would be an incentive to keep the same key, especially if downloading
> was restricted based on your trustability.
I did a project that concentrated essentially on what you say here -- making key (identity) generation difficult. It's easy to make RSA keys (for instance) quickly if you don't care about security (and also difficult to independently verify that the key is "valid"), but I give a way to provide a token along with the key that's independently verifiable and difficult to create. This token can also "grow" in strength over time. Check out the paper here:
http://www-2.cs.cmu.edu/~tom7/papers/peer.pdf
We don't talk much about creating a "web of trust" kind of thing, but do talk about "cold hard evidence" of cheating. The next step is to see what other kinds of misbehavior can be audited (and how someone can provide proof of infraction), for instance, sending out too many flood messages onto the network.
Maybe it was a $3.3 billion accounting error in the opposite direction, cancelling out their earlier mistake?
Try O'Caml (caml.inria.fr); it's a modern language that's compiled very efficiently (independent benchmarks) and is suitable for heavy crunching. O'Caml has lots of features that you won't find in many languages, like algebraic data types, higher order functions, etc., but is intended for real general purpose programming. Most importantly, it's type-safe (statically) so you probably won't spend as much time tracking down bugs unrelated to the problem at hand. (That has certainly been my experience with SML, a language from the same family.)
When we talk about the speed of an algorithm operating on a number, we talk about the *size of the input*, not the magnitude of the number itself. So, when they say polynomial here they mean polynomial in the size of the input (log of the number), just as when I say linear I mean linear in the size of the input (log of the number).
> Probabilistic primality testing can be done in constant time with bounded error.
You don't really mean constant time. Just looking at the number is already linear time!
Miller-Rabin is also polynomial time (admittedly, a much better polynomial than this).