Facts: - Carlsen was given 30 sec to win. - Gates humbly said he had a 1600 rating vs someone with 2000 etc. - Gates was actually a sponsor of Carlsen at the start. - Carlsen said he violated one of his principles by using a cheap trick to win.
Only the compiler/bridge needs to know about the physical resources you work with. The user only needs a model of the hardware to work with. The compiler/bridge should then be able to produce the optimal code with no language overhead. Unfortunately, the way software is done today is still very ad hoc. There is little or no state modelling so you could map out or simulate what happens with the resources. We'd need model representations for all the hardware.
You're ignoring the reason C went the way it does: performance. 'int' can translate to whatever is fastest, not whatever the spec demands (like in Java, say). It's a tradeoff, and as C is a language which puts speed over just about anything else, I can't fault their decision there.
C actually makes it a lot harder to produce the best, optimized code, because the language constructs are too closely tied to the machine domain. An optimizing compiler has less leeway in how it can re-arrange and streamline the logic to reach the goal.
In Alan Kay land objects are sub-computers that receive messages from other sub-computers. In Barbara Liskov world objects are abstract data with operators and a hidden representation.
Kay OOP is closely related to the actor model by Carl Hewitt and others.
Liskov had her own idea of OOP, and she was not aware of Smalltalk (Kay, Ingalls) at the time. She started work on her own language, CLU, at the same time as Smalltalk was developed.
The context here surrounds abstractions and not allowing users (programmers) to play with pointers directly (C, and later, C++), which is a setback concerning optimization, because of the assumptions/connections you make about/with the underlying machine.
If you want to learn more about the ideas of the 1960s and 1970s, I highly recommend looking up talks by Alan C. Kay ("machine OOP" which is Smalltalk in a nutshell), Carl Hewitt (actor model), Dan Ingalls, Frances E. Allen (programming language abstractions and optimization), Barbara Liskov ("data OOP" which is C++ in a nutshell), and don't stop there.
In this case, however, things actually did get worse on many points. Look up talks by Alan C. Kay, and Frances E. Allen at the ACM to get you started. For example, C, which UNIX and Linux is based on, is a giant step back regarding concurrency and code generation, already realized the day the language was released in 1973.
I know what you mean, and this is only about context.
What you may want to try is to use context tests.
Example: You start the program, then go; I want to do this (think of some action); then you do that action. The key point being not to be allowed to think too much about what you do. It's not an "academic approach," but it's quite efficient, especially in games. However, the psychological factor is to avoid things that hurt the ego; this is especially true when developers are not able to distance themselves from their work; it's just a tool.
Programmers are so binary.;) Well, it depends on the program. The less the program does, the simpler it is, because it's closer to being mechanical (not dealing with complex state).
Programmers have to know the domain for which they are developing. You have to make using the software part of your time, just as code review shuffles through roles.
For your example, if your software has so many unknown states when shipped, it's fair to say it's based on luck if it works right.
You would actually need an environment where you could map out states, and simulate input devices. Software development is still young, and I don't think we know how to do it right yet.
In most countries you have to work 5-15 years, full time, to save up enough capital to get a house loan from any bank. You can rent, of course, but that's a waste of money, and you most often have to keep moving. Usually when contracts expire, the price goes up.
Just out of school? Good luck getting any job! Student loan? Even better luck having to pay down that loan, and your bank loan, and other costs connected with your apartment.
The system keeps a tight leash on its citizens. People who do make it on their own cling to their paychecks to make it one month at a time. What a fucked up world to live in.
Also, to counter all the stereotype comments mentioning porn, games, everything is paid for, mom does the cooking; you can still live at home and pay rent for your 10m^2 room, do your own laundry, buy or make your own food. Who would have thought?
Putting a system in/out of stand-by/hibernation is probably another risk factor with SSD drives.
Some points of failure:
SATA SSD Drive - SATA Cable - SATA Controller - Resource Manager - "Operating System" - SATA Driver
In my personal experience, the manufacturer wanted to blame the SATA controller without providing me with any proof.
In summary, SSDs are fast, but they may die fast too. SSDs are most likely not any more or less reliable than mechanical drives, except for purely demonstrational purposes, such as dropping a computer on the floor (unless that caused a drop in power to the drive from other components).
Fingerprinting, it seems. I guess even relaying a MAC (the unique identifier attached to network interface cards) address would infringe on this patent.
It's basically what programmers did back in the day to check whether the processor was supported by their program, or to conditionally execute floating point instructions, if the platform had a floating point unit. The *only* difference here is that the same information is used to form an identifier to check whether the system platform has changed since the last time the program started, and it stores this information somewhere to run a comparison against.
It's kind of reminiscent of the public key system.
So, if I make a copy of a database with user names and passwords, then set the bits of the database to all zeroes on the server; it's theft? Because I now moved a "painting" from one area of space to another?
The thing is, the original state was reconstructed somewhere else without the permission of the property owner (the one/ones who arranged the original state), and that's what theft is. It's the same as moving a painting (a collection of state) to another region of space, but it's not easy to replicate a painting, so it gets exclusivity as well, but it's still the same concept; one thing appearing somewhere else in space.
The less obvious part is that you always HAVE to destroy (change) some other region of space in order to replicate the state you want a copy of, but you don't have to destroy the state in the source space. Due to the ease at which one can copy state within the realm of digital computers, the default behavior is to leave the state in tact, or you may not even have access to modify the source space.
As with the painting; less energy is required to move the state from one location in space to another, compared to replicating the state. This naturally adds exclusivity to the state, but still, you did not have permission to move the state, and that's what you are doing when you copy; you move state (not in a cut/paste manner) from one region of space to another.
Everything is a collection of state in space. The property concept comes from the "shell" we perceive to surround a collection of state so that we can tell things apart; an egg is a property, but is it really no different from a file?
When you download a file, an exclusive region of space must be reserved on your end to hold it, which is then synched to match the state of the source space.
It's free, if you disregard the energy required to synch the state or keep it, but someone arranged the state to begin with.
Businesses--or rather small businesses that are more prone to vulnerabilities due to poor maintenance--are largely going over to cloud services which filter outbound and inbound e-mail. The cloud service anti-spam engines gain more data for heuristics which applies to all customers.
IT administrators have probably also become more aware of restricting outbound SMTP traffic at the firewall or client level.
expect a technician to mess up the PC when replacing HW, then get refusal from HP to do anything until you have reinstalled to factory defaults, if you'd even know how to do that.
This move is about the complexity of programming computers. By removing the GUI dependency, you simplify the life of the developer, not to mention the savings you get from not having to design, program, localize, and test a GUI in various builds.--MicroSoft is free to repeat the mistake with Excel, though--localizing function names and keywords.
That said, you're always going to have a GUI anyway (if you're sane), like forms for user account creation, but then you'd have to roll your own (fragmented), and since you're rolling your own, you are going to make mistakes or miss something at some level, and all of these mistakes are multiplied by the number of scripters, but at least you'd have the freedom to do so.
Scripts are about removing the concept of applications (to some degree) and focus on services and functionality. This is a good thing, since you can now roll your own user interface.;)
Its name was, in fact, Boren.
That's true, but also missing the point.
The main issue is that these situations are not always that obvious in real world code.
There was a talk covering these issues posted at the ACM in February:
https://www.youtube.com/watch?...
Not sure if the video plays outside of Norway:
http://tv.nrk.no/serie/skavlan...
It's about at 54 min. in.
Facts:
- Carlsen was given 30 sec to win.
- Gates humbly said he had a 1600 rating vs someone with 2000 etc.
- Gates was actually a sponsor of Carlsen at the start.
- Carlsen said he violated one of his principles by using a cheap trick to win.
Only the compiler/bridge needs to know about the physical resources you work with. The user only needs a model of the hardware to work with. The compiler/bridge should then be able to produce the optimal code with no language overhead. Unfortunately, the way software is done today is still very ad hoc. There is little or no state modelling so you could map out or simulate what happens with the resources. We'd need model representations for all the hardware.
You're ignoring the reason C went the way it does: performance. 'int' can translate to whatever is fastest, not whatever the spec demands (like in Java, say). It's a tradeoff, and as C is a language which puts speed over just about anything else, I can't fault their decision there.
C actually makes it a lot harder to produce the best, optimized code, because the language constructs are too closely tied to the machine domain. An optimizing compiler has less leeway in how it can re-arrange and streamline the logic to reach the goal.
The thing to get here is that there are basically two kinds of OOP, so to speak.
Here's a short discussion that covers it:
https://news.ycombinator.com/item?id=2336444
Kay OOP is closely related to the actor model by Carl Hewitt and others.
Liskov had her own idea of OOP, and she was not aware of Smalltalk (Kay, Ingalls) at the time. She started work on her own language, CLU, at the same time as Smalltalk was developed.
.. is that C was seen as a major setback by Frances E. Allen and others.
Source:
Frances E. Allen
ACM 2006 Conference
http://www.youtube.com/watch?v=NjoU-MjCws4
The context here surrounds abstractions and not allowing users (programmers) to play with pointers directly (C, and later, C++), which is a setback concerning optimization, because of the assumptions/connections you make about/with the underlying machine.
If you want to learn more about the ideas of the 1960s and 1970s, I highly recommend looking up talks by Alan C. Kay ("machine OOP" which is Smalltalk in a nutshell), Carl Hewitt (actor model), Dan Ingalls, Frances E. Allen (programming language abstractions and optimization), Barbara Liskov ("data OOP" which is C++ in a nutshell), and don't stop there.
I love blindly copying memes..
In this case, however, things actually did get worse on many points. Look up talks by Alan C. Kay, and Frances E. Allen at the ACM to get you started. For example, C, which UNIX and Linux is based on, is a giant step back regarding concurrency and code generation, already realized the day the language was released in 1973.
There was a similar study on this surrounding laser printers.
http://computer.howstuffworks.com/printer-health.htm
I know what you mean, and this is only about context.
What you may want to try is to use context tests.
Example: You start the program, then go; I want to do this (think of some action); then you do that action. The key point being not to be allowed to think too much about what you do. It's not an "academic approach," but it's quite efficient, especially in games. However, the psychological factor is to avoid things that hurt the ego; this is especially true when developers are not able to distance themselves from their work; it's just a tool.
Programmers are so binary. ;) Well, it depends on the program. The less the program does, the simpler it is, because it's closer to being mechanical (not dealing with complex state).
Programmers have to know the domain for which they are developing.
You have to make using the software part of your time, just as code review shuffles through roles.
For your example, if your software has so many unknown states when shipped, it's fair to say it's based on luck if it works right.
You would actually need an environment where you could map out states, and simulate input devices.
Software development is still young, and I don't think we know how to do it right yet.
There are many bugs that would easily be detected by actually using the application on a daily basis.
Users do not work for you. When they do post bug reports, it is most likely in frustration.
In most countries you have to work 5-15 years, full time, to save up enough capital to get a house loan from any bank. You can rent, of course, but that's a waste of money, and you most often have to keep moving. Usually when contracts expire, the price goes up.
Just out of school? Good luck getting any job! Student loan? Even better luck having to pay down that loan, and your bank loan, and other costs connected with your apartment.
The system keeps a tight leash on its citizens. People who do make it on their own cling to their paychecks to make it one month at a time. What a fucked up world to live in.
Also, to counter all the stereotype comments mentioning porn, games, everything is paid for, mom does the cooking; you can still live at home and pay rent for your 10m^2 room, do your own laundry, buy or make your own food. Who would have thought?
Putting a system in/out of stand-by/hibernation is probably another risk factor with SSD drives.
Some points of failure:
SATA SSD Drive - SATA Cable - SATA Controller - Resource Manager - "Operating System" - SATA Driver
In my personal experience, the manufacturer wanted to blame the SATA controller without providing me with any proof.
In summary, SSDs are fast, but they may die fast too. SSDs are most likely not any more or less reliable than mechanical drives, except for purely demonstrational purposes, such as dropping a computer on the floor (unless that caused a drop in power to the drive from other components).
I suggest the author has a talk with Alan C. Kay.
Fingerprinting, it seems. I guess even relaying a MAC (the unique identifier attached to network interface cards) address would infringe on this patent.
It's basically what programmers did back in the day to check whether the processor was supported by their program, or to conditionally execute floating point instructions, if the platform had a floating point unit. The *only* difference here is that the same information is used to form an identifier to check whether the system platform has changed since the last time the program started, and it stores this information somewhere to run a comparison against.
It's kind of reminiscent of the public key system.
Is this a rerun of The Tower of Babel?
Give me address there.
So, if I make a copy of a database with user names and passwords, then set the bits of the database to all zeroes on the server; it's theft? Because I now moved a "painting" from one area of space to another?
The thing is, the original state was reconstructed somewhere else without the permission of the property owner (the one/ones who arranged the original state), and that's what theft is. It's the same as moving a painting (a collection of state) to another region of space, but it's not easy to replicate a painting, so it gets exclusivity as well, but it's still the same concept; one thing appearing somewhere else in space.
The less obvious part is that you always HAVE to destroy (change) some other region of space in order to replicate the state you want a copy of, but you don't have to destroy the state in the source space. Due to the ease at which one can copy state within the realm of digital computers, the default behavior is to leave the state in tact, or you may not even have access to modify the source space.
As with the painting; less energy is required to move the state from one location in space to another, compared to replicating the state. This naturally adds exclusivity to the state, but still, you did not have permission to move the state, and that's what you are doing when you copy; you move state (not in a cut/paste manner) from one region of space to another.
Everything is a collection of state in space.
The property concept comes from the "shell" we perceive to surround a collection of state so that we can tell things apart; an egg is a property, but is it really no different from a file?
When you download a file, an exclusive region of space must be reserved on your end to hold it, which is then synched to match the state of the source space.
It's free, if you disregard the energy required to synch the state or keep it, but someone arranged the state to begin with.
Businesses--or rather small businesses that are more prone to vulnerabilities due to poor maintenance--are largely going over to cloud services which filter outbound and inbound e-mail. The cloud service anti-spam engines gain more data for heuristics which applies to all customers.
IT administrators have probably also become more aware of restricting outbound SMTP traffic at the firewall or client level.
expect a technician to mess up the PC when replacing HW, then get refusal from HP to do anything until you have reinstalled to factory defaults, if you'd even know how to do that.
This move is about the complexity of programming computers. By removing the GUI dependency, you simplify the life of the developer, not to mention the savings you get from not having to design, program, localize, and test a GUI in various builds.--MicroSoft is free to repeat the mistake with Excel, though--localizing function names and keywords.
That said, you're always going to have a GUI anyway (if you're sane), like forms for user account creation, but then you'd have to roll your own (fragmented), and since you're rolling your own, you are going to make mistakes or miss something at some level, and all of these mistakes are multiplied by the number of scripters, but at least you'd have the freedom to do so.
Scripts are about removing the concept of applications (to some degree) and focus on services and functionality. This is a good thing, since you can now roll your own user interface. ;)