629 karma · joined July 4, 2017
At the end of the day we did not go forward with that. The reasons mostly were:
1. Even though I used a lot of my "social credit" on this everybody was scared of it. Mostly because of the vibe that comes with Haskell.
2. Purely functional languages come with lots of concepts that are unfamiliar to most programmers (everybody in my team was well equipped with CS degree and theoretical knowledge but still those concepts were new-ish).
3. The higher in company hierarchy the more people were scared (this was a critical project for the whole company of ~22k people).
4. We couldn't figure out debugging. Our codebase was ~40k generated lines of code (type definitions, basic accessor functions and so on) plus ~10k LoC we would write on top of that. The only VSCode-based debugging I was able to figure out was basically loading it in GHCi and then doing the debugging which was fine. The problem was the load itself. It took ages because it recompiled majority of the codebase on load. No precompiled parts were used. Result was that every debugging session took minutes to start up.
On the other hand Liquid Haskell has a great potential and I hope that there is a future in which we have similar tools in more common languages. As the complexity of the codebase grows it become more important to have a tool to provide additional guarantees. We did not have much of the code on its own but it was packed with complexity and dependencies. Liquid Haskell seemed to provide a tool that does not get into your way when you don't need it but it available when you want it.
The demand for power in Australia doesn’t get any lower by shutting down a power plant. The only thing that will happen is that the other power plants will ramp up to keep up with the demand. A true solution would be to provide new installed capacity to the grid that would price out the existing assets. And if the new capacity is less CO2 intensive than you lowered the emissions.
Question is what is that other source? If generation of the renewables is lower than peak load (times a reasonable factor like 1.5) than you build renewables. Otherwise you focus on bringing power from hours with lots of renewable generation to the rest of the day aka you build energy accumulation. If the accumulation solution is too expensive (either CAPEX or OPEX) than you have to invest in lowering that down. If you lower that down with your money, it will become more favorable for others to build this solution around the world. Others will come and build this solution of yours. This way you effectively lowered way more emission for the same money (assuming you will come up with something reasonable).
State of the art electrolyzers are run at 1000x current densities. That roughly means 1000x installation cost.
Neither of this is required for a slick demo in well lit room and perhaps on better HW.
I as a developer can go through the cases and reason that those cases are actually exhaustive and move on. Problem is that this is time consuming and one would need to check everything every time the partitionings change (which happens).
This seems like a great compromise between closedness of iOS/android and robustness of the phone based solution.
What it does is basically a big optimization problem. You have 6 parameters for each picture (x, y, z, roll, pitch, yaw, although in practice there are better parametrizations based on what is called Quaternions). Than three prameters for the position of each keypoint. Those are simply the same physical spots on multiple image that are matched based on their visual appearance.
Last component is a metric that you try to optimize. That is mostly just reprojection error. Given all your current estimates where yould the keypoints be projected on this synthetic image. Then you compare it with the pixel locations of where it actually in and try to minimize this.
It is actually a very versatile and robust pipeline which gives you what you’ve seen on the images.
Last step is to produce the dense reconstruction which is commonly done using patch match algorithm.
You can try it for yourself with the OpenMVG library. Very hackable and versatile.
It takes quite some care to make those algorithms robust. Even when you run in an environment covered with diverse visual features. The state divergence is a real thing which essentially means the copter is falling from the sky (Do they call it like that on Mars?).
One thing they didn’t mention is energy used for round trip per unit of H2 and cost of the material itself. Neither was discussed there. Many similar materials exist already.
Many CO2 neutral pathways with other molecules exist. Amonia, methanol, ethanol, DME, urea, formic accid and so on.
PS: If you’re into this stuff, keep an eye on the Fraunhoffer institude. They have many cool projects. (I am not affiliated with them in any way)
Other argument might be FPV video. There are quite a few youtube videos comparing analog video streams over 1.3 to 5.8 GHz. The difference is there but much less than I expected.
Just my experience so far.