Logging or journaling is an effective technique
in implementing a flash file system, but it's not
the only way. For example, systems using a
flash translation layer can support a conventional
file system like FAT on top of it.
This means the only really useful filesystem
is LFS...
JFFS is the Journaling Flash File System developed by Axis Communications in Sweden,
aimed at providing a crash/powerdown-safe
filesystem for disk-less embedded devices.
It is released under the GPL, and the current
version works for the Linux 2.0 kernel series
and memory-mapped industry-standard flash-memories (aka NOR-flashes).
I freely admit I pulled my answer right
out of my arse, but I have a feeling you
did too.
No, yerricde knows quite a bit more than you
do about this topic.
There are two main types of flash memory,
the NOR flash and the NAND flash. Here are
the similarities:
They are non-volatile.
You can write in small chunks (even as
small as one byte), but you can erase only
in large chunks (as much as 100K).
Writing refers to changing a bit from
the erased state to the opposite state. You
cannot reset that bit back to the erased
state without the bulk erase.
It wears out after a number of erases,
much sooner than hard disks wear out.
Reading is fastest. Writing is much
slower than reading. Erasing is much slower
than writing.
The main differences are:
NOR flash erases to 1, and NAND flash
erases to 0.
NOR flash tend to have a smaller minimum
write block size, while NAND flash tend to
have a smaller minimum erase block size.
NOR flash don't tend to need error
correction.
I think NAND flash tend to be
cheaper.
Therefore, unless you're storing simple
information (infrequently-changing things
like game save data, or configurations), you
need a real flash file system. Simply using
something like FAT16 or ext2 directly on
flash will fail miserably. Check out JFFS for a journaling flash file system
for Linux.
What you're missing is that Apple sells
quiet machines that last, and their customers
ARE willing to pay for that
No, I can hardly miss that point, because I
just bought a G4 tower.:)
When I say "customers", I'm referring to the
90% (or whatever) of people who decide how
most PCs are made.
Disposable computers are bad for the
environment and wrong-headed when we have
so many people in need of computers
I agree with you, but you are no longer
discussing engineering. The manufacturer
must set this as a goal before engineering
a product.
We know how to make computers that last.
There's just not that much money (imagine
trying to compete with Apple for this
segment) in it, yet.
Gateway has a 70-watt 2.8GHz CPU with a
huge fan and the iMac has a 15-watt, 800MHz
CPU with a fan that's quieter than a hard
drive. THAT is engineering.
Here, I disagree with your choice of words.
Engineering is accomplishing what is required
while consuming the least amount of resources.
Apple computers are quieter because Apple and
its customers require it to be, and they may
be more expensive partly because of that.
The Gateway is noisy because Gateway and its
customers did not require it to be quiet.
Neither is poorly engineered. They simply
have different requirements. Imagine a
noisy Apple or a quiet but more expensive
Gateway - they'd likely both fail in their
respective marketplaces.
Using fans is the cheaters way out or the
cheap way out.
I do not understand your disdain. This is
engineering we're talking about, so it's
strictly cost versus benefit. The benefit
of using a fan is lower cost and easier
design. The cost is customer annoyance,
and presumably a lower lifetime (heatsinks
don't really break).
Customers have proven over and over that
they are willing to stand the noise for a
cheaper PC. Something that extends the
life of a PC "robs" the vendor of another
purchase soon. The "cheaters way out" you
speak of is, in fact, sound engineering.
It always boils down to two things for them,
money and re-election. The whole thing makes
me sick.
Why not just ignore their characters, don't
think of them as leaders or even models,
and just vote for the one who votes for the
issues you like?
All of a sudden, special interests can no
longer sway legislation to the same degree,
because no matter how much money they
spend on a politician, someone who votes
for an unpopular bill loses next time. All of
a sudden, the special interests need to lobby
the voters, not the politicians. And that's a
good thing.
What I'd like to see is for the media to come
up with easy comparison charts (think PC
Magazine on inkjet printers) for the lazy
voters. You could have issues like
environmental protection or education in
each row, and politicians in each column.
At least with OSS, you've got choices. You wait around for the official patch while hoping that nothing bad happens in the meantime,
Then the difference is between Microsoft and
Red Hat, not between open and closed
source. RH can get sloppy and slow down,
Microsoft can speed up.
or play virtual whac-a-mole chasing bugs
[...].
This is what I mean by "this power costs
money." You need to be able to afford a
person who knows how to do this.
Either way, holes get plugged, with
varying levels of expertise and wait-time
required.
Yes, I am merely pointing out that with these
varying levels of expertise comes varying
price tags. I'm pointing out that while you
can get better security with open source
software in theory, in practice you have to
pay more for that higher level of security.
Do you see me classify Microsoft as a
"responsible commercial outfit" anywhere?
Why are you advocates comparing the
quality of your software to Microsoft's? Is
that the purpose - to create the same crap
for cheaper?
Pointing out that a system is not without cost
is not the same as advocating the opposite.
Maybe, just maybe, I'm implying that the cost
should be borne if you want that level of
security.
I wasn't saying they shouldn't be well paid,
just that security is not inherent in the
use of open source software. The software
must be coupled with a highly paid
programmer/administrator to reach that higher
level of security that is not possible with
closed source software.
It is very possible that this higher level
of security will actually cost more money.
If the system is designed correctly, it
will need very little QA. I know this
because some systems can never get it right,
no matter how much QA go into them, because
of fundamuntal design flaws.
Uh, QA is precisely that process that tells
you - assures you - that the design
and implementation were correct.
The link you are looking for is here. It is
instructive to examine the file name that
cnn.com used - "fla.terror.students". I'm
sure CNN means nothing by it, but this is
likely the label they may have to carry for
a long while.
That's where the power lies -- often, when
a vulnerability is discovered, a report is
sent out including exploit code and a patch
to correct the issue.
This power costs money. The administrator
would have to download the sources, apply
the patch, and - most importantly - configure
the build so that the proper things get built
and other bits get left out. Getting a live
server back takes more than just typing./configure. IOW, you need a smarter and
therefore more expensive administrator to
actually enjoy this power.
That's what makes open source software
overall more secure -- the turnaround time
with patches is a lot faster.
I am very grateful for all the open source
software I've ever used, but I must point
out that this turnaround time usually doesn't
include what a responsible commercial outfit
would call QA.
For KDE, you can just download the latest
version or get it from a friend.
Uh, no. On Debian, getting the latest
version of KDE basically meant that you had
to leave the Potato release and move to the
Woody release. Security-related bugs are
backported to earlier releases (and only to
the stable release, not all previous releases)
via a separate mechanism. Consider that
Debian doesn't even have any real financial
incentive to move people from Potato to
Woody, and then think about a company like
Red Hat or Microsoft.
I'm not saying that Microsoft is right at
all. I'm saying that under the current
way we pay for software, users of old software
will be left out in the cold either
deliberately or not.
This is a rock and a hard place for any
software vendor, including Microsoft. Using
Word as an example, most users would probably
be quite happy with its features from five
years ago. Not fixing bugs in old software
means you lose some customer goodwill, while
fixing the bugs and upgrading old software
to new operating systems means that some
people will (rightfully) never buy another
copy.
So you try to get customers to pay for bug
fixes and minor upgrades to old software -
the subscription model - and people don't
seem to like that either.
There's plenty to dislike about Microsoft,
but what are they supposed to use as a
business model anyway?
I have told the boss(es) multiple times
what the tradeoffs were. They didn't care.
I empathize, but I hope these experiences do
not stop you from continuing to tell your
future bosses what the tradeoffs are.
In my mind, the engineer (loosely defined as
an expert responsible for a technological
solution to a real world problem) has the
responsibility to produce what the paying
customer wants, as well as advising the
customer on what he doesn't even know he
wants. Your opinion may not be accepted,
but that doesn't remove your responsibility
to state it at least once, especially when
they're "throwing away money" by losing
customers with obscure browsers. You would
expect nothing less of your doctor or
architect or plumber.
As an aside, there are more than the three
choices you cite. There is a near infinite
continuum between "support only major
browsers" and "lowest common denominator".
For example, it's one thing to use a GIF
image (excluding text mode browsers), but
you can soften the blow with a short textual
description of what the graphic is.
...Taiwan and the US are still subject to
terms of their mutual defense treaty, signed
as part of US switching diplomatic recognition
to the PRC in 1979.)
This is not accurate. The law you are talking
about is the Taiwan Relations Act, which
requires the US government to provide Taiwan
with the means to protect itself. The US
has deliberately been vague about whether it
will use US troops in any such conflict or
not.
In practice, this meant that when the US
finally decided to sell the F-16 to Taiwan,
it was an upgraded form of the F-16A and
F-16B, which did not have ground attack
capability like the models the US is using.
The ground attack feature was deemed to be
offensive in nature*. Similarly, the US had
no problems selling the Patriot missile
system, which is obviously defensive in
nature.
A mutual defense treaty requires both
parties to act in each other's defense. The
US would then be obligated to send US troops.
* Weapons of war, of course, don't really
have natures as politicians seem to imagine.
The ground attack capability, in the case of
Taiwan, is obviously useful in a defensive
capacity if the Chinese manage to land an
invasion force on Taiwan.
Perhaps because they are no longer trying to
conquer the world. There is a comfortable
niche in developing a better (subjective opinion
of their users) product for a premium price.
Lots of people pay $40,000 for a car that
duplicates the functions of a $10,000 one
"But the two cars are not the same," you might
protest. Exactly.
Beta software, by definition, should not be
barely tested. In fact, beta software should
be feature complete, basically working and
usable. This means that it has gone through
unit level testing, integration testing, and
functional tests.
In other words, the only remaining unknown
bugs are those that can only reasonably be
discovered by actual volunteer users in real
world situations. These users, called beta
testers, generally do not have the ability
to diagnose or fix any problems they find.
In still other words, beta software are
already candidates for final release.
This is of course only theory, and organizations
do differ on what is considered beta. However,
no commercial outfit would release "barely
tested" code to beta testers.
Noted Professor Jeffrey Ullman also wrote a
paper called
Ordinary Skill in the Art. His conclusions
are:
The patenting of algorithms and the software that embodies them leads to inequities as often as it protects true innovation and genuine innovators.
The standards for innovation set by the CS Theory community should be given more weight when deciding the validity of a software patent.
There should be an effort to educate the courts on the distinct nature of innovation in computer software, and to help distinguish innovation from wishful thinking or the fantasies of people who are unaware of the state of knowledge.
He has been involved in many patent-related
cases, and is recognized as an expert
witness in these cases.
It is a logical and physical way to break
up your code.
True, but it is not the only logical way to
break up code. For example, consider the
following functions: main function A, which
calls B and C. B is sizable, so it was broken
down to call B2, B3, and B4. C is similarly
broken down into C2 and C3. A flat file
cannot physically represent the "sibling"
relationship between B and C, and the
"parent-child" relationship between B and
B2/B3/B4.
Another example is object-oriented code.
In C++, for example, you are encouraged to
declare variables as "private", and provide
an accessor function to read their values.
However, this leads to a large number of
functions that contain nothing more than
a "return" statement. It may help readability
if these can simply be hidden from view.
Yet another example: flat file comments have
the problem of getting in the way of code,
as well as not being able to precisely
point at the code they describe.
You can argue that a good GUI can hide many
of the defects of a flat file structure from
the user, and you'd be right. However, the
fact that defects can be worked around doesn't
mean there was no defect, or that changing
the fundamental underlying mechanism is not
a good idea.
Currently this is considered the "proper"
way to do it.
Are you actually hiding behind the
ineffectiveness of your government (which you
probably criticize elsewhere) to avoid being
a responsible consumer?
Currently, there is no requirement for a
manufacturer to recycle the equipment at all,
much less any requirement on what constitutes
proper disposal. The only possible way this
doesn't result in disaster is if the consumer
takes the initiative, and demands (with
selective purchases) that manufacturers offer
"proper" recycling.
...if some poor fool tries to sue over
his VM idea being used in Linux, then Tux's
Uncle IBM will drop mention of the umpty-
three bajillion silly IBM patents they're
violating
Ahh, so it's okay to use stupid patents
against people who threaten Linux with
stupid patents. Got it.
Oh, wait, what about the free software
project that doesn't have Uncle IBM behind
it?
As the recent BT case shows, the patent courts are more reasonable than the average Slashdot loonet thinks they are.
Even then, how sure are you that the Linux
kernel doesn't infringe on any non-obvious patents? Linus has admitted
publicly that he doesn't know (and doesn't
want to know). Do you know better?
Software patents cannot be ignored. They
mostly need to be destroyed, because the
sheer volume of obvious garbage patents
make it virtually impossible to audit any
real body of code for actual violations.
of a test preparation company. Where did they get this name? It doesn't seem to be a dictionary word.
Logging or journaling is an effective technique in implementing a flash file system, but it's not the only way. For example, systems using a flash translation layer can support a conventional file system like FAT on top of it.
JFFS is the Journaling Flash File System developed by Axis Communications in Sweden, aimed at providing a crash/powerdown-safe filesystem for disk-less embedded devices. It is released under the GPL, and the current version works for the Linux 2.0 kernel series and memory-mapped industry-standard flash-memories (aka NOR-flashes).
No, yerricde knows quite a bit more than you do about this topic.
There are two main types of flash memory, the NOR flash and the NAND flash. Here are the similarities:
- They are non-volatile.
- You can write in small chunks (even as
small as one byte), but you can erase only
in large chunks (as much as 100K).
- Writing refers to changing a bit from
the erased state to the opposite state. You
cannot reset that bit back to the erased
state without the bulk erase.
- It wears out after a number of erases,
much sooner than hard disks wear out.
- Reading is fastest. Writing is much
slower than reading. Erasing is much slower
than writing.
The main differences are:Therefore, unless you're storing simple information (infrequently-changing things like game save data, or configurations), you need a real flash file system. Simply using something like FAT16 or ext2 directly on flash will fail miserably. Check out JFFS for a journaling flash file system for Linux.
No, I can hardly miss that point, because I just bought a G4 tower. :)
When I say "customers", I'm referring to the 90% (or whatever) of people who decide how most PCs are made.
Disposable computers are bad for the environment and wrong-headed when we have so many people in need of computers
I agree with you, but you are no longer discussing engineering. The manufacturer must set this as a goal before engineering a product.
We know how to make computers that last. There's just not that much money (imagine trying to compete with Apple for this segment) in it, yet.
Gateway has a 70-watt 2.8GHz CPU with a huge fan and the iMac has a 15-watt, 800MHz CPU with a fan that's quieter than a hard drive. THAT is engineering.
Here, I disagree with your choice of words. Engineering is accomplishing what is required while consuming the least amount of resources. Apple computers are quieter because Apple and its customers require it to be, and they may be more expensive partly because of that. The Gateway is noisy because Gateway and its customers did not require it to be quiet.
Neither is poorly engineered. They simply have different requirements. Imagine a noisy Apple or a quiet but more expensive Gateway - they'd likely both fail in their respective marketplaces.
I do not understand your disdain. This is engineering we're talking about, so it's strictly cost versus benefit. The benefit of using a fan is lower cost and easier design. The cost is customer annoyance, and presumably a lower lifetime (heatsinks don't really break).
Customers have proven over and over that they are willing to stand the noise for a cheaper PC. Something that extends the life of a PC "robs" the vendor of another purchase soon. The "cheaters way out" you speak of is, in fact, sound engineering.
Why not just ignore their characters, don't think of them as leaders or even models, and just vote for the one who votes for the issues you like?
All of a sudden, special interests can no longer sway legislation to the same degree, because no matter how much money they spend on a politician, someone who votes for an unpopular bill loses next time. All of a sudden, the special interests need to lobby the voters, not the politicians. And that's a good thing.
What I'd like to see is for the media to come up with easy comparison charts (think PC Magazine on inkjet printers) for the lazy voters. You could have issues like environmental protection or education in each row, and politicians in each column.
Then the difference is between Microsoft and Red Hat, not between open and closed source. RH can get sloppy and slow down, Microsoft can speed up.
or play virtual whac-a-mole chasing bugs [...].
This is what I mean by "this power costs money." You need to be able to afford a person who knows how to do this.
Either way, holes get plugged, with varying levels of expertise and wait-time required.
Yes, I am merely pointing out that with these varying levels of expertise comes varying price tags. I'm pointing out that while you can get better security with open source software in theory, in practice you have to pay more for that higher level of security.
Do you see me classify Microsoft as a "responsible commercial outfit" anywhere? Why are you advocates comparing the quality of your software to Microsoft's? Is that the purpose - to create the same crap for cheaper?
Pointing out that a system is not without cost is not the same as advocating the opposite. Maybe, just maybe, I'm implying that the cost should be borne if you want that level of security.
I wasn't saying they shouldn't be well paid, just that security is not inherent in the use of open source software. The software must be coupled with a highly paid programmer/administrator to reach that higher level of security that is not possible with closed source software.
It is very possible that this higher level of security will actually cost more money.
If the system is designed correctly, it will need very little QA. I know this because some systems can never get it right, no matter how much QA go into them, because of fundamuntal design flaws.
Uh, QA is precisely that process that tells you - assures you - that the design and implementation were correct.
The link you are looking for is here. It is instructive to examine the file name that cnn.com used - "fla.terror.students". I'm sure CNN means nothing by it, but this is likely the label they may have to carry for a long while.
This power costs money. The administrator would have to download the sources, apply the patch, and - most importantly - configure the build so that the proper things get built and other bits get left out. Getting a live server back takes more than just typing ./configure. IOW, you need a smarter and
therefore more expensive administrator to
actually enjoy this power.
That's what makes open source software overall more secure -- the turnaround time with patches is a lot faster.
I am very grateful for all the open source software I've ever used, but I must point out that this turnaround time usually doesn't include what a responsible commercial outfit would call QA.
Uh, no. On Debian, getting the latest version of KDE basically meant that you had to leave the Potato release and move to the Woody release. Security-related bugs are backported to earlier releases (and only to the stable release, not all previous releases) via a separate mechanism. Consider that Debian doesn't even have any real financial incentive to move people from Potato to Woody, and then think about a company like Red Hat or Microsoft.
I'm not saying that Microsoft is right at all. I'm saying that under the current way we pay for software, users of old software will be left out in the cold either deliberately or not.
So you try to get customers to pay for bug fixes and minor upgrades to old software - the subscription model - and people don't seem to like that either.
There's plenty to dislike about Microsoft, but what are they supposed to use as a business model anyway?
All I want for now is a compiler that will actually go add that fscking semicolon rather than tell me it's missing.
I empathize, but I hope these experiences do not stop you from continuing to tell your future bosses what the tradeoffs are.
In my mind, the engineer (loosely defined as an expert responsible for a technological solution to a real world problem) has the responsibility to produce what the paying customer wants, as well as advising the customer on what he doesn't even know he wants. Your opinion may not be accepted, but that doesn't remove your responsibility to state it at least once, especially when they're "throwing away money" by losing customers with obscure browsers. You would expect nothing less of your doctor or architect or plumber.
As an aside, there are more than the three choices you cite. There is a near infinite continuum between "support only major browsers" and "lowest common denominator". For example, it's one thing to use a GIF image (excluding text mode browsers), but you can soften the blow with a short textual description of what the graphic is.
This is not accurate. The law you are talking about is the Taiwan Relations Act, which requires the US government to provide Taiwan with the means to protect itself. The US has deliberately been vague about whether it will use US troops in any such conflict or not.
In practice, this meant that when the US finally decided to sell the F-16 to Taiwan, it was an upgraded form of the F-16A and F-16B, which did not have ground attack capability like the models the US is using. The ground attack feature was deemed to be offensive in nature*. Similarly, the US had no problems selling the Patriot missile system, which is obviously defensive in nature.
A mutual defense treaty requires both parties to act in each other's defense. The US would then be obligated to send US troops.
* Weapons of war, of course, don't really have natures as politicians seem to imagine. The ground attack capability, in the case of Taiwan, is obviously useful in a defensive capacity if the Chinese manage to land an invasion force on Taiwan.
Perhaps because they are no longer trying to conquer the world. There is a comfortable niche in developing a better (subjective opinion of their users) product for a premium price.
Lots of people pay $40,000 for a car that duplicates the functions of a $10,000 one "But the two cars are not the same," you might protest. Exactly.
Beta software, by definition, should not be barely tested. In fact, beta software should be feature complete, basically working and usable. This means that it has gone through unit level testing, integration testing, and functional tests.
In other words, the only remaining unknown bugs are those that can only reasonably be discovered by actual volunteer users in real world situations. These users, called beta testers, generally do not have the ability to diagnose or fix any problems they find.
In still other words, beta software are already candidates for final release.
This is of course only theory, and organizations do differ on what is considered beta. However, no commercial outfit would release "barely tested" code to beta testers.
-
The patenting of algorithms and the software that embodies them leads to inequities as often as it protects true innovation and genuine innovators.
-
The standards for innovation set by the CS Theory community should be given more weight when deciding the validity of a software patent.
-
There should be an effort to educate the courts on the distinct nature of innovation in computer software, and to help distinguish innovation from wishful thinking or the fantasies of people who are unaware of the state of knowledge.
He has been involved in many patent-related cases, and is recognized as an expert witness in these cases.True, but it is not the only logical way to break up code. For example, consider the following functions: main function A, which calls B and C. B is sizable, so it was broken down to call B2, B3, and B4. C is similarly broken down into C2 and C3. A flat file cannot physically represent the "sibling" relationship between B and C, and the "parent-child" relationship between B and B2/B3/B4.
Another example is object-oriented code. In C++, for example, you are encouraged to declare variables as "private", and provide an accessor function to read their values. However, this leads to a large number of functions that contain nothing more than a "return" statement. It may help readability if these can simply be hidden from view.
Yet another example: flat file comments have the problem of getting in the way of code, as well as not being able to precisely point at the code they describe.
You can argue that a good GUI can hide many of the defects of a flat file structure from the user, and you'd be right. However, the fact that defects can be worked around doesn't mean there was no defect, or that changing the fundamental underlying mechanism is not a good idea.
Are you actually hiding behind the ineffectiveness of your government (which you probably criticize elsewhere) to avoid being a responsible consumer?
Currently, there is no requirement for a manufacturer to recycle the equipment at all, much less any requirement on what constitutes proper disposal. The only possible way this doesn't result in disaster is if the consumer takes the initiative, and demands (with selective purchases) that manufacturers offer "proper" recycling.
Ahh, so it's okay to use stupid patents against people who threaten Linux with stupid patents. Got it.
Oh, wait, what about the free software project that doesn't have Uncle IBM behind it?
As the recent BT case shows, the patent courts are more reasonable than the average Slashdot loonet thinks they are.
Even then, how sure are you that the Linux kernel doesn't infringe on any non-obvious patents? Linus has admitted publicly that he doesn't know (and doesn't want to know). Do you know better?
Software patents cannot be ignored. They mostly need to be destroyed, because the sheer volume of obvious garbage patents make it virtually impossible to audit any real body of code for actual violations.