Windows 3.0 was a shiny veneer on top of DOS. DOS didn't have preemptive multitasking. Ergo Windows 3.0 didn't have preemptive multitasking. Or multitasking of any sort really.
Well, except that on 80386 processors, there was Virtual 8086 mode,
in which DOS could run on top of Windows. In fact, multiple
instances of DOS. I forget how many Virtual 8086 processors
the 80386 supported (8 or 16 or something), but it was hardware
support and there was a limit.
Yes, it's confusing, but we are talking
about a Microsoft system here.
At any rate, I withdraw my assertion that it was definitely
preemptive multitasking. It has been too long since I've
used it for me to remember for sure, and there is little
in the way of proof either way that I could dig up. But
I'm fairly sure you could start multiple copies of Windows
(or DOS or whatever else) each within a Virtual 8086 and
get some form of multitasking. Note that it would be more
similar to the
type of multitasking you'd get if you started up multiple
VMWare instances to run separate programs than if you ran
them all within the same instance. So it's a tad bit
wacky.
Was not Linux preemptive multitasking before Windows
Other operating systems had preemptive multitasking decades
before Windows did, but Linux was not one of them. All
according to Wikipedia, Windows
had preemptive multitasking in Windows 3.0, which came out
(as in a stable release version) in 1990, and Linus started
work on the Linux kernel in 1991.
(And of course, the Amiga had all this in the mid-1980's. Although
that doesn't make it the first, either.)
But yes, I agree with the general principle that MS didn't invent
jack squat, pretty much.
Basically what his software did was compare the previous frame and the current one, then draw a bounding box around things that had changed. That's all this system appears to be doing, except instead of aiming for the center of the box, it is estimating where the target's head is.
Darn, then I will have to add to the cost of my solution a little
bit. I will now need to buy a broom and some duct tape and duct
tape the broom to the trashcan, giving myself a new "head" that is
conveniently about 3 feet above my own real head.:-)
I have a Linux system here, with at least three different versions of, e.g., BerkeleyDB. 1.85 compat, 3.something, 4.idontknow. API changes, incompatibilities, you name it.
That sounds like a system whose package manager has been bypassed.
Actually, I'm fairly sure it's the default on Slackware 10.2!!
Ever tried to compile popular Linux software on another Un*x? Whenever I encounter some piece of GPL-licensed software, I can almost guarantee it won't compile on Solaris, Tru64,.. - without spending hours for #ifdef'ing and patching the source.
That doesn't sound like a Linux problem. Ever try porting a Solaris device driver to Tru64?
He didn't say anything about device drivers. He said "software".
As in regular old userspace application or utility. Ever tried
to compile xine or
something like that for Solaris? There is a lot of
software out there written by people who ignorant of (for
example) which headers must be #include-ed for
which functions and whose software is incorrect but happens
to work on Linux. A lot of times these bugs only get fixed
when someone tries to compile it on some non-Linux system,
it fails, they fix the bugs, and they submit a patch back
to the author. Yes, that is open source, distributed
development in action, and that's great, but only if the
author accepts the patch and doesn't keep making the same
mistakes again and again.
Sun is in trouble, and according to FSF Lawyer Eben Moglen's (wild) allegations in his talk at a recent Free Software Foundation Associate Members [fsf.org]hip meeting, they previously (2005?) took a bribe from Microsoft to keep OpenSolaris incompatible with the GPL
Wow, I would really like to see some evidence of that.
As it stands, it's just an absurd claim with no support.
Having (over a period of 15+ years) used Sun equipment and
software, and having worked with the company as a customer,
and having known people who were employees at Sun, I would
say that the chances of this being true are about 0.01%.
Sun doesn't like being told what to do by Microsoft, or have
you forgotten that Sun once famously sued Microsoft over
Java and also once banned PowerPoint presentations? In fact,
here's a Scott McNealy quote about the PowerPoint thing:
We had 12.9 gigabytes of (Microsoft) PowerPoint slides on our network. And I thought, 'What a huge waste of corporate productivity.' So we banned it. And we've had three unbelievable record-breaking fiscal quarters since we banned PowerPoint. Now, I would argue that every company in the world, if they would just ban PowerPoint, would see their earnings skyrocket. Employees would stand around going, 'What do I do? Guess I've got to go to work.'
So, it's really hard to believe that a company with this
history would be in bed with Microsoft and on some kind of
anti-GPL crusade. Anyway, you also said:
Sun is now flip-flopping like a struggling politician; they caved to the pressure of GPL'ing Java
I hardly see how this can be considered flip-flopping. Two
years, neither Solaris nor Java was open source in any sense.
A year ago (approximately), Solaris was open-sourced. Today,
Java was open-sourced, and they mentioned they are thinking
of adding GPL to the list of licenses for Solaris. This
seems like a steady trend in the direction of open source.
The Free Software Foundation has made no announcements on either of these developments.
So what? Dovecot is a
really cool GPL-ed POP/IMAP server, and I don't recall the FSF making
any announcement when it was released. Nor do I recall the
FSF making any announcement when many other things were
released under the GPL. It's not necessary because the
GPL speaks for itself.
How would GPL'ed Solaris utilities impact use and development of the GNU utilities? (Yes, I realize that the Solaris utilities share code with BSD utilities given their common ancestors . . .
What common ancestors? Solaris is based on System V Unix from
AT&T, not on BSD. Yes, Solaris 1.x (a/k/a SunOS 4.x) was
based on BSD, but it was pretty much totally rewritten before
Solaris 2.x, so Solaris 2.x (and 7, 8, 9, 10, etc.) have very
little in common with Solaris 1.x, and thus very little in
common with BSD. You will notice that/usr/bin/ps
on Solaris takes options like "-ef" rather than
options like "aux", and you will also notice that
sh's echo command needs "\c" in
the string instead of "-n" as a separate argument
if you want to supress the newline. So you can see that
the Solaris command-line utilities are not very BSD-like.
We need some improvements in pattern recognition before this is a feasible idea. There is a lot of cognitive processing that goes into seemingly simple decisions like 'Is this a person?' and 'Is this person an enemy?' and 'Is this person armed?'
Particularly if, say, someone wants to defeat the pattern
recognition and grabs a 55-gallon galvanized steel trashcan,
puts it over their head, and walks around like that. How
hard is to make this thing not recognize your shape as
human? If the trashcan over my head doesn't do it, what if
I add an aluminum foil hoop skirt?
Democratic electronic voting is an impossibility. You cannot do it.
I'm not convinced that it is an impossibility. I am convinced
that so far nobody has done it, but I am not willing to
rule out that it is possible somebody could.
I think it's important to look at it from several angles. One
of them is procedure, which someone else has already mentioned.
Even for good old-fashioned paper voting, a proper procedure
is necessary to make sure someone doesn't stuff the ballot
boxes or similar. The procedures need to be transparent so
that they can be verified by several different people.
Another angle is information theory. One
of the chief problems with some (all?) existing systems is that they seem
to think that it's OK to maintain only a count of votes. Every time there
is a vote, the counter is incremented, etc. The information
about the original votes is destroyed and only the count
remains. This is different
than with paper ballots: with paper ballots, the votes themselves
are recorded. Then the count is
created by totaling up the votes. If necessary, a recount can
be accomplished by totaling up the original votes again, because
the information about the original votes continues to exist.
I think it should be a
requirement of any voting system (electronic or otherwise)
that information about individual votes is not destroyed.
Of course then there is the issue of the physical media.
Most electronic storage can be rewritten, which is
unacceptable if the information is to preserved (as above).
So a proper electronic voting system would require
information to be stored in a medium that can't be
changed once it is written. RAM, hard disk, and flash
are not
reasonable solutions, but there are other solutions that
might be. For instance, PROM would work: a bit can be
written by applying current that burns out a fuse.
Once burnt, the fuse cannot be "unburnt". Notice that
I am talking about PROM here, not EPROM or EEPROM (in
which, for both, one of the "E"s stands for "erasable"),
although EPROM (not EEPROM) could probably work well too
if there were a physical seal on the window you use to
erase it.
I think, in general, a proper electronic voting system
would need to use something other than a general-purpose
computer as a platform.
It might need to be have all its programming written in
ROM or PROM so that it cannot be changed. It might need
to have dedicated hardware. It might need to be
something other than a von Neumann machine. It certain
needs to have code that is very small, something on the
order of a few thousand lines total. That rules out
building
on top of an existing database or operating system.
If voting machines had dedicated logic (i.e. NAND gates
or whatever)
that could allow input of the votes to some write-once
media (like PROM), and if there were a way to verify the
data on the PROM (preferably through a separate machine),
recording votes electronically seems feasible. It would
be even better if every component of the chain were
modular and standardized and built so that its performance
can be exhaustively tested. For bonus points, the
exact behavior of a chip, down to the signal timing, of
the chips involved could be specified precisely. Then
you can run several chips (with the program logic on them)
from several sources in parallel, with hardware on all the
outputs to verify they are outputting
the same things at the same time. You can have, say, 4
chips processing the same inputs, then on every logic
line coming out from each of the chips, put a small network
of gates to compare whether they are either all high or all
low and raise an alarm if not. (Of course you only check
for some part of the cycle of the clock; it's not necessary
for them to make all the transitions at the same time as
long as they make them within some time interval.)
Why do people even waste their time on this idea. WHY DO WE NEED SPACE ELEVATORS?
For all the engineers here: why would you want to build a cable tens of thousands of miles long out of currently UNAVAILABLE materials (unobtanium) to slowly ratchet up one payload at a time? It's a horrid idea, and it STILL takes just as much actual energy to put anything in orbit...just it does so pathetically slowly.
It doesn't take exactly as much energy. It takes a lot less.
Yes, the potential energy (due to gravity) gained is exactly
the same because you are reaching the same height, but there
is the small matter of friction while
going through the earth's atmosphere. If you're, say, the
space shuttle, you're going well over 1000 m/s while still
in the atmosphere. Don't forget that the force of
friction grows non-linearly with speed! So the energy you're
wasting and turning into heat due to friction is huge.
Why does the space elevator need to be anchored directly to the surface of the planet? Wouldn't anchoring it to a zepplin like platform high in the atmosphere make the whole thing a lot easier to build?
As the earth turns, the elevator is moving. It will have
momentum and will want to continue to move in a straight
line, instead of moving in a circle around the earth. There
is also gravity pulling it toward the earth. If the cable
is not tethered, gravity will need to exactly equal the
force necessary to keep it from trying to go in a straight
line. If gravity is too
strong, the whole thing will fall to the earth (or snap?).
If gravity is too weak, the cable will float away into
space!
If you don't have it tethered and you exactly match the
forces, you could get the cable to just float there in mid air.
But that seems like a bad idea, not just because it might
be hard to achieve, but also because you want to send stuff
up on the cable (otherwise, why have it?), and that stuff
you want to send upwards has weight. If the cable is
exactly balanced and you put heavy things on it, it will
no longer be exactly balanced and will start moving downwards
towards the earth, which seems like
a bad idea!
Overall, it seems a lot easier to make the cable long enough
so that it exerts an upward force on the point where it is
tethered to the earth's surface. Then you can put heavy
things on it (up to a certain weight limit) and it won't
start to fall.
I highly doubt any city is going to pay 30% more though. The cities and counties out here bid to the cheapest contractor and the cheapest contractor is probably going to get the cheapest concrete.
Is it as simple as that? If it is, when the city asks me to bid
to build 10 miles of road, I'll submit a bid to build only
5 miles of road instead. I'll come in at half the price of
everyone else and be awarded the contract every time.
I guess the reason that wouldn't work is that there are certain
requirements that must be met for your bid to be accepted.
If this special concrete is a requirement, everyone who submits
a bid will have to build the road will have to bid based on using
that type of concrete. So the bidding process isn't really
relevant. What's relevant is whether the city (or county or
whatever authority is building the road) will be willing to
make it a requirement when they know it means the bids will
come in higher.
For what it's worth, I would guess the cost of the concrete
only makes up something like 25% of the cost of building a
road. You have to have a bunch of machinery to pour the
concrete, people to run it, not to mention stuff like
surveying, lots of site preparation (moving
earth and grading things), drainage, signs, traffic signals,
stripes and reflectors, and so on. If concrete makes up
25% of the cost of building the road, then that 30% premium
on special concrete becomes only a 7.5% premium on the cost
of the whole job, which might be easier to swallow.
I'm curious, what does the Libratarian party stand for?
It is a party which acts as an advocate for the interests
of people born between September 23 and October 22.
Members of the Libratarian party are generally above
average attractiveness
and have a special ability to read members of the opposite
sex. Although they may be emotional at times, they are
generally level-headed and get along well with others.
They are most compatible with Capricrats and Aquaripublicans.
There isn't a single factory, communication system, transportation system or any other important part of our civilization that runs off solar power and baring currently unforeseen breakthroughs in storage technology there never will be.
A
company called EEStor (coincidentally located near where I live) has a technology that could be significant.
And for all anyone knows, there may be other companies making
similar strides or even better.
Granted, there's no way we're there yet, but I think it would be
a mistake to assume significant advances in storage technology
won't happen.
How does a computer algorithm for compression relate to the idea that human compression of knowledge corresponds to intelligent action? I think the summary is making a mistake in terminology. An intelligent person is able to compress information and access it quickly, but that doesn't really have much to do with a more efficient compression algorithm, unless we're talking some seriously advanced AI. I just really don't understand the correlation or what the summary is trying to imply...
Nope, I had heard about the contest before seeing it today on
Slashdot. The summary is fine. That is in fact the thesis
that the contest is designed to investigate.
As for why this is the case, I spent some time studying
compression two or three years ago, and one of the things
that you quickly realize is that there is no such thing
as a truly general-purpose compression algorithm. Compression
algorithms work on the principle that there is some underlying
pattern or structure to your data. Once the structure is
understood, the data can be transformed into a smaller
format. Think of compressed files as a set of parameters
to a magic function which generates a larger file. The
real art is in finding the function.
To give a concrete example, one of the simplest forms of
compression is Huffman coding. You analyze your stream
of symbols, and you realize that some occur more often
than others. You then assign shorter bit strings to
more frequently-occurring symbols and longer ones to
less frequent symbols. This gives you a net gain. You
were able to do this because you had the insight that
in human language, some letters (like "e") occur more
frequently than others (like "q").
There are, of course, other patterns that can be exploited.
You can take the frequency distribution trick above up to
another level by noting that the frequency of a symbol is
not really independent of the symbol before it. For example,
the most likely symbol after a "q" is "u". Sure, you could
have other things. But "u" is the most likely. You can
exploit that to get better compression.
But of course, you might be compressing something other than
English text. There are different techniques for whatever
kind of data you're trying to compress. A row of pixels in
a faxed (1-bit) image tends to be very close to the same as
the previous row. Each pixel is a bit. If you represent
a row of pixels not as on or off directly but instead represent
it as its bit value XORed with the pixel above it, you end up
with 0 bits for every pixel that hasn't changed and 1 bits
for every value that hasn't. Presto, you have just managed
to skew the probability distribution radically towards 0 bits,
and you can use further tricks to gain compression from that.
The point of all this is that to come up with these tricks,
you have to understand something about the data. One of
the better definitions I've ever heard for data compression
was simply "applied modeling".
Given that, you have to ask a question: have we reached the
point today where compression algorithms are as good as they're
going to get at compressing English text based on its surface-level
characteristics such as character frequencies and repeated strings?
Have we exhausted the low-level modeling that is possible? There
has been a lot of work on this, so it's possible that we may have.
And if so, then any further
gains in the compression ratio could very well be the result of
some sort of higher-level modeling. Maybe even modeling the
knowledge rather than just the language. And that is what
this contest is about, as I understand it.
It's not for sure that a winning contest entry necessarily
requires the submitter to have developed some kind of
machine intelligence. But it's an intriguing enough idea
that it might be worthwhile to run the contest just to see
if something interesting does happen.
By the way, for some interesting reading on this subject,
look up Kolmogorov Complexity. The wikipedia seems to
have a
pretty decent article
on it (although I haven't read the whole thing).
First off, almost nothing gracefully handles memory allocation failure. Particularly anything in C/C++. You need memory to complete an operation, and if you don't get it, you're screwed. There's no way to reliably unwind the stack and reverse the state of the program to continue without performing that operation.
That's simply not true. There is a way. You simply follow
two rules when coding: (a) that any resource
allocation can fail and must be handled, and (b) that
when a resource allocation
does fail, error handling isn't allowed to require
further resource acquisition to complete. The second rule
might require things like printing error messages character
by character rather than building up the message in a
buffer before printing it. It's more of a pain, and it's
slower, but it's possible. Basically, you don't have to
reverse the state of the program. You only have to put
the program into a new valid state without any further
attempts to allocate more memory (or other resources).
Since you're guaranteed you can use the memory you
already did successfully allocate, that's not an
impossible task.
Yes, this is harder because it has to be designed in from
the very beginning. Yes, it may be true that it's not
worth the effort given plentiful virtual memory available
on today's machines where disk space is amazingly cheap.
But it's not impossible to gracefully and reliably recover
from allocation failures.
The only sane thing you could do is get out your favourite paint program (not score program, they probably copyright the output of it) and draw your own score,
If you want to typeset a score and avoid having the software place
restrictions on the output, there is no need to resort to the pain of
using a paint program! Just use some software like
MusiXTeX.
As a matter of fact, it appears that some people have already been
doing this and making available some free sheet music. They have
an archive, and it
seems to have lots of stuff in it. For example, just look at what
they have for J.S. Bach.
(As soon as my printer finishes, I'm about to go annoy my neighbors with
some Prelude and Fugue in D minor.)
But if Sun Java is released under the GPL, I expect to see several more versions of Java, most of them incompatible with each other, coming out soon. Iceweasel, anyone?
This is why open computing is not based only on the available of open
source. Another key element of open computing is open standards. Java
has open standards; you can go download the
Java Language Specification
and check if any given implementation conforms to it or not. You can
also go download the Java Virtual Machine Specification and see if some compiler is producing correct bytecode
or if some JVM is running the bytecode correctly.
Yes, it's possible someone may fork an implementation of one or the
other (the compiler or the JVM) and make incompatible changes. That
would be fairly silly, but that doesn't mean it won't happen. One
expects that Sun will allow them to have the source code but will
not grant them the right to say it is a conforming implementation of
Java if it's not. I assume that is what you're getting at with
the comparison to Iceweasel.
The thing is, this has always been possible. There are open source
Java compilers and open source JVMs as well. The thing Sun is doing
is making it easier, because they are (apparently) open sourcing
their JVM, which creates more opportunity and more interest in doing
something with that particular implementation.
Well, I don't know of a dual-core gzip, but there is
an SMP bzip2. Is
that good enough? Their tests seem to indicate that the
speedup is very close to linear up to around 30 processors.
We know that child molestation has occurred for untold eons. Humans are therefore resilient, resistant to such things, for the sake of survival. And at the risk of getting flamed, I want to point out the evidence that most victims of such mistreatment do in fact go on to lead normal lives. Natural selection sternly requires it.
Actually, not exactly, natural selection just requires that the problem
doesn't get so bad that it has a significant impact on the ability
of the species as a whole to survive. It's
perfectly compatible with natural selection if, say, 2% of the
population, despite being totally innocent, meets some horrible
unfair death, as long as the other 98% gets along fine. If that's
enough to keep the species going, then it's all that natural
selection requires.
I think there's a common misconception that evolution is a force
which is so powerful that it eliminates all imperfection. That's
not necessarily the case. It only eliminates perfections that
threaten the ability of the species to do the minimum necessary
to survive. All other imperfections are relatively unimportant,
at least as far as evolution is concerned.
Having said that, I've heard it said that of the people who experience
some form of severe trauma or abuse, there is a certain percentage who
become pretty much permanently (or at least over the long term)
messed up in the head and have trouble coping with life in a wide
variety of ways. But then there is also a large percentage of people
who come from a messed up background who grow up to be perfectly healthy
adults. In fact, these people tend to take their messed up background
and find some way to make it into something positive. They may even
be more successful than the average person. Years ago, I knew someone
who came from a background where he and his siblings had all been
abused. He wasn't able to deal with it very well and his life was, I
hate to say, a serious mess. (I hope he's managed to iron some things
out by now.) His sister, on the other hand, had earned a graduate
degree in social work (I think) and had written at least one book on
the subject of child abuse. She had done well for herself and
was making a real difference in the
world, and I think she was emotionally healthy as well.
Basically, it seems like when something really terrible happens to
someone, either they are never able to overcome it or they
are able to overcome it, and they grow from it in ways that others
never would even have the ability to grow. I'm thankful that a
good percentage of the people are able to totally recover and be
a stronger person as a result. But the reason child molestation
and similar things are so bad is that a certain number of people will
fall into the first category and never get past it. I don't know why
some people are able to get past it and some aren't, but it seems
to be the case, and that's why I think we should continue to treat
it as a very serious issue.
Just about everyone is going to have a pet theory as to why this
correlation exists. Most of them will be based on personal opinion
rather than fact. Who knows how valid they are.
So, I have one, and here it is.
Keeping your mind sharp requires work and self-discipline.
Keeping your body in good shape requires work and self-discipline.
Therefore, people who are lazy and/or who are not self-disciplined
will suffer in both areas.
And for what it's worth, I'm not trying to be all superior here.
The reason I know both of these things can suffer as a result of
laziness and a lack of self-discipline is that I've seen it
happen to myself. Well, a better way to put that would be that
I've let it happen to myself. Luckily, I hit a point where
I got fed up with it and have mostly reversed the trend.
I've been using wireless for several years (who here on/. hasn't??)
Me. I don't own any wireless networking equipment at all and
never have. But then, I don't have a laptop either, so I'm
not sure why I'd need any of it.
Eventually, I probably will get a laptop, but until I do, I will
stick with the wired stuff.
Well, there's Firefox, and fire is one of the four elements
(fire, water, earth, and air), and of course a fox is a type
of canid. So, the logic choices are obviously:
Earthwolf
Waterjackal
Airhyena
Well, I guess those aren't the only permutations. There is
also Airwolf, but unless the Debian people are really into
bad 1980's television shows about helicopters...
I read 100 pages or so per week of articles in PDF that I may never read again. Reading them on an LCD screen is a huge pain, so I usually end up printing them out (and of course using both sides and recycling). This would save me a lot of paper.
Well, except that on 80386 processors, there was Virtual 8086 mode, in which DOS could run on top of Windows. In fact, multiple instances of DOS. I forget how many Virtual 8086 processors the 80386 supported (8 or 16 or something), but it was hardware support and there was a limit. Yes, it's confusing, but we are talking about a Microsoft system here.
At any rate, I withdraw my assertion that it was definitely preemptive multitasking. It has been too long since I've used it for me to remember for sure, and there is little in the way of proof either way that I could dig up. But I'm fairly sure you could start multiple copies of Windows (or DOS or whatever else) each within a Virtual 8086 and get some form of multitasking. Note that it would be more similar to the type of multitasking you'd get if you started up multiple VMWare instances to run separate programs than if you ran them all within the same instance. So it's a tad bit wacky.
Other operating systems had preemptive multitasking decades before Windows did, but Linux was not one of them. All according to Wikipedia, Windows had preemptive multitasking in Windows 3.0, which came out (as in a stable release version) in 1990, and Linus started work on the Linux kernel in 1991.
(And of course, the Amiga had all this in the mid-1980's. Although that doesn't make it the first, either.)
But yes, I agree with the general principle that MS didn't invent jack squat, pretty much.
Darn, then I will have to add to the cost of my solution a little bit. I will now need to buy a broom and some duct tape and duct tape the broom to the trashcan, giving myself a new "head" that is conveniently about 3 feet above my own real head. :-)
Actually, I'm fairly sure it's the default on Slackware 10.2!!
He didn't say anything about device drivers. He said "software". As in regular old userspace application or utility. Ever tried to compile xine or something like that for Solaris? There is a lot of software out there written by people who ignorant of (for example) which headers must be #include-ed for which functions and whose software is incorrect but happens to work on Linux. A lot of times these bugs only get fixed when someone tries to compile it on some non-Linux system, it fails, they fix the bugs, and they submit a patch back to the author. Yes, that is open source, distributed development in action, and that's great, but only if the author accepts the patch and doesn't keep making the same mistakes again and again.
Wow, I would really like to see some evidence of that. As it stands, it's just an absurd claim with no support. Having (over a period of 15+ years) used Sun equipment and software, and having worked with the company as a customer, and having known people who were employees at Sun, I would say that the chances of this being true are about 0.01%. Sun doesn't like being told what to do by Microsoft, or have you forgotten that Sun once famously sued Microsoft over Java and also once banned PowerPoint presentations? In fact, here's a Scott McNealy quote about the PowerPoint thing:
So, it's really hard to believe that a company with this history would be in bed with Microsoft and on some kind of anti-GPL crusade. Anyway, you also said:
I hardly see how this can be considered flip-flopping. Two years, neither Solaris nor Java was open source in any sense. A year ago (approximately), Solaris was open-sourced. Today, Java was open-sourced, and they mentioned they are thinking of adding GPL to the list of licenses for Solaris. This seems like a steady trend in the direction of open source.
So what? Dovecot is a really cool GPL-ed POP/IMAP server, and I don't recall the FSF making any announcement when it was released. Nor do I recall the FSF making any announcement when many other things were released under the GPL. It's not necessary because the GPL speaks for itself.
What common ancestors? Solaris is based on System V Unix from AT&T, not on BSD. Yes, Solaris 1.x (a/k/a SunOS 4.x) was based on BSD, but it was pretty much totally rewritten before Solaris 2.x, so Solaris 2.x (and 7, 8, 9, 10, etc.) have very little in common with Solaris 1.x, and thus very little in common with BSD. You will notice that /usr/bin/ps
on Solaris takes options like "-ef" rather than
options like "aux", and you will also notice that
sh's echo command needs "\c" in
the string instead of "-n" as a separate argument
if you want to supress the newline. So you can see that
the Solaris command-line utilities are not very BSD-like.
Particularly if, say, someone wants to defeat the pattern recognition and grabs a 55-gallon galvanized steel trashcan, puts it over their head, and walks around like that. How hard is to make this thing not recognize your shape as human? If the trashcan over my head doesn't do it, what if I add an aluminum foil hoop skirt?
I'm not convinced that it is an impossibility. I am convinced that so far nobody has done it, but I am not willing to rule out that it is possible somebody could.
I think it's important to look at it from several angles. One of them is procedure, which someone else has already mentioned. Even for good old-fashioned paper voting, a proper procedure is necessary to make sure someone doesn't stuff the ballot boxes or similar. The procedures need to be transparent so that they can be verified by several different people.
Another angle is information theory. One of the chief problems with some (all?) existing systems is that they seem to think that it's OK to maintain only a count of votes. Every time there is a vote, the counter is incremented, etc. The information about the original votes is destroyed and only the count remains. This is different than with paper ballots: with paper ballots, the votes themselves are recorded. Then the count is created by totaling up the votes. If necessary, a recount can be accomplished by totaling up the original votes again, because the information about the original votes continues to exist. I think it should be a requirement of any voting system (electronic or otherwise) that information about individual votes is not destroyed.
Of course then there is the issue of the physical media. Most electronic storage can be rewritten, which is unacceptable if the information is to preserved (as above). So a proper electronic voting system would require information to be stored in a medium that can't be changed once it is written. RAM, hard disk, and flash are not reasonable solutions, but there are other solutions that might be. For instance, PROM would work: a bit can be written by applying current that burns out a fuse. Once burnt, the fuse cannot be "unburnt". Notice that I am talking about PROM here, not EPROM or EEPROM (in which, for both, one of the "E"s stands for "erasable"), although EPROM (not EEPROM) could probably work well too if there were a physical seal on the window you use to erase it.
I think, in general, a proper electronic voting system would need to use something other than a general-purpose computer as a platform. It might need to be have all its programming written in ROM or PROM so that it cannot be changed. It might need to have dedicated hardware. It might need to be something other than a von Neumann machine. It certain needs to have code that is very small, something on the order of a few thousand lines total. That rules out building on top of an existing database or operating system.
If voting machines had dedicated logic (i.e. NAND gates or whatever) that could allow input of the votes to some write-once media (like PROM), and if there were a way to verify the data on the PROM (preferably through a separate machine), recording votes electronically seems feasible. It would be even better if every component of the chain were modular and standardized and built so that its performance can be exhaustively tested. For bonus points, the exact behavior of a chip, down to the signal timing, of the chips involved could be specified precisely. Then you can run several chips (with the program logic on them) from several sources in parallel, with hardware on all the outputs to verify they are outputting the same things at the same time. You can have, say, 4 chips processing the same inputs, then on every logic line coming out from each of the chips, put a small network of gates to compare whether they are either all high or all low and raise an alarm if not. (Of course you only check for some part of the cycle of the clock; it's not necessary for them to make all the transitions at the same time as long as they make them within some time interval.)
It doesn't take exactly as much energy. It takes a lot less. Yes, the potential energy (due to gravity) gained is exactly the same because you are reaching the same height, but there is the small matter of friction while going through the earth's atmosphere. If you're, say, the space shuttle, you're going well over 1000 m/s while still in the atmosphere. Don't forget that the force of friction grows non-linearly with speed! So the energy you're wasting and turning into heat due to friction is huge.
As the earth turns, the elevator is moving. It will have momentum and will want to continue to move in a straight line, instead of moving in a circle around the earth. There is also gravity pulling it toward the earth. If the cable is not tethered, gravity will need to exactly equal the force necessary to keep it from trying to go in a straight line. If gravity is too strong, the whole thing will fall to the earth (or snap?). If gravity is too weak, the cable will float away into space!
If you don't have it tethered and you exactly match the forces, you could get the cable to just float there in mid air. But that seems like a bad idea, not just because it might be hard to achieve, but also because you want to send stuff up on the cable (otherwise, why have it?), and that stuff you want to send upwards has weight. If the cable is exactly balanced and you put heavy things on it, it will no longer be exactly balanced and will start moving downwards towards the earth, which seems like a bad idea!
Overall, it seems a lot easier to make the cable long enough so that it exerts an upward force on the point where it is tethered to the earth's surface. Then you can put heavy things on it (up to a certain weight limit) and it won't start to fall.
Is it as simple as that? If it is, when the city asks me to bid to build 10 miles of road, I'll submit a bid to build only 5 miles of road instead. I'll come in at half the price of everyone else and be awarded the contract every time.
I guess the reason that wouldn't work is that there are certain requirements that must be met for your bid to be accepted. If this special concrete is a requirement, everyone who submits a bid will have to build the road will have to bid based on using that type of concrete. So the bidding process isn't really relevant. What's relevant is whether the city (or county or whatever authority is building the road) will be willing to make it a requirement when they know it means the bids will come in higher.
For what it's worth, I would guess the cost of the concrete only makes up something like 25% of the cost of building a road. You have to have a bunch of machinery to pour the concrete, people to run it, not to mention stuff like surveying, lots of site preparation (moving earth and grading things), drainage, signs, traffic signals, stripes and reflectors, and so on. If concrete makes up 25% of the cost of building the road, then that 30% premium on special concrete becomes only a 7.5% premium on the cost of the whole job, which might be easier to swallow.
It is a party which acts as an advocate for the interests of people born between September 23 and October 22. Members of the Libratarian party are generally above average attractiveness and have a special ability to read members of the opposite sex. Although they may be emotional at times, they are generally level-headed and get along well with others. They are most compatible with Capricrats and Aquaripublicans.
A company called EEStor (coincidentally located near where I live) has a technology that could be significant. And for all anyone knows, there may be other companies making similar strides or even better.
Granted, there's no way we're there yet, but I think it would be a mistake to assume significant advances in storage technology won't happen.
From the article summary:
"And you can trust us on this because we are the experts on inaccurate reporting!", they continued.
Nope, I had heard about the contest before seeing it today on Slashdot. The summary is fine. That is in fact the thesis that the contest is designed to investigate.
As for why this is the case, I spent some time studying compression two or three years ago, and one of the things that you quickly realize is that there is no such thing as a truly general-purpose compression algorithm. Compression algorithms work on the principle that there is some underlying pattern or structure to your data. Once the structure is understood, the data can be transformed into a smaller format. Think of compressed files as a set of parameters to a magic function which generates a larger file. The real art is in finding the function.
To give a concrete example, one of the simplest forms of compression is Huffman coding. You analyze your stream of symbols, and you realize that some occur more often than others. You then assign shorter bit strings to more frequently-occurring symbols and longer ones to less frequent symbols. This gives you a net gain. You were able to do this because you had the insight that in human language, some letters (like "e") occur more frequently than others (like "q").
There are, of course, other patterns that can be exploited. You can take the frequency distribution trick above up to another level by noting that the frequency of a symbol is not really independent of the symbol before it. For example, the most likely symbol after a "q" is "u". Sure, you could have other things. But "u" is the most likely. You can exploit that to get better compression.
But of course, you might be compressing something other than English text. There are different techniques for whatever kind of data you're trying to compress. A row of pixels in a faxed (1-bit) image tends to be very close to the same as the previous row. Each pixel is a bit. If you represent a row of pixels not as on or off directly but instead represent it as its bit value XORed with the pixel above it, you end up with 0 bits for every pixel that hasn't changed and 1 bits for every value that hasn't. Presto, you have just managed to skew the probability distribution radically towards 0 bits, and you can use further tricks to gain compression from that.
The point of all this is that to come up with these tricks, you have to understand something about the data. One of the better definitions I've ever heard for data compression was simply "applied modeling".
Given that, you have to ask a question: have we reached the point today where compression algorithms are as good as they're going to get at compressing English text based on its surface-level characteristics such as character frequencies and repeated strings? Have we exhausted the low-level modeling that is possible? There has been a lot of work on this, so it's possible that we may have. And if so, then any further gains in the compression ratio could very well be the result of some sort of higher-level modeling. Maybe even modeling the knowledge rather than just the language. And that is what this contest is about, as I understand it.
It's not for sure that a winning contest entry necessarily requires the submitter to have developed some kind of machine intelligence. But it's an intriguing enough idea that it might be worthwhile to run the contest just to see if something interesting does happen.
By the way, for some interesting reading on this subject, look up Kolmogorov Complexity. The wikipedia seems to have a pretty decent article on it (although I haven't read the whole thing).
That's simply not true. There is a way. You simply follow two rules when coding: (a) that any resource allocation can fail and must be handled, and (b) that when a resource allocation does fail, error handling isn't allowed to require further resource acquisition to complete. The second rule might require things like printing error messages character by character rather than building up the message in a buffer before printing it. It's more of a pain, and it's slower, but it's possible. Basically, you don't have to reverse the state of the program. You only have to put the program into a new valid state without any further attempts to allocate more memory (or other resources). Since you're guaranteed you can use the memory you already did successfully allocate, that's not an impossible task.
Yes, this is harder because it has to be designed in from the very beginning. Yes, it may be true that it's not worth the effort given plentiful virtual memory available on today's machines where disk space is amazingly cheap. But it's not impossible to gracefully and reliably recover from allocation failures.
If you want to typeset a score and avoid having the software place restrictions on the output, there is no need to resort to the pain of using a paint program! Just use some software like MusiXTeX.
As a matter of fact, it appears that some people have already been doing this and making available some free sheet music. They have an archive, and it seems to have lots of stuff in it. For example, just look at what they have for J.S. Bach. (As soon as my printer finishes, I'm about to go annoy my neighbors with some Prelude and Fugue in D minor.)
This is why open computing is not based only on the available of open source. Another key element of open computing is open standards. Java has open standards; you can go download the Java Language Specification and check if any given implementation conforms to it or not. You can also go download the Java Virtual Machine Specification and see if some compiler is producing correct bytecode or if some JVM is running the bytecode correctly.
Yes, it's possible someone may fork an implementation of one or the other (the compiler or the JVM) and make incompatible changes. That would be fairly silly, but that doesn't mean it won't happen. One expects that Sun will allow them to have the source code but will not grant them the right to say it is a conforming implementation of Java if it's not. I assume that is what you're getting at with the comparison to Iceweasel.
The thing is, this has always been possible. There are open source Java compilers and open source JVMs as well. The thing Sun is doing is making it easier, because they are (apparently) open sourcing their JVM, which creates more opportunity and more interest in doing something with that particular implementation.
Well, I don't know of a dual-core gzip, but there is an SMP bzip2. Is that good enough? Their tests seem to indicate that the speedup is very close to linear up to around 30 processors.
Females aged 18 to 40. They're waaaay ahead of any other group.
Actually, not exactly, natural selection just requires that the problem doesn't get so bad that it has a significant impact on the ability of the species as a whole to survive. It's perfectly compatible with natural selection if, say, 2% of the population, despite being totally innocent, meets some horrible unfair death, as long as the other 98% gets along fine. If that's enough to keep the species going, then it's all that natural selection requires.
I think there's a common misconception that evolution is a force which is so powerful that it eliminates all imperfection. That's not necessarily the case. It only eliminates perfections that threaten the ability of the species to do the minimum necessary to survive. All other imperfections are relatively unimportant, at least as far as evolution is concerned.
Having said that, I've heard it said that of the people who experience some form of severe trauma or abuse, there is a certain percentage who become pretty much permanently (or at least over the long term) messed up in the head and have trouble coping with life in a wide variety of ways. But then there is also a large percentage of people who come from a messed up background who grow up to be perfectly healthy adults. In fact, these people tend to take their messed up background and find some way to make it into something positive. They may even be more successful than the average person. Years ago, I knew someone who came from a background where he and his siblings had all been abused. He wasn't able to deal with it very well and his life was, I hate to say, a serious mess. (I hope he's managed to iron some things out by now.) His sister, on the other hand, had earned a graduate degree in social work (I think) and had written at least one book on the subject of child abuse. She had done well for herself and was making a real difference in the world, and I think she was emotionally healthy as well.
Basically, it seems like when something really terrible happens to someone, either they are never able to overcome it or they are able to overcome it, and they grow from it in ways that others never would even have the ability to grow. I'm thankful that a good percentage of the people are able to totally recover and be a stronger person as a result. But the reason child molestation and similar things are so bad is that a certain number of people will fall into the first category and never get past it. I don't know why some people are able to get past it and some aren't, but it seems to be the case, and that's why I think we should continue to treat it as a very serious issue.
Just about everyone is going to have a pet theory as to why this correlation exists. Most of them will be based on personal opinion rather than fact. Who knows how valid they are.
So, I have one, and here it is.
Keeping your mind sharp requires work and self-discipline. Keeping your body in good shape requires work and self-discipline. Therefore, people who are lazy and/or who are not self-disciplined will suffer in both areas.
And for what it's worth, I'm not trying to be all superior here. The reason I know both of these things can suffer as a result of laziness and a lack of self-discipline is that I've seen it happen to myself. Well, a better way to put that would be that I've let it happen to myself. Luckily, I hit a point where I got fed up with it and have mostly reversed the trend.
So in other words, shares rose by about 0.07%, right?
Me. I don't own any wireless networking equipment at all and never have. But then, I don't have a laptop either, so I'm not sure why I'd need any of it.
Eventually, I probably will get a laptop, but until I do, I will stick with the wired stuff.
Well, there's Firefox, and fire is one of the four elements (fire, water, earth, and air), and of course a fox is a type of canid. So, the logic choices are obviously:
Well, I guess those aren't the only permutations. There is also Airwolf, but unless the Debian people are really into bad 1980's television shows about helicopters...
Yeah, but $350 worth of paper? :-)