Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
User Journal

Journal Journal: Great Sigs

I've been collecting some sigs now for a while...whenever I run across one that's particularly funny, I jot it down. What better place to post the fruits of this labor than where I picked up most of 'em? So, without further ado...

Initiative comes to thems that wait.

Anticipation comes to those who wait.

If I seem shortsighted, it is only because I stand on the shoulders of midgets.

My theory of evolution is that Darwin was adopted. --Steven Wright

Sedulously eschew unmitigated hyperverbosity, obfuscatory redundancy, and munificent prolixity.

My English teacher once told me that two positives don't make a negative. Yeah, right.

What part of "You don't understand anything" don't you understand?

Occam's Razor explained: you find a pinecone lying on the ground under a pine tree. (1) It fell off of the pine tree. (2) It was planted there by invisible space aliens in conjunction with the Illuminati acting in strict accordance with the Masonic doctrine of the Coming of the Pine Cone King. Choose (1).

"You can't see the forest for the trees." "Exactly! So what say we get to work moving some of them trees!?"

You are free to do as I tell you.

telepathetic - being such a loser that it can be spotted from a mile away.

Dyslexics of the world: UNTIE!

Anarchy: it's not the law, it's just a good idea.

We are sorry, you have reached an imaginary number. Please rotate your phone ninety degrees and try again.

Kill two birds with one stone: feed the homeless to the hungry.

If you were everyone but one person I would listen to everyone else.

Take thee this thing covered with that stuff and give it unto that guy, that he may do things with it.

The time to panic is not the time to panic.

Error Downloading the Internet: Insufficient space on drive C: for the Internet. Insert disk in drive A:.

I'm not interested in getting into semantic discussions about how many angels can dance on a head of split hair. When I say something, I mean exactly what you think I mean. Pedantry city is ---> that way.

Religious authorities work hard to make and keep people feeling sinful, unworthy...and unhappy.

"Faith" means not wanting to know what is true. --Nietzsche

For every complex problem, there is a solution that is simple, neat, and wrong.

In theory there is no difference between theory and practice, but in practice, there is. - Jan L.A. van de Snepscheut

A bus station is where a bus stops. A train station is where a train stops. On my desk I have a workstation...

Under capitalism man exploits man. Under communism it's the other way around.

There are 10 types of people in the world - those that understand binary, and those that don't.

"Why should I go on living in this unjust, inhumane, technology dependent world where one marginally sane person can't even delude himself enough to believe that one person can make a difference as nameless, faceless forces seem to conspire against my every hope and dream, leaving me spiritually ravaged and consigned to work at the drive-in window at Wendy's? Also, are Cheetos really made with real cheese?" -- actual question submitted to Cecil Adams, of The Straight Dope

ASCII stupid question, get a stupid ANSI.

I'd give my right arm to be ambidextrous.

There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order.

To understand recursion, one must first understand recursion.

vi VS emacs arguments are pointless and a waste of time. vi is the best.

Down with self-referential sigs! Use sigs like this one instead.

wit.soul = brevity;

Information wants to be anthropomorphized.

Every once in a while I like to masturbate a new word into the conversation, even if I don't know what it means.

User Journal

Journal Journal: Unnecessary Complications in Fundamental Abstractions

Imagine a bicycle. How many dimensions does it have? Surely, it's a 3D object, right? Ok, ok, 4D if you count time. That means it's comprised of particles that each have three degrees of freedom (orthogonal possible motions), x, y, and z.

But wait. Is that really true? A particle in Euclidean three-space only has three degrees of freedom? What if it's not symmetric about its center point (a bicycle-shaped fundamental particle, for instance)? This kind of particle has FIVE degrees of freedom, I'm counting. It has x, y, and z, but it also has two rotations, without which its exact position in 3D space cannot be specified. (Or am I wrong, is it three rotations? I played with a cube for a few seconds and convinced myself that only two are required to achieve any orientation--did I get this right?)

To be a bit more formal about it, let's construct the 3D bicycle-particle space, in which each and every point, the ordered set of numbers (x, y, z, theta, phi) represents the position of a bicycle-particle. The first three numbers in this ordered sequence specify the point in three-space that is equally far from every point making up the particle on the average. The second two represent the rotation about this point of the particle in the x-y plane, and then the x-z.

That's if we're talking about a fundamental particle that doesn't have any spatial symmetries (you're thinking if you split a bike down the middle, it's left side and right side are symmetrical--you're wrong though--the pedals are not, and the chain and gearwheels are necessarily only on one side, so a bike has no spatial symmetries).

This leads me to wonder...how do we know that, for example, quarks aren't like this? Why do we think of them as spheres, which are symmetrical in every direction, and then assign them all these weird properties like charm or strangeness or color? What if they're just like bikes, and these weird properties are nothing more than a degree of freedom in theta and phi (remember, quantum particles can't choose from a continuous spectrum in their degrees of freedom, they can only choose discrete states). What if color and strangeness and all of that is simply the discrete states of rotation in phi and theta? Why make this more abstract and complicated than it needs to be if one model is as good as the next?

I figure I must be wrong. I figure that someone, somewhere must have already thought of this and will have a good enough understanding to explain it to a layperson such as myself. I'm somewhat less confident they'll run across my journal entry here and actually do so.

Back to the bicycle (the big one, not a bicycle-shaped particle). If we assume it's made up of spherical particles that are exactly the same regardless of how they're oriented, then a macroscopic bicycle is indeed a 3D object (forget time already...jeez!). Every particle has three degrees of freedom, therefore the bike's position can be fully specified by a long set of three coordinates, one set for each atom, or electron, or quark, or whatever, in the bike.

Hang on a second, though...we know we're talking about a bicycle here. Let me ask: if we know it's a bike, then we know these sets of points we've listed must be confined to some kind of structure. Using the above technique, we can fully specify the position of ANYTHING in three-space. Which is great, if we're dealing with everything...but we're talking about bikes here, and we don't want sets of points that represent other things...only bikes are allowed in our space.

If that's true, then we know that we don't have to specify each and every point in the frame. We can specify one point relative to the bike (including rotations) instead of each and every particle making up the bike. That's a heck of a lot less writing...but it's inadequate. The previous way, with the long list of points, we could specify a bicycle in any position. Now we have some assumptions built in, over and above the fact that it's a bike. We have to assume that all bikes have their handlebars oriented relative to the frame in the same way. We can't have a bike with the handlebars turning to the left represented in our space. Similarly, we have to assume the pedals are in a particular position relative to the frame, the wheels too. Anything else that moves on a bike in some way independent of the frame.

Or...we could simply add more numbers to our ordered set. We specify the point that is on average equidistant from each particle making up the bike using x, y, z, theta, and phi. Then we specify the angle of the handlebars using psi1, the front wheel psi2, and the rear psi3. Similarly, any other variables we wish to introduce can be added to the ordered set so that any bike can be fully represented in our space such that no part of its position is left unspecified. Still a heck of a lot less writing than moles of ordered triples!

The number of elements making up this ordered tuple could be considered the dimensionality of the bike. We could record the position of the bike completely by recording each of these as independent variables against time, and there would be no information missing over the entire duration of the ride about the position of the bike, while we've freely allowed the rider to make do anything during the ride a bike can do. The bike is a so-called "free particle" in this space. It is only constrained by the fact that it is a bike, that the handlebars and fork interact with the frame in an assumed way, that the wheels interact with the fork and frame in an assumed way--these aspects are fixed because the sets of particles making up a wheel always relate to the rest of the structure in a way that makes the bike a bike. These constraints give the bike its structure, its "bikeness".

But in order to do away with tracking each particle of the bike independently, we've launched ourselves into a multi-dimensional space. Now the rotation of the handlebars, the front wheel, and the rear wheel are all orthogonal directions in addition to the position and orientation of the frame (5 more dimensions, the original x, y, z, theta, and phi). In exchange, we've fully specified, by defining this space, what it means to be a "bicycle"...which conglomerations of particles qualify as bikes and which do not. And more importantly, we've done so without using redundancy--each number in that ordered tuple is absolutely required so that no aspect of bikeness is left unspecified for any "point" (or bike) in the space.

I recently had the idea that coding is sort of like building spaces. Just as I describe the space containing all possible bicycles above, coding the interface of an object specifies an n-dimensional space. Actually, I think it might even define two spaces--the n-dimensional space of problems and the p-dimensional space of solutions...and more yet: a mapping between them.

Take a simple function in Java: double add(double x, double y) { return x + y; }. This method takes x and y, adds them together, and returns the result. The parameters form the problem space--x and y are free to vary independently, and form an ordered pair in that 2D space. The solution space is 1D, the value that is returned. add() is a simple case, it might be a class with several methods specified that creates a very complicated problem space. One thing that's neat about object-oriented programming is that it allows the programmer to let the class itself define an object which represents the point in the solution space, rather than having to return the result immediately like add() does, an object can accumulate state over many the many dimensions of that particular solution space.

This is just a fledgling idea in my mind, so I won't continue here at length, but suffice it to say that I already see problems. For example, in the add() function above...x and y do not quite describe the problem domain accurately if you assume they represent a 2D free particle...they don't; they represent a constrained particle. Imagine if x were the maximum value allowed in a double, and so was y. There is no mapping into the solution space becaues the returned double would overflow. In fact, if one of these variables is at a maximum allowed by double, then any positive, non-zero value in the other is not allowed, so the constraint is quite significant. We could reformulate the method so that x and y are floats, and therefore the solution space provides a mapping for every possible point in the problem domain, but this shrinks the size of the problem domain our function can address considerably beyond what need be. In many cases, it'd be better just to acknowledge that the 2D point in the problem domain must be constrained.

I feel that this idea is somehow valuable and can be developed into a sensible means of specifying APIs that are complete and consistent, yet provides a mapping over the maximum region of the problem space. Imagine representing a bicycle in code, for example. Interfaces might specify a frame and a handlebar-fork assembly, and a Bike object could mandate how these different interfaces interoperate to form a bicycle. This way of thinking could allow me to formulate interfaces much more concisely than I currently do, leaving much more extensibility.

One quick example...most mountain bikes nowadays have suspended front ends, meaning a shock system built into the fork. Clearly, this adds one more degree of freedom to a bicycle...you can't fully specify a bike's position if it has one of these forks without a number representing the compression of that front shock assembly. So, should the interface representing the fork specify this?

No. If that interface is used by the Bicycle object to coordinate how it plays with the frame, then it's totally irrelevant whether it is a suspension fork or not. The Bicycle object that mandates how these components work and play together couldn't care less--when the handlebar-fork assembly turns relative to the frame, nothing different happens from the Bicycle class' standpoint whether it's a suspended fork or not. Then again, maybe I need to do a bit more thinking on this, because the bike as a whole will respond differently over rough terrain (otherwise, what's the point of the suspended front end anyway?).

Hmmmm...

User Journal

Journal Journal: Visualize the Fourth Dimension

Hey all,

I've been busy working lately for an anti-spam company (I'm fighting for the good guys!), so it's been a while since I posted. I've been reading some maths books lately and I thought I'd post an interesting insight I had lately.

Ever thought about the fourth dimension? Not time, I'm talking the fourth spatial dimension. Well, I assume so cuz you're reading slashdot. Ever thought about how to visualize the fourth dimension? I have...unsuccessfully for the most part. But no more. I now have access to the color axis. What is the color axis? Let me 'splain.

Two objects cannot share the same space at the same time, more specifically no point in space may be occupied by more than one object at a time (quantum mechanics not withstanding). Let's restrict the experimental space to a plane for easy visualization. If you take two coins and lay them on the table, you cannot push them into each other such that they occupy the same part of the table surface. How do you know that this is what you're attempting to do? Easy, you can map out the boundaries of these coins in the x-y plane.

Now let's bring the third dimension into it, but not completely. By this I mean, let's assume that your perception is limited to the table surface, and you're trying to contemplate the third dimension even though you're not capable of perceiving a direction that's perpendicular to the two with which you're already familiar. This is where the color axis comes into play. Let's allow you to move the coins into the third dimension if you like, and establish the following convention: the more below the table, the more blue the object, the more above, the more red the object. Let's position the plane at the far end of this spectrum at the blue end (just for fun--you don't have to if you have need to move things down below the plane).

So you're looking at two blue coins. You push one along the color axis in the red direction, and it gets purple. If you keep pushing, it'll get red, but you don't need to go too far, just enough to get it up off the table. At this point, you push the coins into each other and you're surprised to see that they pass seemingly through each other. But, upon reflection, you realize that in three-space, they're not in the same space--they're in different planes because one is red and one is blue.

Neat, huh? Now imagine a knotted rope in three dimensions, with a simple granny knot. To undo this knot, given a fourth spatial dimension, you do not need to pull it apart the normal way. You can simply grab an overpass (that's the part of the rope that goes the underpass, the other part of the rope that forms the knot), pull it into the fourth dimension until it grows red (the rest of the rope is blue). At this point, you simply pass it through the underpass--they're not in the same space because they're different colors, remember? Then, once you've got it underneath the underpass, you pull it back along the fourth dimension until it's blue again like the rest of the rope. Ta-da. Knot undone.

That's neat-o. How come in high school when I was in all those advanced math classes looking at 386 programs simulating a rotating hypercube, no one ever thought of using color when you run out of dimensions? Even on a 2D monitor surface, this could make things a lot clearer.

How do you make a line? You drag a point along a path, leaving a trail to its original spot. A square? Drag that line perpendicular to its length, the same distance as its length and it sweeps out a square. A cube? Grab the square and drag it perpendicular to the plane of the square, sweeping out a cube. A hypercube?

Drag the (blue) cube, the length of one of its sides, along the fourth axis, sweeping out a hypercube. Two cubes, one red, one blue, connected by edges that go from blue to purple to red. Leaves me wondering what a hypersphere looks like...

User Journal

Journal Journal: Public Vs. Private Education 1

Below is a post I coopted from another discussion board to which I post. This post is a response to a user "Magnum", whose point was that private schools work better than public schools in America, and this should be fixed. I got the sense from his post that he was for fixing public schools, but one of the ideas he presented in his post was that the public school system cannot accomplish this with a simple patch here and there; his position was that something more fundamental needed fixing. I seized on this idea to make a point that I've long felt about this issue.

(I've altered my post slightly in the transfer to improve my argument.)

_______________________

Magnum makes an interesting point in his post...private schools are not simply better than public--they are systemically better. In other words, the conditions in which they exist require that they be better in order to survive. There is no such push towards excellence in the public schooling system. In fact, it's the opposite. The public school system fosters an environment where the teacher's union garners a lot of power, and the teacher's union is to blame for much of what is wrong with public education.

Here is one such idiosyncracy of the current public schooling system. School disctricts are divided into two categories: districts that run K-12 or K-8, and districts that only run 9-12 (high school). High school teachers generally want to teach in high school districts, districts of the second category. These districts have more aggressive pay increase schedules, and reward higher education with significantly more money. Advanced degrees in districts of the first category garner less of a wage increase (who cares if a 1st grade teacher has a PhD or a Bachelors--at that level, many BA's will be better suited to the job anyway). The teacher's unions have lobbied hard for this system because it is a group that is literally ruled by committee--the teachers themselves--and that's the best compromise they could come to for those districts.

You guessed it...poorer communities cannot generally support a separate high school district, and that's often why they are not able to attract good high school teachers. They're enslaved by a system of teacher compensation that won't allow it.

I've often heard supporters of the public education system say that teachers ought to get a small percentage of each of their students' salaries. (This happens to some degree via taxation, but by the time the funds have worked through so many levels of government there is no direct relationship.) If you believe this, you might want to consider that private institutions function exactly in this way, except on a slightly higher level of granularity. Like universities, these schools accept donations from satisfied parents and alumni (and if you don't think that teachers who engender such donations get rewarded, you are mistaken).

I don't think we can fix our public education system and make it fair, because it is the system itself that is flawed. People worry that moving to a fully privatized system of education is a mistake because only rich people will be able to afford it. The truth is, there is no environment for less expensive private schools, but if we did away with public schooling, there would be and they would spring up to fill the void. Does anyone really think that public education is costing the average family less, going through all those levels of government inefficiency and anti-competitive unions and the like, than if they were to just pay a private school directly?

Even so, I understand the poorest of the poor would still not be able to afford any private school, no matter how cheap. My solution to this would simply be to tax private schools like any other business, and reinject those taxes back into the system in the form of scholarships for low-income families. Needless to say, these taxes should be targeted--they should most definitely not go into the general tax coffers so politicians can debate how much of it they want to release for these scholarships, how much overhead should be extracted from these dollars, etc. People need transparency and visibility on this, and a 100% funding from this targeted taxation could easily be administered for no extra bean counting costs.

Another source of funds for these scholarships: the income-education taxes that every citizen now pays would be recognized separately, and families with children under 18 or in school (college included) would be rebated for this amount. This leaves every person with no children paying into the system what they currently pay into it. This seems fair and square to me--it increases no one's taxes, more importantly no one's overall costs of education (in fact it would likely drop them), people with children get help for putting them through school, and people without children pay a fair amount for getting to live in an educated society.

In this alternate world, there is reason to think that local communities would become far more involved in their education systems. Even now, when people's hands are tied by government and the only real way they can contribute is by voting to increase local taxes, that's exactly what they do. Indeed, this is the only kind of tax increase that's regularly been passed by popular vote, so don't make the mistake of thinking that people don't care. This is perhaps the one issue that people care so much about, they'll willingly sacrifice as long as they can see the fruits.

These ideas are not just off-the-cuff...like Magnum, I feel this issue is very important for our country. We should not be underperforming as much as we are with respect to the rest of the world. If there's any lesson we can learn from that alone (and other research that's been done in this area), more money does not necessarily equal better education. We need a system based on promoting personal responsibility in students for their educational careers. We need students to feel as though they have something real at risk if they don't excel, and though that's a little more uncomfortable for everyone, no one ever does anything great when they're comfortable coasting along.

_______________________

User Journal

Journal Journal: Java Certification Exams

Well, I've finally decided to do it. I'm going in for the Java Certification Exams. They're up to five tests at the moment: the Programmer, the Developer, the Web Component, the Business Component, and the Enterprise Architect. I'm planning on doing them in this order: Programmer (have to, it's a prerequisite for all the others), Developer, Business Component, and then maybe I'll do the Web Component and down the road I'll consider the Enterprise Architect, depending. Basically, the tests break down as follows.

The Programmer exam certifies you know the basic Java language. The Developer exams (there are two parts, a programming exercise done at home--no time limit--and an essay to prove you actually wrote the code) prove you can actually use the language and basic J2EE to do something useful. The Web Component exam tests your knowledge of web app front-ends...JSPs and all that. The Business Component exam certifies you know J2EE, and especially EJBs, in depth. Finally, the Enterprise Architect ties it all together and proves you can design an entire system from basic requirements that ties all these technologies together into a cohesive whole.

I'm generally on the path toward doing architecture in my career, but I don't feel any special need to conquer that test in the next year or two timeframe. I can see myself being certified on all the others by 2005, though. This is shaping up to be a year of tests for me, it seems, as I'm also thinking about taking the GRE and Comp Sci subject tests for grad school. Basically just keeping another option open, depending on how this economy recovery continues, I might find myself in grad school in fall 2005--who knows?

In any case, if you've taken any tests mentioned herein and have any helpful suggestions, please feel free to comment and pass on the knowledge.

User Journal

Journal Journal: POST: I Can't Believe This Post Is Not Redundant...

This post was in reply to a story about Stephen Wolfram's book, A New Kind of Science. The main points of the story (and the ensuing /. discussion) seemed to revolve around the fact that much of the book was not new research and the negative reaction of the scientific community to his claims of founding a new way of looking at things.

I was a little surprised to see that no one really addressed the egos of all the players involved in these events (plenty of posts talked about Wolfram's ego, to be sure, but few mentioned that egos played a part in his book's rather cool reception by his peers). Also, no one had broached the fact that he could not publish his work to the general public without rehashing much of what had been done before, so, to me at least, it was expected that much of the content would not be new research.

_______________________

I read through the majority of the 310 comments on this story (310 as of this moment) and I can't believe no one has touched on an important aspect of the scientific community's backlash against Wolfram's book: he end-ran them.

He may be egotistical (I read most of ANKOS and I did not find his constant self-laudation very charming), but so are many people in science and math. In what other fields can one prove beyond a shadow of a doubt the significance of one's own contributions? The Huxleys and Jungs of history could never have felt quite the same tinge of accomplishment as Einstein must have, because literature and psychology have no such measure of the value of an idea. So there is more to scientific self-puffery than just ego, it is a very human thing for humans to fall into this trap when they have managed to make a real, recognizable contribution. (Earlier in this thread, in fact, I saw someone taken to task for Newton's ever-misunderstood "on the shoulders of giants" as a symbol of his--Newton's, that is--humility...which it was not, though arguably so.)

So I think we can all agree, if on nothing else, that Wolfram's ego is definitely not the only ego involved here. Instead of publishing his ideas in the framework of the mathematical and scientific research communities, he chose to publish his findings to the world-at-large. This, in and of itself, can be seen as an immensely egotistical act (one I'm glad of, though, as I'll explain). By doing this, he is essentially saying that his ideas are so great they are likely to be misunderstood (the plaintive cry of many a genius) by his peers and relegated to the back shelf until the community catches up with him. He's confident he's hit on some seed of truth, and he wants to spur the world to cultivate it so he can live to see its fruits...probably so he can hear his praises sung while still living. Not very selfless.

His feeling that his genius is too great to be contained by the research community is felt by every other member of that community, but they lack the means to do anything about it. ANKOS (the book, not the science) is quite enough of an affront to these people for them to bring the full weight of their intellectual wrecking ball to bear on Wolfram's tome. Certainly this is not true across the board, but just as certainly there is at least some venom reserved for him out of animus.

The problem with all this demogoguery that inevitably follows great men around is that the focus very quickly falls upon the men involved instead of the ideas. (One thing we all must admit: Wolfram is a great man. Keep in mind that I'm using "great" in the sense of the gravitas of his ideas. In this same sense Hitler was one of history's terrible greats, as the grand sum of his ideas had enough weight to sweep an entire nation to madness. In fact, in this sense I supposed Hitler was a much greater man than Wolfram; if Hitler's ideas swept a community to madness, Wolfram's ideas only achieved anger. :-) ) So to Wolfram's serious detractors, I hear you with a suspicious ear, while fairness requires that I simply ignore Wolfram's own self-congratulations. If only all such commentary were passionate only toward ideas and dispassionate towards men, it would not take history so long to sift through the idea pile.

We ought to judge people for the most part based on their actions and the results of those actions, not their motivations. Wolfram may have end-run his community out of ego, but I believe the effect in this particular case to be positive. Look at it this way: he has taken the time to introduce these ideas to an entire generation of laypeople. This may present the work in a form that is undesirable to academic researchers, but it certainly does not preclude them from judging those ideas. The upshot is, it's an inclusive strategy that makes the work accessible to everyone. What's bad about that? I've always clung to Asimov's notion that science may be confined to the research lab, but in the realm of ideas everyone has a potential profit and should be given a share.

This is why I am willing to forgive Wolfram whatever shortcomings of this work. Like him or not, like his reasons or not, none of us would be having this discussion right now if he hadn't acted the way he did. I wouldn't know about the many things within his book, not to mention the dovetailer algorithm or Zuse, the products of this discussion; instead I'd probably know the outcome of another episode of My Big Fat Obnoxious Fiance (of course this is hyperbole...seriously, folks, whoever's watching this show, stop it!--and if you're a Nielsen household, well...shame on you, sir). The ideas he introduced may not be his own, as some of his critics charge, but still the ideas have been introduced and I trust that history will sort them under their proper headings.

In my mind, this accounts for the prevalent accusations of plaigerism on Wolfram's part. In the worst case his claim on many of the ideas contained within ANKOS is ambiguous, despite his aggressive implications he never does come right out and say they're his. Wolfram certainly did nothing to help his case in the matter...still, we should be impartial in the offing: for the most part his book "plaigerizes" in much the same way that a scientific paper "plaigerizes" all of the work on which it rests. The difference is, a paper intended for the research community expects each member of the audience to be well-versed in the supporting research and to be helpful in pointing out such mistakes, treating them as inadvertant. Wolfram's audience is not so well-versed and such background must be assimilated into the main body of the work many levels deep; if every scientific paper were under the same requirement, I think such inadvertant mistakes would be far more numerous.

Additionally, I find it quite believable that many of the ideas Wolfram devised on his own were simply already discovered. After all, for more than the last decade he has closed himself off from his peers, and peers are the best resource for this kind of information ("Good idea, Stephen, but Zuse already said this 50 years ago.") So it is very possible that he simply thinks he has contributed some things that were already previously discovered. Again, in regular scientific research, papers often hit on notions that have previously been discovered without citing them out of ignorance of the previous work--this is forgiven because it happens to everyone. Wolfram is getting no such consideration, and I think in at least some cases it is due him.

Overall, I'd say this book is far more beneficial to the layperson than to science in general, but this benefit is enough for me to justify a degree of respect for Wolfram. He is brilliant and he's simply trying to leave a legacy, which his ego no doubt feels is his birthright. This is often the case when the tiny car of ego has an engine of vast intellect powering it. The only difference between Wolfram and every brilliant scientist is this: every scientist wants to be the next Einstein; Wolfram is simply making his grab for the brass ring by unconventional means.

_______________________

User Journal

Journal Journal: POST: Re: an annoying quirk

This post was in response to a question concerning the introduction of generics in the Java 1.5 'Tiger' release. Someone wanted to know why an ArrayList reference with parameterized type Number couldn't refer to an ArrayList that was instantiated with parameterized type Integer. After all, it seems like a perfectly valid thing to do--a list of integers is indeed a list of numbers, is it not?

(By the way, the first line of my post refers to the fact that the post to which I'm responding had tried to type in an angle brackets directly instead of using the escape codes--< and >--so they were stripped out by /. as an unknown tag.)

_______________________

I'm guessing that you dropped some text between angle brackets, and what you meant to say was something along the lines of:

ArrayList<Integer> s = new ArrayList<Integer>();
ArrayList<Number> t = s; // does not compile

It is indeed true that, though s contains only Integers, which are all indeed Numbers as well, you cannot make this assignment. The reason is that, though Integer extends Number, the new types you've created (ArrayList<Integer> and ArrayList<Number>) using the genericized code have no such inheritance relationship with each other that would allow such an assignment.

In generics, when you instantiate a genericized class and specify a type parameter, you're effectively creating a new type. In the example of the ArrayList, an ArrayList<Integer> extends whatever object that ArrayList does, and implements all of its interfaces, but it does not extend ArrayList itself or any type-parameterized variant of ArrayList.

sev

_______________________

To this, I received a reply explaining a slightly different take, which I had considered already (I have taken the liberty of correcting a few misspellings and mistypes in the original):

The reason this can't be allowed is very simply: Look at this:

ArrayList<Integer> s = new ArrayList<Integer>();
ArrayList<Number> t = s; // Does not compile, but assume it would.
t.addElement(new Float(10.5)); // t should ONLY contain integers. Not good.
Integer i= s.elementAt(0); // Class cast exception.

Allowing t=s would ruin the entire "You are sure your collection only can contain what it say it contains, and we check that at compile time"

I replied:

_______________________

Subject: Example Given Is Neither Necessary Nor Sufficient

I too thought of this as a possible means of explaining this situation, but rejected it . The explanation you put forth here does not satisfy because the same argument could be applied to Integer[]s and Number[]s.

Alas, the corresponding array code does indeed compile, and it is well-defined and unambiguous:

Integer[] i = new Integer[3];
Number[] n = i;
n[0] = new Float(1.1);

There's no reason in generics why the compiler couldn't have been designed to similarly accept code if you replace the above arrays with type-parameterized ArrayLists. The same arguments that apply to this array code (in terms of allowing it to compile but rejecting it at runtime) are every bit as valid for parameterized types. Obviously, a different direction is required for generics to work, though, if the whole point is to provide the same capability but fail at compile-time.

sev

_______________________

User Journal

Journal Journal: POST: Why People Don't Like Linux 1

This is the first post I made to the /. community that seemed to generate a decent amount of discussion. I was even told by one respondent:

Sir, you have NAILED IT!!!

IMO your description of your experiences and thoughts on this matter is exactly the sort of material that the developers of the Linux desktop and distro need to see. You need to get a website somewhere, put this up and point people to it - this mini-essay should NOT get lost in the bowels of Slashdot.

What can I say? It's all about the fans... :-)

_______________________

I've talked to several non-linux users about why they don't use it, and I'm not talking about the die-hard MS supporters. I'm talking about people that have tried it at one time or another, ran it for a while, and just gave up on it.

Why did they give up instead of switching over to it as their primary desktop? Answers ranged over several salient (if not because they're real, at least because they're perceived) problems.

Die-hard linux people see variety as a good thing. That's true, and it's not true. Variety always has to be put in context, especially if there's a lot of it. Here's an example that even die-hard linux people can understand (assuming you're not chefs too). Let's say I'm making salsa and I send you to the store to pick up some heat. You don't know the first thing about peppers, and it just so happens I live next to a produce mart the likes of which you've never seen before. To choose from are: jalapenos, habaneros, anaheim, chipotle, ancho, pablano, thai, serrano, scotch bonnet, etc. What are you likely to do? That's right--grab the jalapenos, cuz that's what you've heard of before, even though they're probably not the best solution. Some die-hard linux people would argue, hey, if your goal is to help your buddy out, you'll head over to your favorite bookstore and read up, and then head back to the produce mart armed with this newfound knowledge. To these people I say, you are truly a die-hard fan of linux if you didn't get this point.

This is the pressure novices feel at every turn with linux, not just from what OS to install, but what is the install process? (Depends on the distro you've chosen.) How do I install an application? (Ibid.) Which application do I install if I want, say, an email client? (Good luck wading through all of the available options.) Why is it that everytime I head over to my buddy's house, he always knows about all this crap that I've never heard of, and he's got this smokin' setup that I wouldn't have the first clue how to begin assembling? How does one even keep up with all the choice that's available?

All frustrations that don't happen with Windows. You only rarely head over to a buddy's and see him running Mozilla instead of IE and think, hmm, I'd like that and didn't know about it. 99% of the time, you're both running the same media player, picture editor, etc, and if you're not, there's only a small handful of well-known choices to choose from.

The next barrier to installing/using linux on a long-term basis with these folks is what I call the "annoyance/showstopper" problem. Eventually, usually sooner than later, these people run into something that's either really annoying (they can't get X to run at a desired resolution, for example), or a really serious problem that impedes their ability to move forward (they can't connect to the web). They also don't really know where to look for help, or even how to find out where they should start. I myself ran into a problem years ago with RedHat, I simply wanted to upgrade the asteroids game, but the web of library dependencies that had to also be updated made it hardly worthwhile. Eventually, I rolled up my sleeves and got to work--I finally got to the end of a long dependency chain and discovered that, no matter what I did to upgrade this particular library, it wouldn't go in because it was replacing a basic graphics library that is used by virtual terminals. Because it was always in use, it couldn't be replaced, even in single-user mode. So I know this frustration well...even I was asking, how great can this OS be if a simple game can't easily be upgraded, and then it turns out when you finally commit yourself to an afternoon of hunting, it simply can't be upgraded at all? The bigger issue here for most users is, why should I have to know about library dependencies to upgrade a game, why are virtual terminals relevant to the problem I'm having, and what is a virtual terminal anyway? (The point is, whatever it is, it's totally unrelated to what I was trying to do, and most people find this incomprehensible.)

This has been fixed now with apt-get (and a subsequent RedHat bug fix), but these kinds of problems still abound. Furthermore, when graphical tools are introduced to aid the management of driver installs, program updates, etc, they just show up with no explanation when you install a new distro from the ground up, or if you're still using an old distro, you don't ever see it unless you put it on yourself.

I've also heard users express what I like to call the "critical mass" problem. The thinking goes, in Windows, you learn about directory structures, a few commands to navigate around, a few basic apps for looking at files, opening programs, etc...at some point you hit a critical mass of knowledge where you just innately know how to move around and navigate new programs. With linux, an equal investment of time does not suddenly cause a "click". I myself have been using linux and various desktops for years, and I have to say I agree. Of course this has a lot to do with the history behind linux and linux apps, but for an illustration of the point, just think about vi vs. emacs. It's possible to attain master level at either one of these, and still know absolutely nothing about the other. On the other hand, in Windows, you play with just a few programs, and that gives you at least the ability to play around with other programs with a semblance of confidence.

You're saying, hey, RTFM. But I think the linux culture of RTFM-type responses is part of what these users are objecting to. They don't want to RTFM. They feel that the product should be well-designed enough that most of what they want to accomplish should be apparent without having to read any doc. They're right.

A quick thought experiment. How many linux users, even experts, can install an app they've never seen before (only know the basics of what it's for) in linux and start using it productively inside a few minutes without ever cracking any documentation? I know I do this in Windows all the time...I don't claim to be a linux expert, but then again, after a decade of regular (though not intense) use, I think it is reasonable to have that expectation.

That example may not have resonated for some of you. Ok, then, think about a piano. Anyone, even a child, can figure out the piano if given a chance to hit a couple of keys. That's Windows. They hand you the keys and you hit a couple and soon you're banging out simple tunes. Linux is more like, you're presented a vast array of piano concertos and told to figure out how to use a piano based on listening to and watching these performances. Assuming you've never seen a piano before, you might first look at the orchestra and say, ok...but which instrument IS the piano, then? To which the other person says, RTFM, and hands you a dictionary. To start with, though, all this person wants to do is play Mary Had a Little Lamb.

Don't get me wrong, people. I like linux and what it stands for. I think that someday, it will take over the desktop. But not before it becomes more usable from bow to stern than Windows. The die-hard linux people need to wake up here, because they're in the best position to solve this problem...there are a LOT of places where linux is worse than Windows, and hiding behind the philosophy of choice or the culture of RTFM only ultimately hurts the platform.

sev

_______________________

User Journal

Journal Journal: Stay Tuned for Interesting Tidbits

Hey all,

I've decided to keep the most interesting bits of my /. contributions alive in my journal, mostly for lack of a better use of it. These entries in my journal will all show up with subject lines beginning with "POST:" followed by the title of the original post.

Hopefully, I'll still have enough time to make contributions to the journal besides just regurgitating stuff I'm saying in other places.

User Journal

Journal Journal: Restaurant in America = English Menu, Service 1

So my gf and I go to a local sushi restaurant. It's been a long day, a long week even, so I settle in and start perusing the menu for a good sushi combo plate and some sake to match.

Much to my surprise, despite several sake bottles prominently displayed behind the sushi bar, the menu says: "sake, (S) $4.00, (L) $7.00". I ask the waitress, "Is only the house sake available, or do I have a choice?"

"Welr," she says, "We huv arotta sock-ee at-tooly. Yoo can haf which-uh eva yoo wan."

After a few more repetitions, I finally understand what she means. (Incidentally, I am not embellishing the accent in order to be racist, but rather, to make the point that I had at least as difficult a time understanding her--probably more--than you are having deciphering my attempts at literary encryption.) Ok, great, I think. "Can I see the sake menu?"

"O-waa. We no-a haf a sock-ee men-ru foar yoo."

"Huh? You don't have a sake menu at all? How do people order sake here?"

"Welr, we haf un--umm--er sock-ee menu, but alr in Japanees!"

"Ok, well, but I want sake and I don't read or speak Japanese. Surely, the owner of this restaurant must have foreseen this possibility. What provision do you have in place for dealing with just such a circumstance?"

"Welr...erm, hmm...welr, I cud-a jes telr yoo how--which sock-ee. Whotr kinna sock-ee yoo like? Uh-swee, uh-dride, uh-thik?"

"Uhh....sorry?"

"Um, err...sol-ee. Uh-swee, uh-dry-idda? Whotr kinna sock-ee? Acks-pan-siv, or...?"

"Oh, oh! I see...what kind of sake. Hm, I like unfiltered, mildly sweet, with round fruit flavors like banana or mango. I don't want to spend too much, though, so do you...err...ahh..." I'm looking at her now, she has a sort of glazed, struggling look about her as she's trying to grasp what I'm asking for. "You know what? Forget it, I'll just have water." And the meal went downhill from there.

Am I alone in asking that restaurants should meet some minimum level of service for all English-speaking patrons? After all, we are in America. Don't get me wrong, I'm not anti-immigrant. As an abridged Dennis Miller might put it:

We're all immigrants if we go far back enough (unless you're pure Indian--uhh, sorry, not supposed to use that term anymore. Ahem, "casino-owner American"), and I think that isolationism is equal parts self-loathing and mistrust of others. That doesn't mean we should stop teaching Locke and Thoreau in favor of the poetry of some Javanese goatherd. And yes, this country's founding fathers were a bunch of dead, white men, but those very same men set things up so that other cultures could come sit at the table, so they shouldn't piss in the finger bowls. In return for unfettered economic opportunity and no government death squads, all I ask is that immigrants try to get along with their new step-motherland and not be resentful if there's a set of house rules already in place. The favor of inclusion deserves the courtesy of assimilation. Make the effort. It's poor party manners to come live in this country and then throw a hissy fit because the parking signs aren't posted in Hmong.

And I will add to that little rant that if you're going to open a restaurant in America (engaging a little of that unfettered economic gain), especially if you are against the idea of America legislating English as the national language, then don't make that kind of legislation necessary by presenting better options to non-English speaking patrons. What is a menu, after all, other than a device whereby customers can gauge the number and quality of items available for purchase, along with the cost of those items? But I didn't have to explain this--the restaurant owner must have known that a sake menu is a great convenience and felt it was necessary to provide such a convenience...for Japanese speakers only, though!? I don't know if he wanted to make me feel unwelcome or not, but that's exactly what he did.

Also, one more thing, might I suggest: don't keep it all in the family. Use some of your newfound revenue-generating power to hire at least one American kid. He'll be worth his weight in gold when it comes to advising on cultural matters such as those addressed above, and if push comes to shove, he can at least run down the list of sakes without me having to ask him to repeat himself over and over again.

I heard Canada (the French half) passed a law a while back making French the national language (of that half...I know, so much for national--leave it to the Canadians). Any sign displayed in public has to have French as the primary mode of communication, meaning it must be at least twice as large as any other language on the sign. At first I thought, hmm, that's probably not for us. But the more I thought about it, the more sense it makes. After all, I wonder what happens when there's a fire in Chinatown...does that fire department have to have someone that reads Chinese and knows how to translate the name given in the 911 call to the characters on the sign? Maybe they just go by addresses. I hope they don't just wait for the flames to get big enough to see over the horizon.

Anyway, back to the main point. The whole idea of putting a menu only in Japanese really blows my mind. It's just a shade away from having the menu in English, but refusing to give it to anyone who doesn't know Japanese. (What's the functional difference as far as the customer experience is concerned? I can see a bunch of sake, but I can't have any.) If this doesn't resonate with you, think about the reverse situation--a restaurant has menus available in several languages, but refuse to show anyone the non-English versions. "You don't speak English? Too bad!"

I daresay an anti-foreigner business would cause a protest.

Debian

Journal Journal: GNU/Debian Troll: the definitive Open Source web destination 2

MEDIA ANNOUNCEMENT: FOR IMMEDIATE RELEASE

The Bruce Perens Memorial Debian Systems Research Institute, Hewlett Packard Headquaters, Palo Alto, California. 29th January, 2004. Debian Troll's Best is pleased to announce that development has commenced on what will undoubtedly become the preferred destination for Open Source and GNU/Debian developers, users and enthusiastic apt-get advocates everywhere: GNU/Debian Troll, the web site.

GNU/Debian Troll will be closely linked to the Debian community, and will be the host for the broad range of Debian-related apt-get software development projects currently being undertaken by Debian Troll's Best and coworkers. Said Debian Troll's Best at a recent HP media briefing "GNU/Debian Troll is all about the spirit of GNU/Debian and Open Source. It's about building on what's already out there. It's about knowing how to use one damned tool, and then forcing every problem under the sun to work with that tool. But most importantly, it's about getting the word out to people on forums like Slashdot about our fantastic advances in GNU/Debian package management, and not stopping until they break down and install win-apt-get or apt-get-itunes or apt-get-expose. I draw my inspiration from such luminaries as Richard Stallman, Bruce Perens and Eric Raymond. And no, that has nothing to do with the fact I haven't showered for a week, don't have a job and write vast tracts of semi-delirious fictional ramblings about Open Source software. Thankyou"

GNU/Debian Troll: the website is expected to go online before summer. Which summer and in which hemisphere is yet to be determined. Further announcements will be made as the release date is approached.

Slashdot Top Deals

Get hold of portable property. -- Charles Dickens, "Great Expectations"

Working...