HN user

georgehm

141 karma
Posts10
Comments37
View on HN

I have fond memories of implementing an optimizing compiler for the CS241 compiler course offered back then by Prof Michael Franz who was a student of Niklaus Wirth, probably the most exhilarating course during my time at UC Irvine. This was in 2009 so my memory is vague but I recall he provided a virtual machine for a simple architecture called DLX and the compiler was to generate byte code for it.

Google search points me to https://github.com/cesarghali/PL241-Compiler/blob/master/DLX... for a description of the architecture and possibly https://bernsteinbear.com/assets/img/linear-scan-ra-context-... for the register allocation algorithm

Effectively, eight CPUs run the flight software in parallel. The engineering philosophy hinges on a “fail-silent” design. The self-checking pairs ensure that if a CPU performs an erroneous calculation due to a radiation event, the error is detected immediately and the system responds.

“A faulty computer will fail silent, rather than transmit the ‘wrong answer,’” Uitenbroek explained. This approach simplifies the complex task of the triplex “voting” mechanism that compares results. > Instead of comparing three answers to find a majority, the system uses a priority-ordered source selection algorithm among healthy channels that haven’t failed-silent. It picks the output from the first available FCM in the priority list; if that module has gone silent due to a fault, it moves to the second, third, or fourth.

One part that seems omitted in the explanation is what happens if both CPUs in a pair for whatever reason performs an erroneous calculation and they both match, how will that source be silenced without comparing its results with other sources.

Leaving Google 1 year ago

Having two compilers helped ensure that the language was clearly defined.

When the two compilers differed, we knew that we had to clarify the spec and figure out what the right behavior should be.

This idea of having two implementations for spec stood out for me.

I am super curious to know what kind of software magic they did to bring the NDL system as the primary navigation system after their own system failed to function prior to landing .. From what I understood listening in to the broadcast, NDL was only a demonstration project and folks somehow managed to bring it up on demand and use 2 of the sensors on it (?) iirc .. Like how !? Was NDL set up in the same orientation as their original system ? If not, they updated their guidance system on the fly too !?? Simply amazing

Why? Here the asset used as collateral is a commitment to return the money if the loan isn’t repaid. Imagine I bought gold back when gold was 100$ , it’s current price is 1000$ and now I use it as collateral to get a loan . How is it fair that I have to pay taxes on 900$ of unrealized gains ?

Does the iPhone 14 still have the battery glued to the back? Couldn't figure it out from reading the article. I recently replaced the battery on my old iPhone 6s using the ifixit repair kit. Of all the steps I found removing the tape attached to the battery was the flakiest/hardest operation. After many attempts I did remove it but I also ended up cracking the battery a bit :sigh:. Any changes that make the removal of the battery easier would be a great win for repairability.

And once we knew (p-1)(q-1), we could then use some more little tricks to recover p and q, the prime factors we wanted.

I am curious to know about these tricks to recover p, q. Does anyone know?

The Zen of Go 6 years ago

Thanks @njharman , how does one consider between rewrite vs expand when it is known that some requirements will be true not for the current release but 2 or 3 releases down the line. Would you still prefer rewrite vs expansion? The reason I ask is I got severe pushback recently where I proposed building generic enough components and infra to go along with it that could have satisfied the requirements for the next 2 or 3 releases

The Zen of Go 6 years ago

What if, instead, we take a position that rather than enhancing components, we replace them. Then the best way to know when something needs to be replaced, is when it doesn’t do what it says on the tin.

This is something that I have had trouble reaching a balance. Replacing components could be costly and therefore it makes sense to design components that are extensible (and seem over engineered) especially when the requirements aren’t known completely? What are your thoughts on this

"After training, we can sample the network to generate synthetic utterances. At each step during sampling a value is drawn from the probability distribution computed by the network. This value is then fed back into the input and a new prediction for the next step is made. Building up samples one step at a time like this is computationally expensive, but we have found it essential for generating complex, realistic-sounding audio."

So it looks like generation is a slow process.

Generative Models 10 years ago

I personally found Andrew Ng's videos on Reinforcement Learning from cs229@stanford + inverted pole balancing programming assignment to be great intro's on the topic.