Make the security of IoT devices easy to visualize. Have a single picture showing all the open ports and services and not have things like anonymous Samba shares enabled down three directories of a webpage configuration system.
Even loading bays have better visualizations that most of these systems:
A mouse has two or more buttons that send press and release events, and also sends out motion events. A trackball will do the same, so you can do things like hover over buttons and not press them. A touchscreen will have multiple fingerpress and fingerrelease events. Then these can be combined into gestures like double slide, single slide, two finger zoom, two finger pinch, two finger rotate, two finger translate. These could go up to any number of events, such as the screen swipe with the palm of your hand to capture a screenshot. But there is no concept of hover. Something is either pressed or there is no event. You can add delays and timeouts but that's about all. With VR and AR, you can do gestures like head tilt to move or turn in different directions, various button presses using the headset buttons or stare and select. If you have a VR glove or set of globes, then there are all the hand gestures that could be made. It's easy to map these onto classic mouse events, but hard to have a single event handler for everything.
You could use Wireshark to find out where the data was going. I Couldn't understand why my PC was sending 32K/minute over to one of Microsoft's servers. Turned out this was an executable called nvcontainer.exe as part of the Geforce Experience. From other forums, it seems to scan games downloaded from Steam. Perhaps it does static code analysis on DirectX or OpenGL calls. But it seems a funny way of doing this.
If you buy a dual socket motherboard you can achieve that amount of memory. But the memory chip companies jack up the prices by x5 simply because ECC memory (usually from Crucial ) is required. Example motherboard = Asus Z10 PE-D8 WS
As programming languages become increasingly high level (assembler -> C -> C++ -> Java -> Python), the amount of generic boilerplate to handle module linking, object-orientated constructs also increases. At the far end, you have your SQL database and client which wrap an entire 4GL around a network protocol to implement and optimize complex search requests. Some programming languages can abstract away the need to understand advanced parallel processing techniques in order to take advantage of modern CPU designs.
With assembler, you only deal with individual instructions and data structures that relate to the actual problem needing to be solved. C introduces a standard way of passing data in function calls and returning results using a stack. Some CPU's support instructions to save the entire register set onto a stack. Others support multiple banks of registers. There there is DLL or shared object loading which performs dynamic linking. C++ introduces class objects has a table of function pointers to support inheritance, pure virtual classes, derived classes, polymorphism and all other object-oriented programming theory. A complex multi-inheritance class object will be sliced up and recombined to generate a derived class from the base classes.
All of this involves a substantial overhead, which for early low clock speed CPU's that weren't superscalar or support out-of-order code execution, made applications extremely sluggish. Now you have multi-core systems where a couple of CPU cores are used for OS background tasks, while one is used for the GUI and another for user application.
When there are hardware systems consisting of dozens to thousands of cores (GPU's) running at GigaHertz speeds with hundreds of instructions being in-flight on each core , then "infinitely fast" is the best definition. Compare the speed of an octo-core 4Ghz gaming rig with SLI GPU's and AVX instruction sets, against a 20MHz Desktop PC with an 80387 maths coprocessor. The Mandelbrot set can be rendered in real-time on the first system at HD resolutions.
For scientific programming, a programming language would have to support full mathematical library support, support low-level programming options (pointers, inter-process communication), make parallel processing transparent (creation of threads, synchronisation, scatter/gather), support object orientated programming. The closest match for those needs is C++ with the parallel processing API's like OpenMP. Other solutions are Matlab with C/C++ code generation or Python wrapped around CUDA, or other API's.
With OpenGL compute shaders, you can actually dynamically create the shader source code within your application, have the GPU driver compile it, then run it on all cores, then read back the results.
The hope is that as individual smartphones slowly die off (from cracked screens, running out of storage space, burning out, fried firmware), the newer models will gradually outnumber the old ones. Then the newer versions will gradually dominate.
If there was no danger of identity theft, then it would work. But with high unemployment or low wages, it's a high risk.
Norway do this with their folk-register. Everyone registers their name, SSN number with a home/mail address. This is used by banks and mail order companies. You can opt not to use this address with each company, but it saves time in filling in online forms and validating ID.
Visual Studio complains about the use of strcpy, strncmp, and insists on Microsoft's strcpy_s, strncmp_s variants, which seem mostly to insist on an additional maximum length to be specified.
This is what all backdoors look like. "Ooops, we accidently encrypt and decrypt the password and write it out at the end of the file". "Whoops, we missed out a break statement in the selection of the encryption algorithm, it always defaults to the legacy easily broken encryption method". "Oh, shooot, we forget to add the menu option to the router to filter out multicasts, anyone can send a SSDP multicast to that address and get a list of hosts returned."
Like Microsoft's Windows OS firewall doesn't allow blocking of Microsoft telemetry servers. Wonder why? What could be so harmful in blocking a data stream of a few hundred bytes/second?
That happened to a photographer in the UK. He made the mistake of viewing a "sting" photograph in a website in Luxemborg. The police there had set up a file directory to catch criminals. But he didn't understand the language and so triggered the a police investigation who then informed the British police:
That's was before DLL's and.SO shared object library files. Before then, every application available on the system had to be statically linked with every library that it used. X-windows/Motif applications using sockets, RPC, multi-threading would be hundreds of megabytes in size. Once it was figured out that these libraries were being duplicated, the use of dynamic linking removed the bloat.
Intel processors are RISC internally, and have a micro-compiler to convert the CISC Intel instructions into the RISC equivalents. It's a small overhead, but given the superscaler architecture, high clock speed, it's not noticeable.
It used to be the case that the 80386 instructions had the REP prefix, which would allow one instruction to be repeated up to 256 times. For some reason, they didn't extend this to the floating-point instructions and now seem to have dropped it entirely.
The choice of high level language is more to avoid the debugging time having to deal with pointers, and matching memory allocation and deallocation. Even with C++, the use of smart pointers is preferred because then time doesn't have to be spent looking for memory leaks. To make things even more complex, these can differ from OS to OS and even compiler version. Plus they don't want to be dominated by Microsoft at any cost.
Known as "bit-rot" due to third party API's. Write your own software layers and there is no problem. Use a third-party API, and suddenly those simple menu widgets that you used happily for many years, suddenly disappear or get reformurgulated into some new document design pattern requiring base, derived parent and children classes with additional callback event handlers, simply because the developers thought those old widgets didn't provide enough flexibility. They could of course provided an emulation library built on top of their new release, but of course, that would have been too simple.
With kernel stuff, function calls suddenly start needing new pointers to return result codes, a data structure that used to bound inside a particular object is now passed by pointer because increased flexibility requires that the called makes the choice. Maybe a function call disappears because of the use of internal dependency tracking or new setup functions have appeared.
You just need to look at the evolution of the 3D API's to see how this works out; The evolution of OpenGL from the 1990's to the present day has about 60 different combinations of draw calls to render a simple 3D model.
Run "wireshark" on your PC with no web browsers open. Does your PC try and access Facebook servers? Does it constantly send a stream of data to Microsoft (52.169.64.244)?
"If you want to know who is logging your data, look at whose IP addresses you aren't allowed to block"
Many cities are moving to a future where a car isn't essential - good safe public transport with buses, trains and taxi services for long distances, walking for short distances.
Facebook works by having each account defined as a hierarchical tree of information for each person; comments, photographs, links, account image. These are updated by making HTTP/HTTPS transactions to graph.facebook.com and other servers. I often find applications connecting to facebook to check for updates and goodness knows what else.
When I read the title, I thought these billboards would be electronic adverts listing the persons most recent purchases or targeted ads for health problems. I bet if that happened, they would soon push for legislation.
Since the 1990's, opposition to nuclear was due to where to put the reactors and the nuclear waste. The English NIMBY's just thought Scotland was the best place since it was the least densely populated part of the UK. The Scots figured that since the South coast of England was where all the population growth was happening the reactors should be done there. After all, if nuclear power is so safe, why not install the reactors in Battersea power station? It's right next to the Thames.
They've finally got the location sorted out, but now the major obstacle is cost due to the requirement by the insurance companies that the owners take out insurance to cover the compensation bill in the case that the surrounding area is contaminated and has to be evacuated like Chernobyl or Fukushima. That pushes up the price per energy unit.
At some time, they must have checked to see if it was possible to register, and was not already taken.
Make the security of IoT devices easy to visualize. Have a single picture showing all the open ports and services and not have things like anonymous Samba shares enabled down three directories of a webpage configuration system.
Even loading bays have better visualizations that most of these systems:
https://previews.123rf.com/ima...
A mouse has two or more buttons that send press and release events, and also sends out motion events. A trackball will do the same, so you can do things like hover over buttons and not press them. A touchscreen will have multiple fingerpress and fingerrelease events. Then these can be combined into gestures like double slide, single slide, two finger zoom, two finger pinch, two finger rotate, two finger translate. These could go up to any number of events, such as the screen swipe with the palm of your hand to capture a screenshot. But there is no concept of hover. Something is either pressed or there is no event. You can add delays and timeouts but that's about all. With VR and AR, you can do gestures like head tilt to move or turn in different directions, various button presses using the headset buttons or stare and select. If you have a VR glove or set of globes, then there are all the hand gestures that could be made. It's easy to map these onto classic mouse events, but hard to have a single event handler for everything.
You could use Wireshark to find out where the data was going. I Couldn't understand why my PC was sending 32K/minute over to one of Microsoft's servers. Turned out this was an executable called nvcontainer.exe as part of the Geforce Experience. From other forums, it seems to scan games downloaded from Steam. Perhaps it does static code analysis on DirectX or OpenGL calls. But it seems a funny way of doing this.
If you buy a dual socket motherboard you can achieve that amount of memory. But the memory chip companies jack up the prices by x5 simply because ECC memory (usually from Crucial ) is required. Example motherboard = Asus Z10 PE-D8 WS
If you kept checking to see if the server was running, it wouldn't change state.
As programming languages become increasingly high level (assembler -> C -> C++ -> Java -> Python), the amount of generic boilerplate to handle module linking, object-orientated constructs also increases. At the far end, you have your SQL database and client which wrap an entire 4GL around a network protocol to implement and optimize complex search requests. Some programming languages can abstract away the need to understand advanced parallel processing techniques in order to take advantage of modern CPU designs.
With assembler, you only deal with individual instructions and data structures that relate to the actual problem needing to be solved. C introduces a standard way of passing data in function calls and returning results using a stack. Some CPU's support instructions to save the entire register set onto a stack. Others support multiple banks of registers. There there is DLL or shared object loading which performs dynamic linking. C++ introduces class objects has a table of function pointers to support inheritance, pure virtual classes, derived classes, polymorphism and all other object-oriented programming theory. A complex multi-inheritance class object will be sliced up and recombined to generate a derived class from the base classes.
All of this involves a substantial overhead, which for early low clock speed CPU's that weren't superscalar or support out-of-order code execution, made applications extremely sluggish. Now you have multi-core systems where a couple of CPU cores are used for OS background tasks, while one is used for the GUI and another for user application.
When there are hardware systems consisting of dozens to thousands of cores (GPU's) running at GigaHertz speeds with hundreds of instructions being in-flight on each core , then "infinitely fast" is the best definition. Compare the speed of an octo-core 4Ghz gaming rig with SLI GPU's and AVX instruction sets, against a 20MHz Desktop PC with an 80387 maths coprocessor. The Mandelbrot set can be rendered in real-time on the first system at HD resolutions.
For scientific programming, a programming language would have to support full mathematical library support, support low-level programming options (pointers, inter-process communication), make parallel processing transparent (creation of threads, synchronisation, scatter/gather), support object orientated programming. The closest match for those needs is C++ with the parallel processing API's like OpenMP. Other solutions are Matlab with C/C++ code generation or Python wrapped around CUDA, or other API's.
With OpenGL compute shaders, you can actually dynamically create the shader source code within your application, have the GPU driver compile it, then run it on all cores, then read back the results.
The hope is that as individual smartphones slowly die off (from cracked screens, running out of storage space, burning out, fried firmware), the newer models will gradually outnumber the old ones. Then the newer versions will gradually dominate.
If there was no danger of identity theft, then it would work. But with high unemployment or low wages, it's a high risk.
Norway do this with their folk-register. Everyone registers their name, SSN number with a home/mail address. This is used by banks and mail order companies. You can opt not to use this address with each company, but it saves time in filling in online forms and validating ID.
http://web.archive.org/web/201...
Visual Studio complains about the use of strcpy, strncmp, and insists on Microsoft's strcpy_s, strncmp_s variants, which seem mostly to insist on an additional maximum length to be specified.
This is what all backdoors look like. "Ooops, we accidently encrypt and decrypt the password and write it out at the end of the file". "Whoops, we missed out a break statement in the selection of the encryption algorithm, it always defaults to the legacy easily broken encryption method". "Oh, shooot, we forget to add the menu option to the router to filter out multicasts, anyone can send a SSDP multicast to that address and get a list of hosts returned."
Like Microsoft's Windows OS firewall doesn't allow blocking of Microsoft telemetry servers. Wonder why? What could be so harmful in blocking a data stream of a few hundred bytes/second?
That happened to a photographer in the UK. He made the mistake of viewing a "sting" photograph in a website in Luxemborg. The police there had set up a file directory to catch criminals. But he didn't understand the language and so triggered the a police investigation who then informed the British police:
http://www.oxfordmail.co.uk/ne...
There are a good number of defence technology companies who will consider veterans.
That's was before DLL's and .SO shared object library files. Before then, every application available on the system had to be statically linked with every library that it used. X-windows/Motif applications using sockets, RPC, multi-threading would be hundreds of megabytes in size. Once it was figured out that these libraries were being duplicated, the use of dynamic linking removed the bloat.
Intel processors are RISC internally, and have a micro-compiler to convert the CISC Intel instructions into the RISC equivalents. It's a small overhead, but given the superscaler architecture, high clock speed, it's not noticeable.
It used to be the case that the 80386 instructions had the REP prefix, which would allow one instruction to be repeated up to 256 times. For some reason, they didn't extend this to the floating-point instructions and now seem to have dropped it entirely.
The choice of high level language is more to avoid the debugging time having to deal with pointers, and matching memory allocation and deallocation. Even with C++, the use of smart pointers is preferred because then time doesn't have to be spent looking for memory leaks. To make things even more complex, these can differ from OS to OS and even compiler version. Plus they don't want to be dominated by Microsoft at any cost.
Known as "bit-rot" due to third party API's. Write your own software layers and there is no problem. Use a third-party API, and suddenly those simple menu widgets that you used happily for many years, suddenly disappear or get reformurgulated into some new document design pattern requiring base, derived parent and children classes with additional callback event handlers, simply because the developers thought those old widgets didn't provide enough flexibility. They could of course provided an emulation library built on top of their new release, but of course, that would have been too simple.
With kernel stuff, function calls suddenly start needing new pointers to return result codes, a data structure that used to bound inside a particular object is now passed by pointer because increased flexibility requires that the called makes the choice. Maybe a function call disappears because of the use of internal dependency tracking or new setup functions have appeared.
You just need to look at the evolution of the 3D API's to see how this works out; The evolution of OpenGL from the 1990's to the present day has about 60 different combinations of draw calls to render a simple 3D model.
Run "wireshark" on your PC with no web browsers open. Does your PC try and access Facebook servers? Does it constantly send a stream of data to Microsoft (52.169.64.244)?
"If you want to know who is logging your data, look at whose IP addresses you aren't allowed to block"
Many cities are moving to a future where a car isn't essential - good safe public transport with buses, trains and taxi services for long distances, walking for short distances.
Some people prefer to be ex-directory. It reduces the chance of being cold-called by sales people.
Facebook works by having each account defined as a hierarchical tree of information for each person; comments, photographs, links, account image. These are updated by making HTTP/HTTPS transactions to graph.facebook.com and other servers. I often find applications connecting to facebook to check for updates and goodness knows what else.
When I read the title, I thought these billboards would be electronic adverts listing the persons most recent purchases or targeted ads for health problems. I bet if that happened, they would soon push for legislation.
Since the 1990's, opposition to nuclear was due to where to put the reactors and the nuclear waste. The English NIMBY's just thought Scotland was the best place since it was the least densely populated part of the UK. The Scots figured that since the South coast of England was where all the population growth was happening the reactors should be done there. After all, if nuclear power is so safe, why not install the reactors in Battersea power station? It's right next to the Thames.
They've finally got the location sorted out, but now the major obstacle is cost due to the requirement by the insurance companies that the owners take out insurance to cover the compensation bill in the case that the surrounding area is contaminated and has to be evacuated like Chernobyl or Fukushima. That pushes up the price per energy unit.