Australian steel producers are not subsidized, they are just very efficient. When they started getting too much of the market, the tarrifs soon followed.
It's not always the case that tarrifs are applied appropriately.
Yes, but just wait until we get an Interplanetary Internet. Then you'll have to start mapping IP addresses to the surface area of all the other planets as well, and that's sure to thin things out a bit.
do they use comparisons ("fewer") when they don't compare it to anything!
"The shrinking pool Asia's plight is especially dire because the region was assigned fewer addresses under the current IPv4 (version 4) scheme, drawn up over 20 years ago."
I have yet to meet a real customer that will actually wait longer and pay more for a higher quality system.
The esteemed Henry Spencer (unix guru and all round clever guy) once commented on reliability...
(sci.space.tech, 18th Nov, 1999)
"I recall a discussion, some years ago, between folks involved with two different operating systems (neither of which is around today, due to larger issues like corporate mergers and bankruptcies). It went about like this:
X: "We've asked the customers where they'd put development money if they were allocating it, and none of them would put much on greater system reliability, so we decided that this was not a priority."
Y: "We got the same answers, but decided that they didn't tell the whole story, and we mounted a big push on improving reliability in general and chasing down the last lingering kernel bugs in particular. This has paid off HANDSOMELY, both in glowing reputation and in simpler troubleshooting (because large parts of the system are now very unlikely to be the source of a new problem). Reliability is more important than it looks."
You propose 2 choices - wait longer and pay more, or pay less for the cheaper/sooner.
I choose option 3 - don't code in C. It really is an imperfect tool that doesn't help you. Code in a language that supports you, is (as) quick as C and does a better job.
Yes, C is your wet dream come true. It's so fast that they had to add the "restrict" keyword so that for the first time -ever- it could have a decent range of optimisations applied by the compiler, now that it finally knew there were no aliasing problems.
There are other languages around that do as well as C, but -are- -safer-.
>I agree 100%. But at that point we have gone beyond the issue I was responding to (i.e. that type-safe languages can prevent array indexing errors).
There are few Languages that will prevent array indexing errors. But even in straight C I can come up with methods, or libraries which if used in lieu of direct access would never index outside of array bounds or raise an exception.
People won't use them though, because the vast majority of libraries won't use them. The C culture is to ignore tricks like this (safety), so I doubt it would have much affect.
>So, rather than switch languages, we just put the work back on the programmer to get it right by design not hope the compiler will save him/her.
I'm not sure if you are being sarcastic, but -I- want the compiler to save me. I can make enough mistakes on my own without asking the compiler to not check things for me.
Ada allows you to create range checked versions of discrete types - the subtypes.
subtype Months is Integer range 1..12;
function Month (D : Date) return Months is...
now : Months:= Month (Today);
Because you have specified that the function Month returns a constrianed type (constrained because it can only have certain values) the assignment to "Now" doesn't have to be checked - there is no way that it can overflow.
Another interesting feature of subtypes is that you can use them as the specified index for an array (yay! not every array starts at 0!:-)...
type Rainfall is array (Months) of Natural;
(Natural is another subtype, which goes from 0 to the largetst integer). You can then process the array...
R : Rainfall;
for i in R'range loop
r (i):= 0;
end loop;
- no checking, no errors - it always works. I use Ada to code up CGI programs, and it is very easy. It's got good string manipulation, and if you step off the end of an array you get an exception.
Being able to distinguish between different integer types is one good example.
Languages abstract upwards, from bits to bytes, then to ints, chars, floats, and that's typically where they stop.
Ada however allows you to abstract further - to divide the predefined types into different realms...
type Weight is new Integer range 0..300; type Height is new Integer range 0..200;
You can declare variables of these types, but you can't -accidentally- (note that word!) mix them in an expression.
They are considered different types by the language, and intermingling is diagnosed as a fatal error. You can of course do type conversions (casts) so that...
W : Weight:= 100; H : Height:= 100; BodyMassIndex : integer;
BodyMassIndex:= Integer ( W + Weight (H)); -- fake algorithm
This is just one example of a few.
Be warned though - although most of Ada is easy to read, there are parts of the language which are confusing.
Languages are made (or should be!) to make it -easier- for people, not harder.
Why not have the language specify array bounds detection, -and- a mechanism for turning it off when you want to.
This gives you all of the goodness associated with checking for 0 development cost. Also the compiler is able to decide when array bounds checking is not needed (if it can see that you are iterating over a fixed length array) which is robust in the face of code change.
I'll use your last comment to justify my position.... "That way, there is no 'invisible' overhead in code where those extra few cycles *do* matter. It's not 'stupid', it's just simple."
It can't get much simpler than asking the compiler to insert the code itself.
>Compile code with Purify on? You've never written a >program in your life have you? And needless to say, >you've never use Purify either.
Ok, semantic error (silly me! I should have written more carefully). Change it to "Use a tool similar to Purify that provides run time bounds checking:.
...stupid languages like C don't do array bounds checking. Compile all your code with Purify on, or use a language with checking, and you'll be a whole lot safer.
Who cares if it takes a few cycles more - for almost all applications is just isn't going to matter, and you can sit back and -relax- rather than having to deal with the next patch to fix a newly discovered hole.
Ada is also being ported to OS X, and can be viewed as an industrialised Pascal. OO, multithreading, good support for low level access and interfacing to other languages. It's a pretty easy step to translate Pascal code to Ada (can be done automatically).
Ada is certainly better than C for writing code; probably not as flexible as Objective-C.
People inside the matrix should be able to determine that they are living inside a machine.
The pods are spaced some distance apart so there would be delays in communication b/w people. If that happens then people who "live" far apart in the machine meet (perhaps they bump into each other on holidays) could notice latency in their conversation.
What about researchers who do experiments on the speed of light! Surely they would notice a discrepancy.
I suppose in the matrix the whackos are right - all of NASA's moon landings would be faked.
Try ACT (Ada Core Technologies) who make all of their software GPL. A really interesting privately owned company that -makes- money from the service market.
It's not always the case that tarrifs are applied appropriately.
The requirements should be framed around...
- open data formats
- functionality
- cost
Do you think OS can't compete on these grounds?"Also, i wouldn't count on Apple calling it a G5, as apple might go back to calling their chips by their developed name...ie-970 "
:-)
Maybe they should call it the G64. Hmmm, then again it does sound a lot like the C64, which is probably not the *best* move they could make
Yes, but just wait until we get an Interplanetary Internet. Then you'll have to start mapping IP addresses to the surface area of all the other planets as well, and that's sure to thin things out a bit.
do they use comparisons ("fewer") when they don't compare
it to anything!
"The shrinking pool Asia's plight is especially dire because the region was assigned fewer addresses under the current IPv4 (version 4) scheme, drawn up over 20 years ago."
Grrrr!
I have yet to meet a real customer that will actually wait longer and pay more for a higher quality system.
The esteemed Henry Spencer (unix guru and all round clever guy) once commented on reliability...
(sci.space.tech, 18th Nov, 1999)
"I recall a discussion, some years ago, between folks involved with two
different operating systems (neither of which is around today, due to
larger issues like corporate mergers and bankruptcies). It went about
like this:
X: "We've asked the customers where they'd put development money if they
were allocating it, and none of them would put much on greater system
reliability, so we decided that this was not a priority."
Y: "We got the same answers, but decided that they didn't tell the whole
story, and we mounted a big push on improving reliability in general and
chasing down the last lingering kernel bugs in particular. This has paid
off HANDSOMELY, both in glowing reputation and in simpler troubleshooting
(because large parts of the system are now very unlikely to be the source
of a new problem). Reliability is more important than it looks."
You propose 2 choices - wait longer and pay more, or
pay less for the cheaper/sooner.
I choose option 3 - don't code in C. It really is an imperfect tool that doesn't help you. Code in a language that supports you, is (as) quick as C and does a better job.
Ho Ho Ho!
Yes, C is your wet dream come true. It's so fast that they had to add the "restrict" keyword so that for the first time -ever- it could have a decent range of optimisations applied by the compiler, now that it finally knew there were no aliasing problems.
There are other languages around that do as well as C, but -are- -safer-.
Boss: I've heard we've got a tool that can fix 95% of our system crashes!!!
You: Yeah, but we'll still have 5% of errors, so why bother at all?
If I had a magic wand to wave that would get rid of 95% of crashes, you wouldn't be able to pry it from me!
>I agree 100%. But at that point we have gone beyond the issue I was responding to (i.e. that type-safe languages can prevent array indexing errors).
There are few Languages that will prevent array indexing errors. But even in straight C I can come up with methods, or libraries which if used in lieu of direct access would never index outside of array bounds or raise an exception.
People won't use them though, because the vast majority of libraries won't use them. The C culture is to ignore tricks like this (safety), so I doubt it would have much affect.
>So, rather than switch languages, we just put the work back on the programmer to get it right by design not hope the compiler will save him/her.
I'm not sure if you are being sarcastic, but -I- want the compiler to save me. I can make enough mistakes on my own without asking the compiler to not check things for me.
Ada allows you to create range checked versions of discrete types - the subtypes.
:= Month (Today);
:-)...
:= 0;
subtype Months is Integer range 1..12;
function Month (D : Date) return Months is...
now : Months
Because you have specified that the function Month returns a constrianed type (constrained because it can only have certain values) the assignment to "Now" doesn't have to be checked - there is no way that it can overflow.
Another interesting feature of subtypes is that you can use them as the specified index for an array (yay! not every array starts at 0!
type Rainfall is array (Months) of Natural;
(Natural is another subtype, which goes from 0 to the largetst integer). You can then process the array...
R : Rainfall;
for i in R'range loop
r (i)
end loop;
- no checking, no errors - it always works. I use Ada to code up CGI programs, and it is very easy. It's got good string manipulation, and if you step off the end of an array you get an exception.
Being able to distinguish between different integer types is one good example.
:= 100; := 100;
:= Integer ( W + Weight (H)); -- fake algorithm
Languages abstract upwards, from bits to bytes, then to ints, chars, floats, and that's typically where they stop.
Ada however allows you to abstract further - to divide the predefined types into different realms...
type Weight is new Integer range 0..300;
type Height is new Integer range 0..200;
You can declare variables of these types, but you can't -accidentally- (note that word!) mix them in an expression.
They are considered different types by the language, and intermingling is diagnosed as a fatal error. You can of course do type conversions (casts) so that...
W : Weight
H : Height
BodyMassIndex : integer;
BodyMassIndex
This is just one example of a few.
Be warned though - although most of Ada is easy to read, there are parts of the language which are confusing.
Languages are made (or should be!) to make it -easier- for people, not harder.
Why not have the language specify array bounds detection, -and- a mechanism for turning it off when you want to.
This gives you all of the goodness associated with checking for 0 development cost.
Also the compiler is able to decide when array bounds checking is not needed (if it can see that you are iterating over a fixed length array) which is robust in the face of code change.
I'll use your last comment to justify my position....
"That way, there is no 'invisible' overhead in code where those extra few cycles *do* matter. It's not 'stupid', it's just simple."
It can't get much simpler than asking the compiler to insert the code itself.
>Compile code with Purify on? You've never written a >program in your life have you? And needless to say, >you've never use Purify either.
Ok, semantic error (silly me! I should have written more carefully). Change it to "Use a tool similar to Purify that provides run time bounds checking:.
Yes i have written code.
No, i've not used Purify.
...stupid languages like C don't do array bounds checking. Compile all your code with Purify on, or use a language with checking, and you'll be a whole lot safer.
Who cares if it takes a few cycles more - for almost all applications is just isn't going to matter, and you can sit back and -relax- rather than having to deal with the next patch to fix a newly discovered hole.
>Ah, yes- "intent".
>Until they come up with a mind-reading machine (or a >telepath), they can NEVER prove what someone's intent was.
They may not have to - they may just have to prove it on the balance of probabilities...
To increase airflow (and to make it a touch more ergonomic) i use a plastic intray, with a book wedged underneath it.
This provides an angled surface for the TiBook to sit on and
it raises it up to a better height.
I use an external keyboard and mouse of course.
"as long as idiot programms check their fucking buffers"
But then the history of programming is one of people not doing the things they should.
Yes, they should check their buffers, but clearly they don't.
A bit of defensive programming goes a long way, in all and every bit of software.
Q How do you titillate an Ocelot
A You Oscillate its tits a lot.
Hold the shift key when clicking on the minimize/maximize button, and the effect is shown in slow motion. Same for opening a folder...
Ada is also being ported to OS X, and can be viewed as an industrialised Pascal.
OO, multithreading, good support for low level access and interfacing to other languages.
It's a pretty easy step to translate Pascal code to Ada (can be done automatically).
Ada is certainly better than C for writing code; probably not as flexible as Objective-C.
Ah, but think about the really interesting thing.
People inside the matrix should be able to determine that they are living inside a machine.
The pods are spaced some distance apart so there would be delays in communication b/w people.
If that happens then people who "live" far apart in the machine meet (perhaps they bump into each other
on holidays) could notice latency in their conversation.
What about researchers who do experiments on the speed of light! Surely they would notice a discrepancy.
I suppose in the matrix the whackos are right - all of NASA's moon landings would be faked.
Name one company?
Try ACT (Ada Core Technologies) who make all of their software GPL. A really interesting
privately owned company that -makes- money from the service market.