HN user

TFortunato

778 karma

I build robots.

Current: Staff Robotics Engineer at Chewy

Prior: Atlas @ Boston Dynamic; Robotics and Embedded Systems Engineering @ Amazon Robotics, Rethink Robotics, iRobot; Automation Engineering @ Ginkgo Bioworks.

Early Career: Electrical Engineer in Semiconductor Industry @ Applied Materials, Analog Devices, Allegro Microsystems

Posts4
Comments252
View on HN

At Amazon Robotics we built a robot control system that executed state charts (described in an extended version of SCXML) in real-time for managing the core behaviors of the robot.

To help people not have write the charts by hand, we built a DSL (originally in python, then in Kotlin), to author robot behaviors that then compiled down to SCXML. Conditions on guards were written in a tiny expression language we wrote, enabling you to look at various signals from the hardware and software at runtime and make decisions based off them.

The nice part of this setup was that it opened up a path for doing more formal analysis on the behavior. E.g. you could easily find "terminal" states that you could enter but not leave. You can also imagine things like checking things like which states in a parallel or in concurrently running machines, aren't allowed to be active, and verifying there is no path in the state graph that allowed that to occur. There were other nice properties as well, like getting a graphical visualization of your program state "for free"

It was definitely a more constrained model than a "full featured" programming language, but for our use case, controlling machines in a reliable way, it worked out very well!

OK, on reflection, there are a few things,

Kace's response is absolutely right that the summaries tend to be a place where there is a big giveaway.

There is also something about the way they use "you" and the article itself... E.g. the "you now have a comprehensive resource to understand and apply ML math. Point anyone asking about core ML math here..." bit. This isn't something you would really expect to read in a human written article. It's a ChatBot presenting it's work to "you", the single user it's conversing with, not an author addressing their readers. Even if you ask the bot to write you an article for a blog, a lot of times it's response tends to mix in these chatty bits that address the user or directly references to the users questions / prompts in some way, which can be really jarring when transferred to a different medium w/o some editing

This is probably not going to be a very helpful answer, but I sort of think of it this way: you probably have favorite authors or artist (or maybe some really dislike!), where you could probably take a look at a piece of their work, even if its new to you, and immediately recognize their voice & style.

A lot of LLM chat models have a very particular voice and style they use by default, especially in these longer form "Sure, I can help you write a blog article about X!" type responses. Some pieces of writing just scream "ChatGPT wrote this", even if they don't include em-dashes, hah!

Related fun fact - On many industrial robots that I've worked with, the teach pendant (the handheld controller you drive it around with), requires you to hold a 3 position spring-loaded switch in a middle position for the robot to operate, which requires you to hold with a rather precise amount of force. Squeeze it either too loosely or too tightly and the robot disables.

The idea being that not only will you dropping the pendant disable the robot, but it will also disable if you accidentally touch energized equipment and your hand clenches, or (more likely) you panic and squeeze the controller too tightly.

https://us.idec.com/idec-us/en/USD/Safety-Components/Enablin...

I think they are stating the odds of the federal government actually allowing secession to go through would be...minimal at best, given these assets in the state.

Brought back memories of taking french in middle school for me! I remember very little of that class, save the last few letters of the alphabet "w,x,y,z" as something like "double-vay, eex, igrek, zed" burned into my brain.

(Edit: I'm also learning quite a bit from the comments! "igrek" seems more common than I realized, and the american / english "why" pronunciation I grew up with may be the outlier!)

Hoping I can help you grok the problem a bit more. Typing on phone, so please excuse the lack of decent formatting.

A moving average is a good place to start thinking about it. Think about a case where you would use a moving average, and why. You are probably using it because you have some measurement (sensor) that you know is noisy, and so by averaging out the noise (taking the mean of a number of samples) you try to get a better estimate of the true value. If you know how noisy the sensor is, you can get an idea of how many samples you should average over to get a good measurement. You can also take the standard deviation and report both the mean and variance of your measurement over multiple samples if you wanted.

For purposes of this example moving forward -- we are going to estimate all of our sensed or inferred values as a gaussian, parameterized by mean and variance. It's a simple way to give a measurement with some uncertainty around it.

This can be a good start if you know nothing little about the system you are measuring, other then the sensor / measurement is noisy. However for many systems you may have multiple quantities you are interested in estimating, and you have some idea of how they relate to each other.

Take your example of a physical system with acceleration, velocity and position. Basic physics will tell you that if at time t, you are at position p, moving at velocity v, then at time t+dt, your position should be roughly p+(v*dt). Similarly, you can update your velocity estimate using your estimate of acceleration. If this is a system under your control, then you can also take things like a force you commanded to update your acceleration model. This is great, by using physics, without any measuring after time 0, we can just figure everything out forward in time forever, by simply using our process model! However, because your initial estimates had some uncertainty, what you will find is that, if you just keep doing this, the uncertainty grows larger and larger with each time step, and eventually become so large as to be useless.

Enter tha kalman filter. What the kalman filter does is tries to combine the information given by your sensors and combine it with your process model to give you a better estimate of the quantities you are interested in than you could get from either technique alone.

Every time step the filter will make an state estimate using the process model based on your previous state estimate, and then use your current sensor measurements to update that state estimate, both in terms of the mean and uncertainty. In the basic kalman filter you assume your process model is linear, all of your estimates are simple gaussians, and then decide how much you want to weigh your model vs. your sensors via a simple multiplying factor, "the kalman gain"

Sorry again I couldn't write this out as a program, and the likely horrible run-on sentences that come from typing on a phone, but I hope that a quick overview of what the technique is trying to do will help make it a little easier to fill in the owl!

it's not the file system that's the problem here, it's that "everything is a file" is not true for a whole bunch of important stuff that you might want to apply access control to on a UNIX system

I wonder if there has ever been an attempt to really lean into, and push the limits of sticking with the "everything is a file" philosophy in this realm.

I.e. how far could you get with having special files for fine grained permissions like "right to initiate a TCP connection", and making access control management be, essentially, managing which groups a user belonged to?

Sorry if I was unclear in my statement. I assumed, without access to the article, that this release is using "Tobacco" loosely to mean "some sort of Nicotiana", likely Nicotiana Benthamiana. Calling N. Benthi "Tobacco" is something I've seen in other press releases and popular descriptions of plant research.

Definitely not trying to suggest it's the only model plant! Like you said, Arabidopsis is huge, and there are other plants used commonly as well. Just pointing out that using N. Benthi / "Tobacco" in research is def not uncommon for some kinds of plant research. https://pubmed.ncbi.nlm.nih.gov/18616398/

All that said, I'm not a plant biologist! I'm just an engineer who happened to work for a bit of time in Biotech, and is trying to continue learning about that field on the side, so feel to take my thoughts on this with a grain of salt or 2!

The Password Game 3 years ago

I thought I had this issue, but it turned out I had to remember the "+" at the end, when I put my opponent in check

In almost every way, aside from the use of "a drop of blood"?

Snark aside, this article is claiming testing for a single blood parameter, clotting time, using purpose built hardware / software methods, vs the Theranos claim of building a single lab-in-a-box type device, that could test for myriad conditions or parameters all via a single drop of blood.

Looking at the banner pic on their main page, they seem to have at least one ISP install of multiple racks in the wild. Also, doing a little reading on how "fill" of the devices works, they talk about doing peer-to-peer filling of appliances located at the same site, which leads me to believe, even if not deploying a full rack, deploying multiple appliances to an ISP site is a relatively normal occurance

https://openconnect.netflix.com/en/peering/

The leap from "asking for something" to "asking something for everyone" doesn't seem like a big one.

Sorry to reply again, but this is quite surprising to me! I would feel very differently about an individual asking me for a copy of my work for personal use because they couldn't afford it / couldn't find a copy / wanted to learn from it, etc. vs. someone asking me to make my work freely available to all.

Regardless of how you feel about the principals behind why someone should do that, I hope you see there are very real differences in what you are asking them to do.

Would you be willing to provide examples of the types of works you are asking to be made libre/free? Or provide examples of how you are asking? It's tough to provide advice without knowing what / how you are asking. (No need to name anyone specifically.)

I saw from some other responses where you are coming from re: the principals of giving to the commons, and I do sympathize with that in general.

On the flip side, I hope you understand that there are many artists and programmers who are asked to work for free / "for exposure" on a daily basis. Exposure and the common good, unfortunately, does not pay the rent.

For many folks asking for their work to be given away freely is akin to saying "I feel your work is worthless". Or worse "I feel your work is worth something, but I / the world should be able to benefit from your work without you being compensated for providing me that benefit."

Even for folks sympathetic to free/libre principals, being able to give away one's work freely to the world is to be in a position of privilege, where they can work purely for principal of the common good because their own material needs are already being met. For many folks, that simply isn't the case.

I'm not a rust expert by any means, but redis and nginx are both written in C, which doesn't have async as a language feature. Is there a reason the techniques used there wouldn't translate to rust, regardless of the state of rusts native async support?