Sometimes you might need to use assembly sometime to reach your project objectives. Previously I’ve focused more on embedding assembly within gcc or another compiler. But just like some people want to hunt with a bow, or make bread by hand, or do many other things that are no longer absolutely necessary, some people like writing in assembly language.
In the old days of DOS, it was fairly easy to write in assembly language. Good thing, because on the restricted resources available on those machines it might have been the only way to get things to fit. These days, under Windows or Linux or even on a Raspberry Pi, it is hard to get oriented on how to get an assembly language off the ground.
Einstein referred to her as the most important woman in the history of mathematics. Her theorem has been recognized as “one of the most important mathematical theorems ever proved in guiding the development of modern physics.” Yet many people haven’t the slightest clue of who this woman was, or what she did that was so significant to our understanding of how our world works. If you count yourself as one of those who have never heard of Emmy Noether and wish to enlighten yourself, please read on. I can only hope I do her memory justice. Not just by telling you who she was, but by also giving you an understanding of how her insight led to the coming together of symmetry and quantum theory, pointing academia’s arrow toward quantum electrodynamics.
Being a female in Germany in the late 1800s was not easy. She wasn’t allowed to register for math classes. Fortunately, her father happened to be a math professor, which allowed her to sit in on many of his classes. She took one of his final exams in 1904 and did so well that she was granted a bachelors degree. This allowed her to “officially” register in a math graduate program. Three years later, she earned one of the first PhD’s given to a woman in Germany. She was just 25 years old.
1907 was a very exciting time in theoretical physics, as scientists were hot on the heels of figuring out how light and atoms interact with each other. Emmy wanted in on the fun, but being a woman made this difficult. She wasn’t allowed to hold a teaching position, so she worked as an unpaid assistant, surviving on a small inheritance and under-the-table money that she earned sitting in for male professors when they were unable to teach. She was still able to do what professors are supposed to do, however – write papers. In 1916, she would pen the theorem that would have her rubbing shoulders with the other physics and mathematical giants of the era.
Noether’s Theorem – The Basics
Emmy Noether’s Theorem seems simple on the onset, but holds a fundamental truth that explains the fabric of our reality. It goes something like this:
For every symmetry, there is a corresponding conservation law.
We all have heard of laws such as Newton’s first law of motion, which is about the conservation of momentum. And the first law of thermodynamics, which is about the conservation of energy. Noether’s theorem tells us that there must be some type of symmetry that is related to these conservation laws. Before we get into the meaning, we must first understand a little known subject called The Principle of Least Action.
The Universe is Lazy
I would wager a few Raspberry Pi Zeros that many of you already have an intuitive grasp of this principle, even if you’ve never heard of it before now. The principle of least action basically says that the universe has figured out the easiest way possible to get something done. Mathematically, it’s the sum over time of kinetic energy minus potential energy as the action occurs. Let us imagine that you’re trying to program an STM32 Discovery eval board in GCC. After about the 6,000th try, you toss the POS across the room and grab your trusty Uno. The graph depicts the STM32 moving through time and space.
The green points represent particular points of how how high the STM32 is at a given point in time. Note that there are no values for height and time – this example is meant to explain a principle. We can say that at these points (and all points along the curve), the SMT32 has both kinetic and potential energies. Let us call the kinetic energy (kt) and the potential energy (pt). The ‘t‘ subscript is for time, as both the energies are functions of time. The action for each point will be called s, and can be calculated as:
However, action is the total sum of the difference of energies at each point between t1 and t2. If you’ve read my integral post, you will know that we need to integrate in order to calculate the total action.
Now before you get your jumper wires in a bunch, all that is saying is that we’re taking the difference in potential (p) and kinetic (k) energies at each point along the curve between t1 and t2, and we’re adding them together. The elongated S symbol means a sum, and the (dt) means as it changes over time. The path that the STM32 will take will be the path where the action S is at its minimum value. Check out the video in the source section below if you’re confused. It’s only 10 minutes and goes into this concept in easy to follow details.
Noether’s Theorem – The Details
Noether’s theorem is based upon a mathematical proof. It’s not a theory. Her proof can be applied to physics to develop theories, however. Now that we know what the principle of least action is, we can do just this.
Any law of nature can be traced back to a symmetry and the least action principle. Let’s consider two very simple examples – Newton’s first law of motion and the first law of thermodynamics.
Conservation of Momentum
Space has what is known as translational symmetry. That’s just fancy-pants talk for saying that what you do in one point in space is the same as what you do in another point in space. It doesn’t matter what hacker space you throw your STM32, it will act the same at all hacker spaces on earth. Space itself provides the symmetry. And because the principle of least action applies, you have a natural law – the first law of motion.
Conservation of Energy
Time has the same translational symmetry as space does. If I toss the STM32 now, and toss it tomorrow, it will act the same. It doesn’t matter what point in time I toss it, the results will always be the same. Thus energy is conserved between different points in time. Time is our symmetry, and the 1st law of thermodynamics is the result.
Now, I realize these examples might seem a bit useless. But when you dig a bit deeper, things get interesting. Electrical charge is also conserved. Noether says there must then be some type of symmetry involved. What do you suppose that symmetry might be? Keep following that rabbit hole, and you’ll end up face to face with QED. We’ll get there in a future article, so for now just keep Noether’s Theorem in mind.
Sources
Physics Helps, The principle of least action, video link.
Ransom Stephens, Ph.D., Emmy Noether and The Fabric of Reality, video link
2016 is the year of the consumer 3D printer. Yes, the hype over 3D printing has died down since 2012. There were too many 3D printers at Maker Faire three years ago. Nevertheless, sales of 3D printers have never been stronger, the industry is growing, and the low-end machines are getting very, very good.
Printers are also getting cheap. At CES last January, Monoprice, the same company you buy Ethernet and HDMI cables from, introduced a line of 3D printers that would be released this year. While the $300 resin-based printer has been canned, Monoprice has released their MP Select Mini 3D printer for $200. This printer appeared on Monoprice late last month.
My curiosity was worth more than $200, so Hackaday readers get a review of the MP Select Mini 3D printer. The bottom line? There are some problems with this printer, but nothing that wouldn’t be found in printers that cost three times as much. This is a game-changing machine, and proof 2016 is the year of the entry-level consumer 3D printer.
As buzzwords go, the “Internet of Things” is pretty clever, and at the same time pretty loathsome, and both for the same reason. “IoT” can mean basically anything, so it’s a big-tent, inclusive trend. Every company, from Mattel to Fiat Chrysler, needs an IoT business strategy these days. But at the same time, “IoT” is vacuous — a name that applies to everything fails to clarify anything.
That’s a problem because “IoT Security” is everywhere in the news these days. Above and beyond the buzz, there are some truly good-hearted security professionals who are making valiant attempts to prevent what they see as a repeat of 1990s PC security fiascos. And I applaud them.
But I’m going to claim that a one-size-fits-all “IoT Security” policy is doomed to failure. OK, that’s a straw-man argument; any one-size-fits-all security policy is bound for the scrap heap. More seriously, I think that the term “IoT” is doing more harm than good by lumping entirely different devices and different connection modes together, and creating an implicit suggestion that they can all be treated similarly. “Internet of Things Security” is a thing, but the problem is that it’s everything, and that means that it’s useful for nothing.
What’s wrong with the phrase “Internet of Things” from a security perspective? Only two words: “Internet” and “Things”.
Makerbot is in the gutter, 3D Systems and Stratasys stock is only a shadow of their 2014 glory, but this is the best year 3D printing has ever had. Machines are now good and cheap, there’s a variety of various thermoplastic filaments, and printing useful objects – instead of just plastic trinkets – is becoming commonplace.
The standard rectilinear infill from Slic3r
There’s one area of 3D printing that hasn’t seen as much progress, and it’s the software stack. Slicing, the process of turning a 3D object into a Gcode file for a printer has been basically the same for the last few years. Dual extrusion is still a mess, and automated bed leveling is still in its infancy.
One aspect of slicing that has been severely overlooked is infill. Obviously, you don’t want to print plastic trinkets completely solid – only the outside surface matters, and a part with 100% infill is just a waste of plastic. Different slicers have come up with different ways of filling the inside of a print, usually with a grid of squares, triangles, or hexagons.
While the most popular methods of filling in a 3D printed objects do the job of adding a little bit of strength to a print and supporting the top layers of a print, it’s not an ideal solution. The desired strength of the finished part is never taken into account, print artifacts are sometimes visible through the side of a print, and the spacing of the infill grid is completely arbitrary. You can only set a percentage of infill, and telling a slicer to make an internal support grid with 10mm spacing is impossible.
Type A Machines just changed all of this. With the release of their public beta of Cura Type A, the infill for a 3D printed part is also 3D. The dimensions of the infill are predictable, opening the door to stronger and better looking parts.
From the Type A press literature and white paper, this new type of ‘infill’ isn’t; it’s more properly referred to as ‘internal structure’, with proper dimensions between infill features. Instead of a grid of squares or triangles stacked one layer on top of each other, it’s a true structure, with the infill following the perimeter of the 3D printed object.
Generating 3D Infill
Infill generated from Type A Machine’s Cura beta. Note the 3D structure of the infill.
Right now, infill is generated in a slicer by specifying a percentage. Zero percent infill means a hollow object, and 100% infill is a completely solid part. These two edge cases are easy, but anything else means the slicer must fill the part with filament in a grid of tessellating shapes, either rectangles, triangles, or hexagons. With current slicers, the dimensions of this internal structure are, for all practical purposes, random. Printing an object with 20% infill might mean a grid of squares with 5mm or 2mm spacing. Telling the slicer to infill a part with a grid of squares spaced 10mm apart is impossible.
Type A Machine’s latest Cura release changes all of this, allowing a designer to set a precise distance between rows and columns of infill. By defining infill in absolute dimensions, this allows for stronger parts using less infill.
Absolute dimensioning is only one feature of the Type A Machine’s latest release of Cura. Even more exciting is the development of 3D internal structure. Instead of stacking layers of squares, triangles, or hexagons on top of each other, Type A Machine’s Cura uses an infill of cubes turned on their side. While each individual layer of infill looks like a series of triangles and irregular hexagons, when assembled into a printed 3D object, this infill forms a true 3D structure.
The closest comparison to this sort of structure is the difference between graphite and diamond. Both of these materials are made out of the same element, carbon. The physical structure of graphite is just, 1-atom-thick layers of graphene, producing a relatively weak material. Diamond, on the other hand, has a true 3D structure and is one of the hardest materials known to man. While adding 3D structure to the infill of 3D printed objects won’t make the objects any stronger, it will drastically reduce delamination, and be much more resistant to stresses in all three dimensions.
While Type A Machines has done some great work here, it does mean there’s yet another version of Cura to deal with. Type A Machine’s Cura, in addition to the LulzBot edition and the original are now the defacto standard for turning 3D objects into printed parts. Having an open source solution is great, but forking the development this much surely can’t be ideal.
One of the biggest challenges for a company that holds invaluable data is protecting it. At first, this task would seem fairly straightforward. Keep the data on an encrypted server that’s only accessible via the internal network. The physical security of the server can be done with locks and other various degrees of physical security. One has to be thoughtful in how the security is structured, however. You need to allow authorized humans access to the data in order for the company to function, and there’s the rub. The skilled hacker is keenly aware of these people, and will use techniques under the envelope of Social Engineering along with her technical skills to gain access to your data.
Want to know how secure your house is? Lock yourself out. One of the best ways to test security is to try and break in. Large companies routinely hire hackers, known as penetration testers, to do just this. In this article, we’re going to dissect how a hired penetration tester was able to access data so valuable that it could have destroyed the company it belonged to.
The start of any hack involves information gathering. This is usually pretty easy for larger companies. Their website along with a few phone calls can reveal quite a bit of useful information. However, you can be assured that any company who has hired a pen tester has taken the necessary precautions to limit such information.
And such was the case for our hacker trying to gain access to the ACME Corp. servers. Her first target was the dumpsters – dumpster dives have been proven to unearth a trove of valuable information in the past. But the dumpsters were inside the complex, which was guarded by a contracted security firm. Through a bit of website snooping and a few phone calls, she was able to find out the department that was in charge of trash removal for the company. She then placed a phone call to this department. Using a social engineering (SE) technique known as pretexting, she pretended to be with a trash removal company and wanted to submit a quote to service their business. Using another SE technique called elicitation, she was able to find out:
that trash collection took place on Wednesdays and Thursdays
the total number of dumpsters
that there was a special dumpster for paper and technology trash
the name of the current waste removal company – Waster’s Management
the name of the employee in charge of the waste removal – [Christie Smith]
Dumpster Dive
Armed with this information, she went to the Waster’s Management website and grabbed their JPEG logo. Within a few days, she had a shirt and hat with the logo in her hands. She called the security department and said she was with Waster’s Management, and that [Christie Smith] had told her one of the dumpsters was damaged, and she needed to take a look at it before the next trash removal.
The next day, wearing the shirt and hat she had ordered online, she was given a badge from security and allowed access to the dumpsters. Now, any hacker worth her weight in PIC16F84’s already knows what dumpster she dove into. It didn’t take her long to walk away with several hard drives, a few USB drives and some useful documents. She was able to gain knowledge of an upcoming IT contract work, the name of the CFO, and the name of a server with some level of importance – prod23.
Hacking the Server
With some more SE, she was able to find out when the IT work was scheduled. It was after hours. She showed up a bit late and was able to walk right through the front door by claiming she worked for the IT contract company. She then shifted roles and pretended to be an employee. She approached one the real IT contract guys, and said she worked for the CFO, [Mr. Shiraz], and asked if he knew to be careful with the prod23 server. With more SE, she was able to find out the prod23 server was off-limits, encrypted, and only accessible by specific admins.
She was able to access an admin office, and it was there she would don her black hat. She booted the computer with BackTrack via USB and installed a key logger. She made an SSH tunnel to her personal server where she could dump the contents of the key logger, along with some other shells. Now, this is where things get interesting. She opened Virtual Box and used the computer’s hard drive as the boot medium. The VM booted the OS, and she hid all of the screen decorations to make it look like the target OS was running. The admin would log in without a clue, and our hacker would get their username and password through the key logger.
Once the login information came in, she was able to access the admin’s computer, and from there the prod23 server. You can imagine the look on the faces of the top executives for ACME Corp when our hacker handed them a copy of the keys to their kingdom.
Social engineering is human hacking, and a dark art in itself. Our hacker in this story would have never been able to even get close to the server if she did not have SE skills. No matter how secure you make something, so long as you allow humans access to it, it’s vulnerable to attack. And then it’s down to how well-trained your people are in repelling these kinds of intrusions.Just ask Target.
You can find the full story in the source below.
Sources
Social Engineering, The Art of Human Hacking, Chapter 8, by Christopher Hadnagy, ISBN-13: 860-1300286532
Between Tesla Motors’ automobiles and SpaceX’s rockets, Elon Musk’s engineers just have to be getting something right. In part, SpaceX’s success in landing their first stage rockets is due to analysis of telemetry data. You can see some of the data from their launch vehicles on the live videos and there is surely a lot more not shown.
An article in MIT Technology Review provides similar insights in how Tesla came from behind in autonomous vehicle operation by analyzing telemetry from their cars. Since 2014 their Model S received an increasing number of sensors that all report their data over the vehicle’s always-on cellular channel. Sterling Anderson of Tesla reported they get a million miles of data every 10 hours.
Image Credit Tesla
The same approach can help us to improve our systems but many believe creating a log of key data is costly in time and resources. If your system is perfect (HA HA!) that would be a valid assessment. All too often such data becomes priceless if analysis explains why your drone or robot wanted to go left into a building instead of right into the open field.