My biggest complaint with renting DVDs is that they're often so scratched that they skip, or not play at all. Having the rental place reburn a DVD from scratch every 5 rentals (or whatever) would solve that problem nicely and cheaply. (I did some back-of-the-envelope calculations at http://www.casualhacker.net/blog/2006/03/dvd-renta ls/.) I didn't think the studios would go for it, but maybe they will.
They could just as well rate limit all port 25 traffic. That shouldn't be much harder than forcing you to go through their server, and then limiting you there.
So does anybody know how these investors think they're going to get their money back by running a free Internet service? I'm worried that they're going to add all kinds of annoying advertising. I'm definitely going to make sure my delicious bookmarks are backed up regularly in case they decide to pull the plug.
TimeMachine is not limited to Green Hills boards (GHS doesn't make boards), but it does require that trace is designed into the CPU and the board that it is on. Most cores that support trace will give TimeMachine enough data to fully reconstruct registers values at most points in time.
Other than that, you've nailed the difference between the two. The main advantage of TimeMachine is that you run on real hardware, with all of its quirks (even if they're not known yet). The main advantage of simulating is that you don't need real hardware, and you get unlimited visibility into the system.
The ocaml debugger does exactly what Simics describes here.
Green Hills Software has a tool called TimeMachine which will take trace data from a real running system (ie not simulated) and allow you run back and forth through the time frame for which trace data was collected. Going back through time and then forward again is all simulated.
If the entire TV industry is predicated on advertising, and the idea of advertising is predicating on paying to have as many people see your ads as possible (and the payment is proportional to proven amounts of people who may be watching), if an increasing number of people (many in educated and financially stable demographics) have the capability to avoid ever seeing any advertising, what, exactly, makes it worthwhile for advertisers to continue paying for it, at least at the same levels? You are choosing to watch content whose creation and delivery is funded in large part by advertising revenues. What funds it if that model is completely broken?
Who cares about the TV industry? What inherent right do they have to make a profit using their existing model? It used to work, but is becoming obsolete fast. If TV is no longer profitable, they should find something else to do. Adding more laws (we have too many already) is not a good solution.
It's similar for me. When growing up, the TV would only be on if I (or we) were actually watching it. If I wasn't watching TV I wouldn't be in the living room. Then we moved to the US, where people use the TVs seemingly for background noise, and I have a really hard time tuning them out. My fiancee knows that if she wants to talk to me, the TV needs to be off. In bars/restaurants, I make a point to sit facing away from any TVs that might be on.
I think the key difference is that the Army games are made to be realistic and model real life closely, while GTA is not.
That means that things you learn in Army games will be applicable in real life, but things you learn in GTA will not be. Similarly, if you enjoy the Army games, you may enjoy the real army, or at least think you will, because they're supposedly similar. If you enjoy GTA, then you would probably enjoy being a car-jacking thug in a world where the worst that happens to you is you go to jail/the hospital, lose all your weapons and some money. Luckily, almost everybody who plays GTA knows that the real world is not like that, so they won't decide to live a life of crime.
The Green Hills Website lists a bunch of OSs on the front page: velOSity, INTEGRITY, and INTEGRITY-178B which is a version of INTEGRITY that was DO-178B certified.
I'm actually going to do this for the first time. I'll be upgrading my 650MHz Duron to a 1400MHz Athlon. Still stuck with the slow 100MHz FSB, but I think it'll make my system quite a bit snappier. I would've made a bigger upgrade, but nowadays I'm trying to save money for an early retirement.
Tim
Re:This will cause problems
on
Freecache
·
· Score: 1
C'mon. tinyurl.com has made this possible for a long time.
Why not? What is the sign of an industrial strength language?
I kind of like the idea of being able to tell the scope of a variable just by looking at it, instead of having to scan up to see if it happens to be global. I think everybody agrees that it's good to adhere to a certain variable naming scheme etc. Having the language enforce some part of it just makes code that much more consistent.
Prothon Description: This document assumes a working knowledge of Python. Many features are described as differences to Python features. If you are new to Python, a good starting point can be found at www.python.org.
Comments
Standard Python comments using the # character work exactly the same in Prothon. Prothon also supports the C comment format of/* and */. This is useful for temporarily blocking out large blocks of code and inserting inline comments.
# this line is a comment
x=5 # this is a trailing comment
if not rlst/*no response*/ or is_too_long:
Indentation is Tab-Only
Like Python, Prothon uses indentation to control the block structure of the program instead of block/end or {}. However, Prothon only allows tabs for indentation. Any space in an indent will cause an error. This allows each programmer to set the editor to show the tab width to whatever he pleases and the Python problems of mixed spaces and tabs cannot happen in Prothon. It also allows for minimum typing.
Line Continuation
A line can be continued by placing a backslash ( \ ) as the last character of a line as in Python. Also, any tab indent of more than one level deeper than the previous indent level will cause the line to be considered a continuation of the previous line, which is a new feature to Prothon. The automatic continuation of lines in comma separated lists found in Python is not allowed in Prothon because of parsing differences, but usually the auto-continuation from indents alleviates the need for this.
Note that you can put spaces after tabs when in an auto-continuation. This allows you to line up the continued line for appearance.
s = "this is a normal line \
this is a continuation" # backslash works in quotes
y = long_function_name() +
another_function_name() # extra indent continuation
z = function_name(variable_name_1, # this is legal in Prothon because
variable_name_2) # of extra indents, not commas
Variable Names and Scope (No more "self variable")
The syntax for a variable name (label) is the same as Python except that one exclamation mark is allowed at the end and only at the end. This usage should be reserved for functions that modify the object's content in place. This allows a function such as list.sort!() to return the modified list, which was not allowed in Python. One should ALWAYS use this naming convention for in-place modification functions to warn programmers.
Prothon has a very different concept of self than Python. Any and every object can be "self", whether the code is in a function or not. So the Python tradition of using the variable named "self" does not fit in Prothon. The next section shows how an object becomes the "self". For now just imagine that somehow there is always one special "self" object at any one time.
Prothon code needs a way to differentiate between local variables, attributes in the self our code is running on, and global variables (in Prothon, globals are attributes of the module running our code). Prothon is introducing a relatively new concept in order to make it very easy to know which of these three types of variable you are referring to. This is the use of character case. Just as Python pioneered the use of white-space (indentation) to control syntax, Prothon is using case to control syntax.
Local variables always start with a lower-case letter or underbar ( _ ). Global variables always start with an upper-case letter. Attributes in the self object are prefixed by a period ( . ), but the name of the attribute itself can start with any case.
def.get_hdr(text): # define func "get_hdr" as attribute of self.text = text # attribute "text" loaded from local "text".hdr = Mime
The problem of course is that unless you are completely disenfranchised from society your academic records are known, any published writing you have is known, your credit rating is known (believe it or not, certain government agencies look very carefully at your credit rating when recruiting you), and "virtual" persona are relatively easy to correlate with specific persons (all of you anonymous cowards take note).
So you're saying I should make sure that everybody knows I was at several of the anti-war demonstrations last year?
Better tip: Learn the basic rules of the game. Then there are two things that I enjoy watching.
1. Seeing what everybody on the field is doing. Because a typical football play only lasts about 8 seconds, everybody on the field has a specific job, and they all know what everybody else is doing. When you start watching football you just follow the ball (which is unfortunately what TV does also). But start following other players instead. It's neat to see a running play work because the center pulled, etc.
2. Second-guess the coach. Football has a lot in common with a turn-based strategy game. (Every turn is about 10 seconds.) During the down-time, decide what you think the offense should be doing, or what the defense should be doing.
I know the/. opinion is that football is for jocks, but the tactics involved are fascinating. The players are also great athletes. Give it a chance.
It's important to note that in a color digicam each "pixel" only senses 1 color. The NASA cam is a black and white, and to make color they take 3 shots with different filters. This makes it equivalent to a consumer 3MP camera. They also have a nice lens and a large sensor which helps as well.
You make some good points. I drew my analogy too far. I was mainly trying to give you examples of hard real-time embedded systems, which it looked to me like you asked for. I have no idea what percentage of embedded systems those comprise. In my assembly line example I was thinking of something that lines up something right next to something else. The motor control is real-time because once the sensor says we're close enough, we don't want to go any further at all. At any rate, it sounds like we both agree that for some things Linux is appropriate, and for others it isn't.
Anything that deals with real-world physics kind of things. Stuff that controls whether your airbag will deploy or not. All kinds of airplane stuff. Assembly line robots. By extension, if you're talking to that kind of devices over your router, simple user-interface button-thing, or whatever then for those it suddenly also becomes important to be hard real time.
My biggest complaint with renting DVDs is that they're often so scratched that they skip, or not play at all. Having the rental place reburn a DVD from scratch every 5 rentals (or whatever) would solve that problem nicely and cheaply. (I did some back-of-the-envelope calculations at http://www.casualhacker.net/blog/2006/03/dvd-renta ls/ .) I didn't think the studios would go for it, but maybe they will.
Tim
If all this time you've been thinking that Taco is a real jedi then I've got a bridge to sell you, and a big green statue, too.
Tim
They could just as well rate limit all port 25 traffic. That shouldn't be much harder than forcing you to go through their server, and then limiting you there.
Tim
So does anybody know how these investors think they're going to get their money back by running a free Internet service? I'm worried that they're going to add all kinds of annoying advertising. I'm definitely going to make sure my delicious bookmarks are backed up regularly in case they decide to pull the plug.
Tim
TimeMachine is not limited to Green Hills boards (GHS doesn't make boards), but it does require that trace is designed into the CPU and the board that it is on. Most cores that support trace will give TimeMachine enough data to fully reconstruct registers values at most points in time.
Other than that, you've nailed the difference between the two. The main advantage of TimeMachine is that you run on real hardware, with all of its quirks (even if they're not known yet). The main advantage of simulating is that you don't need real hardware, and you get unlimited visibility into the system.
Tim
I'm aware of two products (there must be others):
The ocaml debugger does exactly what Simics describes here.
Green Hills Software has a tool called TimeMachine which will take trace data from a real running system (ie not simulated) and allow you run back and forth through the time frame for which trace data was collected. Going back through time and then forward again is all simulated.
Tim
Doesn't Usenet deal with exactly this kind of problem? It's not quite instant, but neither is rss, since most people aren't polling non-stop.
Tim
If the entire TV industry is predicated on advertising, and the idea of advertising is predicating on paying to have as many people see your ads as possible (and the payment is proportional to proven amounts of people who may be watching), if an increasing number of people (many in educated and financially stable demographics) have the capability to avoid ever seeing any advertising, what, exactly, makes it worthwhile for advertisers to continue paying for it, at least at the same levels? You are choosing to watch content whose creation and delivery is funded in large part by advertising revenues. What funds it if that model is completely broken?
Who cares about the TV industry? What inherent right do they have to make a profit using their existing model? It used to work, but is becoming obsolete fast. If TV is no longer profitable, they should find something else to do. Adding more laws (we have too many already) is not a good solution.
Tim
It's similar for me. When growing up, the TV would only be on if I (or we) were actually watching it. If I wasn't watching TV I wouldn't be in the living room.
Then we moved to the US, where people use the TVs seemingly for background noise, and I have a really hard time tuning them out. My fiancee knows that if she wants to talk to me, the TV needs to be off. In bars/restaurants, I make a point to sit facing away from any TVs that might be on.
Tim
Mod parent up. It's working. :-)
speed: 19.9 KB/s down - 49.7 KB/s up
Go, go!
Tim
I think the key difference is that the Army games are made to be realistic and model real life closely, while GTA is not.
That means that things you learn in Army games will be applicable in real life, but things you learn in GTA will not be. Similarly, if you enjoy the Army games, you may enjoy the real army, or at least think you will, because they're supposedly similar. If you enjoy GTA, then you would probably enjoy being a car-jacking thug in a world where the worst that happens to you is you go to jail/the hospital, lose all your weapons and some money. Luckily, almost everybody who plays GTA knows that the real world is not like that, so they won't decide to live a life of crime.
Tim
The Green Hills Website lists a bunch of OSs on the front page: velOSity, INTEGRITY, and INTEGRITY-178B which is a version of INTEGRITY that was DO-178B certified.
Tim
I'm actually going to do this for the first time. I'll be upgrading my 650MHz Duron to a 1400MHz Athlon. Still stuck with the slow 100MHz FSB, but I think it'll make my system quite a bit snappier. I would've made a bigger upgrade, but nowadays I'm trying to save money for an early retirement.
Tim
C'mon. tinyurl.com has made this possible for a long time.
Tim
Why not? What is the sign of an industrial strength language?
I kind of like the idea of being able to tell the scope of a variable just by looking at it, instead of having to scan up to see if it happens to be global. I think everybody agrees that it's good to adhere to a certain variable naming scheme etc. Having the language enforce some part of it just makes code that much more consistent.
Tim
Prothon Description:
/* and */. This is useful for temporarily blocking out large blocks of code and inserting inline comments.
/*no response*/ or is_too_long:
.get_hdr(text): # define func "get_hdr" as attribute of self .text = text # attribute "text" loaded from local "text" .hdr = Mime
This document assumes a working knowledge of Python. Many features are described as differences to Python features. If you are new to Python, a good starting point can be found at www.python.org.
Comments
Standard Python comments using the # character work exactly the same in Prothon. Prothon also supports the C comment format of
# this line is a comment
x=5 # this is a trailing comment
if not rlst
Indentation is Tab-Only
Like Python, Prothon uses indentation to control the block structure of the program instead of block/end or {}. However, Prothon only allows tabs for indentation. Any space in an indent will cause an error. This allows each programmer to set the editor to show the tab width to whatever he pleases and the Python problems of mixed spaces and tabs cannot happen in Prothon. It also allows for minimum typing.
Line Continuation
A line can be continued by placing a backslash ( \ ) as the last character of a line as in Python. Also, any tab indent of more than one level deeper than the previous indent level will cause the line to be considered a continuation of the previous line, which is a new feature to Prothon. The automatic continuation of lines in comma separated lists found in Python is not allowed in Prothon because of parsing differences, but usually the auto-continuation from indents alleviates the need for this.
Note that you can put spaces after tabs when in an auto-continuation. This allows you to line up the continued line for appearance.
x = 1 + 2 + 3 + 4 + \
5 + 6 + 7 + 8 + 9 # backslash continuation
s = "this is a normal line \
this is a continuation" # backslash works in quotes
y = long_function_name() +
another_function_name() # extra indent continuation
z = function_name(variable_name_1, # this is legal in Prothon because
variable_name_2) # of extra indents, not commas
Variable Names and Scope (No more "self variable")
The syntax for a variable name (label) is the same as Python except that one exclamation mark is allowed at the end and only at the end. This usage should be reserved for functions that modify the object's content in place. This allows a function such as list.sort!() to return the modified list, which was not allowed in Python. One should ALWAYS use this naming convention for in-place modification functions to warn programmers.
Prothon has a very different concept of self than Python. Any and every object can be "self", whether the code is in a function or not. So the Python tradition of using the variable named "self" does not fit in Prothon. The next section shows how an object becomes the "self". For now just imagine that somehow there is always one special "self" object at any one time.
Prothon code needs a way to differentiate between local variables, attributes in the self our code is running on, and global variables (in Prothon, globals are attributes of the module running our code). Prothon is introducing a relatively new concept in order to make it very easy to know which of these three types of variable you are referring to. This is the use of character case. Just as Python pioneered the use of white-space (indentation) to control syntax, Prothon is using case to control syntax.
Local variables always start with a lower-case letter or underbar ( _ ). Global variables always start with an upper-case letter. Attributes in the self object are prefixed by a period ( . ), but the name of the attribute itself can start with any case.
def
The problem of course is that unless you are completely disenfranchised from society your academic records are known, any published writing you have is known, your credit rating is known (believe it or not, certain government agencies look very carefully at your credit rating when recruiting you), and "virtual" persona are relatively easy to correlate with specific persons (all of you anonymous cowards take note).
So you're saying I should make sure that everybody knows I was at several of the anti-war demonstrations last year?
Tim
Are you thinking what I'm thinking, Pinky?
I think so, brain, but you and Natalie Portman? What would the children look like?
Lie down in front of it, just like in the book.
Tim
Diggidiggidick
woing woing woing
zap zap zap zap
baaa
ooh!
I love you you!
Oh yeah!
Oh yeah!
zap zap zap
Oh f*ck!
Better tip: Learn the basic rules of the game.
/. opinion is that football is for jocks, but the tactics involved are fascinating. The players are also great athletes. Give it a chance.
Then there are two things that I enjoy watching.
1. Seeing what everybody on the field is doing. Because a typical football play only lasts about 8 seconds, everybody on the field has a specific job, and they all know what everybody else is doing. When you start watching football you just follow the ball (which is unfortunately what TV does also). But start following other players instead. It's neat to see a running play work because the center pulled, etc.
2. Second-guess the coach. Football has a lot in common with a turn-based strategy game. (Every turn is about 10 seconds.) During the down-time, decide what you think the offense should be doing, or what the defense should be doing.
I know the
Tim
They use some fancy math to interpolate the colors that are missing from the neighbors. A good description of the arrays is at
dpreview.
Tim
It's important to note that in a color digicam each "pixel" only senses 1 color. The NASA cam is a black and white, and to make color they take 3 shots with different filters. This makes it equivalent to a consumer 3MP camera.
They also have a nice lens and a large sensor which helps as well.
Tim
You make some good points. I drew my analogy too far. I was mainly trying to give you examples of hard real-time embedded systems, which it looked to me like you asked for. I have no idea what percentage of embedded systems those comprise.
In my assembly line example I was thinking of something that lines up something right next to something else. The motor control is real-time because once the sensor says we're close enough, we don't want to go any further at all.
At any rate, it sounds like we both agree that for some things Linux is appropriate, and for others it isn't.
Tim
Anything that deals with real-world physics kind of things. Stuff that controls whether your airbag will deploy or not. All kinds of airplane stuff. Assembly line robots. By extension, if you're talking to that kind of devices over your router, simple user-interface button-thing, or whatever then for those it suddenly also becomes important to be hard real time.
Tim