it escapes me, why the people who design the kernels, drivers, desktops, "system applications" and all that other open source stuff do not need to "make a living". Why the game designers are the only exception?
Because a competitive (which does not even
necessarily equal "good") game must be timely.
A FPS game with bitmapped monsters and no
ability to look around freely, such as the
original Doom, has no way to survive in the
marketplace today even if it was free. Since
commercial games are written full-time (more
than full-time, in fact), part-time developers
cannot keep pace.
Today's games also require the services of
musicians and artists, who are quite
accustomed to receiving payment for their
talents.
A kernel is much more of a static target than
a game. It is also a task that is far more
parallelizable, because device drivers are
essentially independent pieces of code. Even
then, support for newer peripherals (such as
USB, btw) tend to lag commercial OSes by a
great deal.
This is not to say there can't be a free game
that is imaginative enough to counteract the
part-time limitation. However, gems like
Tetris (easy to code, sells very well) simply
don't show up every year.
You cannot just leave an open webserver and expect people to 'just know' they they cannot request files from it. You cannot expect people not to poke around your unpassworded FTP server.
I agree. A responsive server should constitute
implicit permission to access everything
except things that are cannot reasonably
be public information. For example, you should
be free to poke around www.bankofamerica.com,
if it's open, but not download a file called
"customer-information-SECRET.dat". The
implicit permission cannot reasonably extend
to that file.
Similarly, you may wander around the woods,
and stray into somebody's private property.
If there were no fences or markers, you should
not be faulted for following a rabbit into
private property. However, you do not have
a similar implicit permission to open the door
to the house, much less to look in their
jewelry box.
Trivial passwords should fall into the same category
That's ridiculous. The range of possible
passwords is a continuum. Where do you
propose to draw the line between trivial
and non-trivial passwords? Last I looked,
a "stupid" victim doesn't excuse a crime.
Say for example you lock down everything except Apache/IIS running on port 80. Since both these two have had security exploits in the past (not trying to start a holy war here), what happens if someone exploits your webserver to gain more access?
I think that if you have an open port 80, and
what appears to be a HTTP server responding to
requests there, then you've implicitly allowed
people to send it valid HTTP requests (as
formally defined in W3C documents, or perhaps
informally by vendor-specific extensions).
If your HTTP server has a bug, and a
well-formed HTTP request crashes it, I think
the "attacker" should generally not be liable.
On the other hand, if you were sent an
undocumented request that a reasonable client
would not send, then the attacker should
generally be liable. Certainly, a
buffer-overflow attack, which includes
CPU op-codes to overwrite the buffer, cannot
be argued to be a reasonable HTTP request.
A ping flood, while individually legal, does
not serve any reasonable purpose in
aggregate, and should therefore be illegal.
That is, if you were sent a well-formed HTTP
request, it's your burden to prove ill intent.
If you were sent an unreasonable HTTP
request, it's the sender's burden to prove
innocense.
If you're not authorized (given permission, implicitly or otherwise), then don't access.
What constitutes "implicit permission"? Is
an open port 80 and a responsible HTTP server
evidence of "implicit permission", until the
web page asks for a password? How would I
get to that page (and realize that my access
is explicitly prohibited because I don't
have a password) without "accessing"?
Don't split hairs about the meaning of authorized or access. Usually, if you're attempting unauthorized access, you know it.
That's not the problem. The problem is when
somebody else thinks your accessing without
authorization, and sues or arrests you. What
if cnn.com suddenly switched to a pay model,
and defined a HTTP GET from a non-paying
customer as "unauthorized access"?
Somebody brought it up as a joke, but the
act of slashdotting a server is similar in
result as a DDoS attack, but only one should
be illegal and punishable. That's the
result of "splitting hairs".
What would be your problem if you had a general-purpose programming language that was abstract ? you could still use it to solve any problem, just like C/C++/Java/Ada. [...]
For example, I should not have to declare a variable of type 'string', since the statement 'str = "foo"' is enough.
I think I understand the confusion now. By
"abstract", I'm talking about the programmer
writing, for example:
without having to worry about whether
"Container" is a linked list, array, hash
table, or whatever. The implementation
details are abstracted away. Now,
"Container" is a powerful abstraction that
allows the programmer to ignore how it
really works, to concentrate on overall
correctness. At the same time, it may be
terribly inefficient on, say, a low-end
CPU with no data cache.
As cool as "Container" is, it costs nothing
compared to the database engine that the
SQL abstraction requires. For the task it
is designed for, SQL will defeat any C or
C++ solution in terms of ease and
correctness. However, a custom C or C++
database engine can probably still be
faster and leaner.
Let's take a simpler example: the C
struct. It is an abstraction, because it
allows the programmer to manipulate related
data attributes as an entity. Without a
struct, you'd have to use parallel arrays,
and remember that first_name[i] is related
to last_name[i], which can be error prone.
However, structs may use more space (alignment
issues), and may not be as cache efficient
when searching through all the last names.
Compared to the usefulness of "Container"
or struct, your implicit declaration idea
is really pretty trivial to a programmer,
in terms of bug avoidance. In fact, I'd
go as far as saying it's useless in terms
of bug avoidance. The truly useful
abstractions, on the other hand, are costly.
All programming languages today trade their
abstractions for time or space, or both.
This is why it's important to have a variety
of programming languages that cater to
various levels of abstraction, rather than
make all programming languages uniformly
more abstract as you propose. Now, I look
forward to a future where even very abstract
languages can result in very small and very
fast code, but that future is simply not here
yet.
It seems like there is a stigma against the "hacking method" of development in the large software engineering companies.
Yes, because while hacking can work very well
for a single developer, it fails terribly when
you have a team. If the design is not carefully
and rigidly broken apart into digestable pieces
first, with clear APIs separating your
developers, what you end up with is a lot of
misunderstandings, lost time, and wasted
efforts. The paper design, when properly
maintained, is crucial over the life cycle of
the product, where you expect to have multiple
maintainers. Finally, hacking is also much
harder to manage, because you don't have a
plan to compare progress against.
hacking is a legitimate technique that has advantages over the traditional, slower and possibly less flexible, software engineering moethods
Hacking is not a technique. It cannot really
be taught to another programmer, as it
involves little or no rules. In fact, you
can say that hacking is precisely the lack of
a technique. This freedom can be put to good
use by a good programmer, but easily abused
by everybody else to produce crappy software.
Programming languages should fulfill the purpose
they were designed for. To solve abstract
problems, use an abstract language. To solve
concrete problems, use a concrete language.
A language should be judged by how well it
solves a problem whose solution fits its
designed level of abstraction. Even assembly
language still has its place today.
Abstraction is a tool. It helps you ignore
some details to ensure overall correctness.
It is not an end in itself. When overdone,
it can lead to unnecessarily complex and
unacceptably inefficient code.
I've caught myself thinking much more clearly when I did not have to consider implementation details.
Right, but at some point you still have to.
Idealized data structures often fall apart in
real life when confronted with real memory or
CPU constraints.
I say reconfigure the product line and the store. Keep the beautiful professional and entry level laptops. Keep the readymade economic and powerful desktop options. But give us one more category. The Tinker-Mac.
What do you think this is?! Apple
supplies the motherboard, so unlike a "real"
clone, Apple can effectively control their
prices to not really threaten Apple-brand
computers.
Whatever you say, low-cost put-together
boxes with an Apple brand will attract
some users who really don't know enough to
not blame Apple when things go wrong. The
loss of reputation, through no fault of their
own, can be costly.
Want an Apple-branded peace of mind and top-of-the-line industrial design? Ah, gotta
pay extra for that. Allowing this venture to
live will probably be the best of both worlds,
rather than opening a new FrankenMac product
line.
I am curios as to if Widescreen is really a better format for things beside movies
It is better for everything intended for human
viewing, because it has to do with the way our
two eyes are arranged.
You can do this experiment with a friend. Look
straight ahead, and have your friend approach
on either side. Record the position where you
first see your friend. Repeat with top and
bottom edges of your vision, and you can
approximate the ideal aspect ratio for a display
screen.
The price of the dual 1.2 GHz kit is $1349, you could throw in 256 meg of ram and an 80 gig hard drive in for around 120 bucks, probably less.
$120 sounds about right. That makes it $1470.
Let's toss in some other essentials:
keyboard and mouse - a decent pair
might cost $50.
MacOS X - $130
Combo DVD/CDRW drive - $60
Radeon 9000 Pro (64 MB) - $76
which brings us to $1786. Compared to the
$1999 Apple box, the savings are just over
10%, ignoring all the non-downloadable
software that the Mac comes with.
The $1000 model provides more RAM and hard
disk space (and of course expandability)
than the comparatively-priced eMac, but
doesn't have a keyboard, mouse, monitor, or
OS, uses a less powerful graphics card and
has no combo drive. These will cost at least
another $300 or $400 to even out. The prices
are not competitive at all for somebody who
wants an eMac.
Essentially, this isn't really a way to build
a very cheap Mac. The target market must be
those with a very tight budget and require a
lot of expansion potential, or those who want
a PPC but not MacOS X.
Another tragic thing is that they didn't seem
to learn anything from Apple's superior case
design. It's hard to get to the motherboard,
and there are cables all over the place.
Hell, the handles on the G4 case are worth
money to me.
I'de love to move to a Mac, but it's just out of the question to pay that much for hardware that I'm locked into for a long time.
First of all, Macs tend to be usable for longer
than PCs, so a slower upgrade cycle mitigates
the higher upfront cost somewhat. Two, resale
values of Macs are much better than PCs (check
eBay, for example). Now, what you don't get is
a new toy as often as you used to, but upgrade
cycles can be terribly time consuming and
tedious, and occasionally risky. It's also
better for the environment to use your computer
longer.
Another question to ask yourself is,
honestly, what do you use your computer
for that you need all the power you can afford?
What do you do that "last year's computer"
(and Macs are not as far behind as many people
think) really really won't do? Is the speed
difference so crucial that it overrides all
the other benefits you notice with Macs?
Now, I'm not trying to conceal the raw speed
problem with Macs. I'm just trying to promote
a task-oriented view of computers. To give
a fictitious example, if your PC is 10% faster,
but crashes often and costs you about 50
minutes of productivity a day, then it's no
faster than another computer that is more
stable. The numbers are obviously made up,
but try to think in that direction rather than
just put specs up side by side.
I also think people become to dependent on the GUI editors. Instead of using one CSS file to handle formatting of content, people depend on DreamWeaver to replicate changes. May not sound significant, but when you have a large site, making one change is better than a hundred changes, even if it is automated.
Consider also the burden you're placing on
low-bandwidth, low-power, low-memory wireless
devices. A big slow site is a sure way to
turn away these customers.
It always amazes me that [...] there are
always those who feel technology should always
be reduced to the lowest common denominator so
every tom dick and harry can build enterprise
solutions.
Perhaps it's because the geeks would so much
rather stay up nights and write a program to
do it than meet you in person to provide a
valuable consulting service.
And it will be the end of virtually all Open Source.
If the legislators are smart, then they will
allow warranty disclaimers for free (or perhaps
very low cost) products. But yes, I share your
sense of caution.
Consider the massive costs of malpractice insurance: it's so bad right now doctors in entire states are striking in an effort to get the costs down.
This is a different question than just
mandatory warranties. The problem is that
victims of malpractice are awarded such big
sums that everybody has unaffordable premiums.
The solution is to fix the legal system, not
to exempt everybody from liability.
The only players left in the software market after this will be MS, IBM and a few other giants who can afford the costs
But there are still architects and doctors,
despite the lawsuits. I don't think the
picture is as bleak as you paint, although
I agree that some "shuffling" probably will
occur. What's the alternative, though? A
mature industry either establishes a
self-policing mechanism, or accepts government
regulation. Like I said, I think it's
inevitable.
If MS loses this, I see absolutely no way I could defend myself if, god forbid, a program I wrote or even maintained caused catastrophic dataloss, or in worse cases, physical injury.
You mean like a doctor or architect would have
to defend himself or herself against an error?
I think this future is inevitable.
I could never understand why people insist on
building machines that do something exactly the
way we do.
Calculators do not add the way we do, yet they
are immensely useful. Industrial robots are
usually not bipedal or even symmetric, yet they
are highly productive.
These solutions work because they are problem
oriented. A calculator that mimicked human
arithmetic would be significantly more expensive,
and probably slower.
Humans think the way we do because of our
unique talents and limitations. We do not
have perfect memory, so we don't rely on it
(and do long division on paper instead of
in our head). We can't keep too many details
straight, so we cannot look ahead in a chess
game too far or very accurately.
So why not let computers exploit what they're
good at?
they couldn't lock Linux out of their game-console, what makes them think they can lock it out of a desktop PC?!
How many million people are running Linux on
their X-Box? The "lock out" technology doesn't
have to be airtight, just complicated and
dangerous enough to deter most people. Microsoft
is well aware that Linux is growing readier for
the desktop, and one thing that will keep it
off the desktop of most people is if you have
to reflash your BIOS or solder a chip over it.
there is no need for more than 2^32 or roughly 4 billion instructions.
Huh? The 32-bits identify far more than the
op code. They typically specify the input
and output registers, as well as addressing
modes and such. It would be pretty wasteful -
okay, damned stupid - to devote 32 bits to the
op code.
Wages are sinking there because we weren't politically active.
No, wages are sinking because of the same old
boring factors of supply and demand.
Protectionist measures can mitigate the
problem by delaying the inevitable - for
example, to give workers time to retrain for
a different job. It cannot change the fact
that somebody in India or China is willing to
do the same job for less money. The work is
simply worth less money because of that.
access to resturant reviews would be nice, but whenever I'm out with my friends, we can come up with plenty of recomendations without the aid of a computer
Yes, but do you know if the restaurant you want
can accommodate you? What if you get to pick
a few restaurants, and tell your device to
reserve a table for six at the restaurants you
selected (in some priority) automatically?
What if you get to download today's menu
while your friend drives you all there? What
if you can order your food en route?
For all their inconvenience, a good map, guidebook, and phrasebook will cost you about $50 total and can fit in your pockets or a backpack.
And doesn't need a battery to work. Very
important limitation.:)
However, that backpack takes time to put
together. It takes pre-planning. The
wireless future in my mind is one where you
are free to not plan. "Find a good
mediterranean restaurant within ten blocks
we can eat at," I would say. The device
understands where we are, and what time it
is, and has the Network to query to find out
what it needs, and comes back to me with a
list of restaurants.
Try to follow the thread. I didn't say that
Software Update is some ultimate package
manager. I said it was easier to use, because
somebody was asking if there was anything
easier than apt-get. Some of the ease comes
from simplifying, and some of it comes from
providing better documentation. Either way,
Software Update is easier to use.
I'm not saying apt-get has a great
interface.
So what are we arguing about?:)
The granularity of Software Update is extremely crude. It doesn't update BIND or Sendmail, it has an "operating system" update. That's nothing like what Debian provides.
You need to ask what difference that makes to
the user. As long as I'm not forced to
re-download the entire BSD-land every time
I update the "operating system", why would I
care? Not having to care, easy.
What else does the computer need to know
other than I want package X installed? Do
I really have to personally approve
additional packages Y and Z, without which
X won't even install? Having to care, hard.
Now, as I repeatedly said, apt-get is a
wonderful foundation. But it's not easy to
use, so stop telling me how powerful it can
be if nobody needs that power at least 99%
of the time. Most of the time, I apt-get
update, apt-get upgrade, answer a number of
questions I've already answered before, and
hope none of my config files get clobbered.
Why do I have to do all that work? Because
it is hard to use.
[Application bundle] works okay for large, monolithic, proprietary applications.
Uh, no, they work very well for various
little games and utilities.
Personally, I have little desire to pay $30 a month to carry a WIFI computer around with me all of the time.
You raise two questions in one sentence.
First, the billing needs to be very convenient.
I shouldn't have to sign up before planning a
trip to Paris, and then cancel afterwards, or
deal with stupid minimum contracts. The bill
should be attached some regular bill, the way
GSM roaming charges your phone.
Secondly, the question is what the device you
carry can replace. A really good electronic
map, GPS, the ability to download information
like restaurant reviews, a phone, and a good
dictionary or phrase book could replace a
lot of other stuff you'd otherwise carry as
a tourist in France. It also allows you to
change your plans and go somewhere you did
not previously research, without risking
getting lost or hungry.
Absolutely right. Which is why you should
start immediately.
and perhaps requires interference in their gov. Their own govs don't want open thinking.
The US government doesn't want open thinking.
At least, no US citizen should simple assume
that his or her government wants that. The
various checks and balances, as well as the
Right to Bear Arms, are all leery of giving
such presuppositions of goodwill.
Question is, what right does another country
have to decide that too many Americans are
listening to the Fox News Channel, and
"interference" is required?
Sure, Software Update is easier, but it's nowhere near as powerful as apt-get.
That's irrelevant, unless you can prove that
the two are contradictory attributes.
that's because Software Update deals with such a small set of software that it can present the most simplistic interface and get away with it.
Care to back it up with a few examples? All
you've done is repeatedly assert that.
Here's where Debian's apt-get (the process, not
necessarily the program) can be improved to
make it easier to use:
Explain to me what improvements I'm
getting when I upgrade.
Explain to me which of several equivalent
options is best.
Let me know how much longer it will take
to finish the download.
Notify me when new versions of software
are available, particularly if it's
security related.
Don't bother me, by default, what
additional packages I'm required to install.
Now, do you think these things will make
apt-get easier to use? Does any of these
suggestions render apt-get less powerful?
If every piece of software on your computer was handled by Software Update it wouldn't be so easy anymore.
Apple uses Software Update to upgrade kernels,
daemons (Apache, Samba, BIND, and Sendmail are
recent examples), libraries (OpenSSL, several
times). It's not just used to upgrade a few
Apple applications. I have no reason to
believe they cannot update the entire OS
(except third-party apps) with it. Do you?
Now, one important difference is that Apple
doesn't supply every software package under
the sun. Debian's strength in this area is
also its weakness.
I know that it will be installed in the proper location, that it won't affect other software on the system, and that someone later can safely and cleanly remove it if they choose. MacOS X can't compare.
Are you familiar with the MacOS X "application
bundle"? Bundles can be copied anywhere
in the system, so there's no question of
"installed in the proper location". They are
self-contained, so they don't affect other
software. Cleanly remove? Drag it to the
trash can.
Because a competitive (which does not even necessarily equal "good") game must be timely. A FPS game with bitmapped monsters and no ability to look around freely, such as the original Doom, has no way to survive in the marketplace today even if it was free. Since commercial games are written full-time (more than full-time, in fact), part-time developers cannot keep pace.
Today's games also require the services of musicians and artists, who are quite accustomed to receiving payment for their talents.
A kernel is much more of a static target than a game. It is also a task that is far more parallelizable, because device drivers are essentially independent pieces of code. Even then, support for newer peripherals (such as USB, btw) tend to lag commercial OSes by a great deal.
This is not to say there can't be a free game that is imaginative enough to counteract the part-time limitation. However, gems like Tetris (easy to code, sells very well) simply don't show up every year.
I agree. A responsive server should constitute implicit permission to access everything except things that are cannot reasonably be public information. For example, you should be free to poke around www.bankofamerica.com, if it's open, but not download a file called "customer-information-SECRET.dat". The implicit permission cannot reasonably extend to that file.
Similarly, you may wander around the woods, and stray into somebody's private property. If there were no fences or markers, you should not be faulted for following a rabbit into private property. However, you do not have a similar implicit permission to open the door to the house, much less to look in their jewelry box.
Trivial passwords should fall into the same category
That's ridiculous. The range of possible passwords is a continuum. Where do you propose to draw the line between trivial and non-trivial passwords? Last I looked, a "stupid" victim doesn't excuse a crime.
I think that if you have an open port 80, and what appears to be a HTTP server responding to requests there, then you've implicitly allowed people to send it valid HTTP requests (as formally defined in W3C documents, or perhaps informally by vendor-specific extensions).
If your HTTP server has a bug, and a well-formed HTTP request crashes it, I think the "attacker" should generally not be liable. On the other hand, if you were sent an undocumented request that a reasonable client would not send, then the attacker should generally be liable. Certainly, a buffer-overflow attack, which includes CPU op-codes to overwrite the buffer, cannot be argued to be a reasonable HTTP request. A ping flood, while individually legal, does not serve any reasonable purpose in aggregate, and should therefore be illegal.
That is, if you were sent a well-formed HTTP request, it's your burden to prove ill intent. If you were sent an unreasonable HTTP request, it's the sender's burden to prove innocense.
What constitutes "implicit permission"? Is an open port 80 and a responsible HTTP server evidence of "implicit permission", until the web page asks for a password? How would I get to that page (and realize that my access is explicitly prohibited because I don't have a password) without "accessing"?
Don't split hairs about the meaning of authorized or access. Usually, if you're attempting unauthorized access, you know it.
That's not the problem. The problem is when somebody else thinks your accessing without authorization, and sues or arrests you. What if cnn.com suddenly switched to a pay model, and defined a HTTP GET from a non-paying customer as "unauthorized access"?
Somebody brought it up as a joke, but the act of slashdotting a server is similar in result as a DDoS attack, but only one should be illegal and punishable. That's the result of "splitting hairs".
I think I understand the confusion now. By "abstract", I'm talking about the programmer writing, for example:
without having to worry about whether "Container" is a linked list, array, hash table, or whatever. The implementation details are abstracted away. Now, "Container" is a powerful abstraction that allows the programmer to ignore how it really works, to concentrate on overall correctness. At the same time, it may be terribly inefficient on, say, a low-end CPU with no data cache.As cool as "Container" is, it costs nothing compared to the database engine that the SQL abstraction requires. For the task it is designed for, SQL will defeat any C or C++ solution in terms of ease and correctness. However, a custom C or C++ database engine can probably still be faster and leaner.
Let's take a simpler example: the C struct. It is an abstraction, because it allows the programmer to manipulate related data attributes as an entity. Without a struct, you'd have to use parallel arrays, and remember that first_name[i] is related to last_name[i], which can be error prone. However, structs may use more space (alignment issues), and may not be as cache efficient when searching through all the last names.
Compared to the usefulness of "Container" or struct, your implicit declaration idea is really pretty trivial to a programmer, in terms of bug avoidance. In fact, I'd go as far as saying it's useless in terms of bug avoidance. The truly useful abstractions, on the other hand, are costly.
All programming languages today trade their abstractions for time or space, or both. This is why it's important to have a variety of programming languages that cater to various levels of abstraction, rather than make all programming languages uniformly more abstract as you propose. Now, I look forward to a future where even very abstract languages can result in very small and very fast code, but that future is simply not here yet.
Yes, because while hacking can work very well for a single developer, it fails terribly when you have a team. If the design is not carefully and rigidly broken apart into digestable pieces first, with clear APIs separating your developers, what you end up with is a lot of misunderstandings, lost time, and wasted efforts. The paper design, when properly maintained, is crucial over the life cycle of the product, where you expect to have multiple maintainers. Finally, hacking is also much harder to manage, because you don't have a plan to compare progress against.
hacking is a legitimate technique that has advantages over the traditional, slower and possibly less flexible, software engineering moethods
Hacking is not a technique. It cannot really be taught to another programmer, as it involves little or no rules. In fact, you can say that hacking is precisely the lack of a technique. This freedom can be put to good use by a good programmer, but easily abused by everybody else to produce crappy software.
Says who?
Programming languages should fulfill the purpose they were designed for. To solve abstract problems, use an abstract language. To solve concrete problems, use a concrete language. A language should be judged by how well it solves a problem whose solution fits its designed level of abstraction. Even assembly language still has its place today.
Abstraction is a tool. It helps you ignore some details to ensure overall correctness. It is not an end in itself. When overdone, it can lead to unnecessarily complex and unacceptably inefficient code.
I've caught myself thinking much more clearly when I did not have to consider implementation details.
Right, but at some point you still have to. Idealized data structures often fall apart in real life when confronted with real memory or CPU constraints.
What do you think this is?! Apple supplies the motherboard, so unlike a "real" clone, Apple can effectively control their prices to not really threaten Apple-brand computers.
Whatever you say, low-cost put-together boxes with an Apple brand will attract some users who really don't know enough to not blame Apple when things go wrong. The loss of reputation, through no fault of their own, can be costly.
Want an Apple-branded peace of mind and top-of-the-line industrial design? Ah, gotta pay extra for that. Allowing this venture to live will probably be the best of both worlds, rather than opening a new FrankenMac product line.
It is better for everything intended for human viewing, because it has to do with the way our two eyes are arranged.
You can do this experiment with a friend. Look straight ahead, and have your friend approach on either side. Record the position where you first see your friend. Repeat with top and bottom edges of your vision, and you can approximate the ideal aspect ratio for a display screen.
$120 sounds about right. That makes it $1470. Let's toss in some other essentials:
- keyboard and mouse - a decent pair
might cost $50.
- MacOS X - $130
- Combo DVD/CDRW drive - $60
- Radeon 9000 Pro (64 MB) - $76
which brings us to $1786. Compared to the $1999 Apple box, the savings are just over 10%, ignoring all the non-downloadable software that the Mac comes with.The $1000 model provides more RAM and hard disk space (and of course expandability) than the comparatively-priced eMac, but doesn't have a keyboard, mouse, monitor, or OS, uses a less powerful graphics card and has no combo drive. These will cost at least another $300 or $400 to even out. The prices are not competitive at all for somebody who wants an eMac.
Essentially, this isn't really a way to build a very cheap Mac. The target market must be those with a very tight budget and require a lot of expansion potential, or those who want a PPC but not MacOS X.
Another tragic thing is that they didn't seem to learn anything from Apple's superior case design. It's hard to get to the motherboard, and there are cables all over the place. Hell, the handles on the G4 case are worth money to me.
Still, choice is good.
First of all, Macs tend to be usable for longer than PCs, so a slower upgrade cycle mitigates the higher upfront cost somewhat. Two, resale values of Macs are much better than PCs (check eBay, for example). Now, what you don't get is a new toy as often as you used to, but upgrade cycles can be terribly time consuming and tedious, and occasionally risky. It's also better for the environment to use your computer longer.
Another question to ask yourself is, honestly, what do you use your computer for that you need all the power you can afford? What do you do that "last year's computer" (and Macs are not as far behind as many people think) really really won't do? Is the speed difference so crucial that it overrides all the other benefits you notice with Macs?
Now, I'm not trying to conceal the raw speed problem with Macs. I'm just trying to promote a task-oriented view of computers. To give a fictitious example, if your PC is 10% faster, but crashes often and costs you about 50 minutes of productivity a day, then it's no faster than another computer that is more stable. The numbers are obviously made up, but try to think in that direction rather than just put specs up side by side.
Consider also the burden you're placing on low-bandwidth, low-power, low-memory wireless devices. A big slow site is a sure way to turn away these customers.
Perhaps it's because the geeks would so much rather stay up nights and write a program to do it than meet you in person to provide a valuable consulting service.
Only half kidding.
If the legislators are smart, then they will allow warranty disclaimers for free (or perhaps very low cost) products. But yes, I share your sense of caution.
Consider the massive costs of malpractice insurance: it's so bad right now doctors in entire states are striking in an effort to get the costs down.
This is a different question than just mandatory warranties. The problem is that victims of malpractice are awarded such big sums that everybody has unaffordable premiums. The solution is to fix the legal system, not to exempt everybody from liability.
The only players left in the software market after this will be MS, IBM and a few other giants who can afford the costs
But there are still architects and doctors, despite the lawsuits. I don't think the picture is as bleak as you paint, although I agree that some "shuffling" probably will occur. What's the alternative, though? A mature industry either establishes a self-policing mechanism, or accepts government regulation. Like I said, I think it's inevitable.
You mean like a doctor or architect would have to defend himself or herself against an error? I think this future is inevitable.
Calculators do not add the way we do, yet they are immensely useful. Industrial robots are usually not bipedal or even symmetric, yet they are highly productive. These solutions work because they are problem oriented. A calculator that mimicked human arithmetic would be significantly more expensive, and probably slower.
Humans think the way we do because of our unique talents and limitations. We do not have perfect memory, so we don't rely on it (and do long division on paper instead of in our head). We can't keep too many details straight, so we cannot look ahead in a chess game too far or very accurately.
So why not let computers exploit what they're good at?
How many million people are running Linux on their X-Box? The "lock out" technology doesn't have to be airtight, just complicated and dangerous enough to deter most people. Microsoft is well aware that Linux is growing readier for the desktop, and one thing that will keep it off the desktop of most people is if you have to reflash your BIOS or solder a chip over it.
Huh? The 32-bits identify far more than the op code. They typically specify the input and output registers, as well as addressing modes and such. It would be pretty wasteful - okay, damned stupid - to devote 32 bits to the op code.
No, wages are sinking because of the same old boring factors of supply and demand. Protectionist measures can mitigate the problem by delaying the inevitable - for example, to give workers time to retrain for a different job. It cannot change the fact that somebody in India or China is willing to do the same job for less money. The work is simply worth less money because of that.
Yes, but do you know if the restaurant you want can accommodate you? What if you get to pick a few restaurants, and tell your device to reserve a table for six at the restaurants you selected (in some priority) automatically? What if you get to download today's menu while your friend drives you all there? What if you can order your food en route?
For all their inconvenience, a good map, guidebook, and phrasebook will cost you about $50 total and can fit in your pockets or a backpack.
And doesn't need a battery to work. Very important limitation. :)
However, that backpack takes time to put together. It takes pre-planning. The wireless future in my mind is one where you are free to not plan. "Find a good mediterranean restaurant within ten blocks we can eat at," I would say. The device understands where we are, and what time it is, and has the Network to query to find out what it needs, and comes back to me with a list of restaurants.
I'm not saying apt-get has a great interface.
So what are we arguing about? :)
The granularity of Software Update is extremely crude. It doesn't update BIND or Sendmail, it has an "operating system" update. That's nothing like what Debian provides.
You need to ask what difference that makes to the user. As long as I'm not forced to re-download the entire BSD-land every time I update the "operating system", why would I care? Not having to care, easy.
What else does the computer need to know other than I want package X installed? Do I really have to personally approve additional packages Y and Z, without which X won't even install? Having to care, hard.
Now, as I repeatedly said, apt-get is a wonderful foundation. But it's not easy to use, so stop telling me how powerful it can be if nobody needs that power at least 99% of the time. Most of the time, I apt-get update, apt-get upgrade, answer a number of questions I've already answered before, and hope none of my config files get clobbered. Why do I have to do all that work? Because it is hard to use.
[Application bundle] works okay for large, monolithic, proprietary applications.
Uh, no, they work very well for various little games and utilities.
You raise two questions in one sentence.
First, the billing needs to be very convenient. I shouldn't have to sign up before planning a trip to Paris, and then cancel afterwards, or deal with stupid minimum contracts. The bill should be attached some regular bill, the way GSM roaming charges your phone.
Secondly, the question is what the device you carry can replace. A really good electronic map, GPS, the ability to download information like restaurant reviews, a phone, and a good dictionary or phrase book could replace a lot of other stuff you'd otherwise carry as a tourist in France. It also allows you to change your plans and go somewhere you did not previously research, without risking getting lost or hungry.
Absolutely right. Which is why you should start immediately.
and perhaps requires interference in their gov. Their own govs don't want open thinking.
The US government doesn't want open thinking. At least, no US citizen should simple assume that his or her government wants that. The various checks and balances, as well as the Right to Bear Arms, are all leery of giving such presuppositions of goodwill.
Question is, what right does another country have to decide that too many Americans are listening to the Fox News Channel, and "interference" is required?
That's irrelevant, unless you can prove that the two are contradictory attributes.
that's because Software Update deals with such a small set of software that it can present the most simplistic interface and get away with it.
Care to back it up with a few examples? All you've done is repeatedly assert that.
Here's where Debian's apt-get (the process, not necessarily the program) can be improved to make it easier to use:
- Explain to me what improvements I'm
getting when I upgrade.
- Explain to me which of several equivalent
options is best.
- Let me know how much longer it will take
to finish the download.
- Notify me when new versions of software
are available, particularly if it's
security related.
- Don't bother me, by default, what
additional packages I'm required to install.
Now, do you think these things will make apt-get easier to use? Does any of these suggestions render apt-get less powerful?If every piece of software on your computer was handled by Software Update it wouldn't be so easy anymore.
Apple uses Software Update to upgrade kernels, daemons (Apache, Samba, BIND, and Sendmail are recent examples), libraries (OpenSSL, several times). It's not just used to upgrade a few Apple applications. I have no reason to believe they cannot update the entire OS (except third-party apps) with it. Do you?
Now, one important difference is that Apple doesn't supply every software package under the sun. Debian's strength in this area is also its weakness.
I know that it will be installed in the proper location, that it won't affect other software on the system, and that someone later can safely and cleanly remove it if they choose. MacOS X can't compare.
Are you familiar with the MacOS X "application bundle"? Bundles can be copied anywhere in the system, so there's no question of "installed in the proper location". They are self-contained, so they don't affect other software. Cleanly remove? Drag it to the trash can.
You missed the part in my post where I explained this is MacOS X, but yes, only Apple software has this feature.
apt works for thousands of software packages.
So? We're talking about whether apt-get can be easier. It can.
BTW there is nothing preventing you from putting apt-get update && apt-get upgrade in cron.
Why should I have to do any work? (Remember we're talking about ease of use.)