The progressive loss in consumer robotics company in the West to their Chinese counter parts has been disappointing. Much like drones, I suspect this is short sighted as the underlying technology eventually have national security concerns.
Now maybe these companies are likely just mismanaged and the cost of North American engineering is too high? That said, it still seems like there is a structural problem here that very few hybrid software-hardware companies succeed.
The problem is, Chinese consumer tech is full of extremely competitive and cut-throat companies. Some countries don’t like how their government is giving a tons of subsidies for them to progress like crazy (see BYD in 2012 vs now), but they’re delivering results. Combined with their low cost of engineering, the prices in the products are also pretty low, so it’s a no-brained for an average person to buy something for double the price for half of the functionality, just because it was designed in US.
It's competition. Competition made US what it is and now the US economy has moved from competing on product quality to competing on who buys a better lawyer and politician to block competing companies from existing. Or just buying them.
I wonder how much money is burned in the economy just paying people to write EULAs, laws and service agreements to more effectively avoid liability and screw over customers vs. how many is actualy going into improving products and services?
You're exactly right. I'm not asking for people to choose an inferior, pricier product. My thoughts is that China has the environment to have extreme competition which is leading to better product. This is distinctly not the case here. This is the structural problem that will eventually lead to a loss of competitive edge.
Your call out to BYD is a good one, because it is conceivable that even western-made cars will be made non competitive in 10 years and it seems that we are sleeping through the news (or even encouraging it). I hope I'm wrong, but the road ahead is filled with challenge because the direction is fundamentally wrong, and it will take a lot of effort to reverse course, if that is even possible.
A lot of western companies do not compete anymore - established european countries are basically oligopolies and their lunch is slowly eaten by the more aggressive chinese companies and Tesla. American companies - aside Tesla - is in the same situation. Rich on government contracts and control over their home market.
Basically a lot of established manufacturers are IBMs of this era.
Uh, Tesla got tons of money direct via carbon credits and indirect via consumer EV credits. They're actually in trouble for possibly lying about their range and getting more credits than they should have.
Yeah it sucks. We’re trying to play catch up game for manufacturing industry, but it’s abysmally hard to get it going. I don’t think we can easily pour down money and the talent and processes would just reappear in a couple of years either. So, my assumption is high-scale tech protectionism wars are going to start.
I think people focus on protectionism because that is the traditional tool to fight things like foreign government's unfair subsidy practices. However, you cant just have protectionism without fostering competition and innovation in order to succeed in creating a more competitive product/market. Example would be USA protectionism against Canada's bombardier. It only protected Boeing but didn't actually make Boeing make better planes, as we can see from all the recent issues.
So I think protectioism is fine as long as we properly setup an environment that allows for and encourages competition and innovation. However, that doesn't seem to be a path we are used to taking .
Absolutely agreed. I do think it will go the Argentina way if/when we start mass banning imports of Chinese consumer tech. Well, unless, as you mentioned we start heavily investing and encouraging local competition. I guess, time will show, but I hope we don’t cut ourselves out of good products just because “they’re foreign”.
It's hard to call it mismanaged when they did the playbook that is expected by prevailing finance and economic views since the mid 70s: paring down to one thing and increasing what you give to shareholders over time. Or perhaps that is the structural problem.
The problem is Chinese companies are subsidized by their government to manufacture things of little or no intrinsic or critical value. Automated vacuum cleaners and consumer drones are niche electronic novelties. Electric cars using solid state batteries are also novelty that will be obsolete once electric engines that use liquid fuels become mainstream (fuel-cells).
The purpose of subsiding what are zombie companies is to maximize employment to ensure internal stability. The wins these companies show are propaganda wins only and don’t make the country more competitive. Foreign manufacturing is also migrating out of China at an alarming rate as shown by falling exports and GDP growth.
None of the development in the Chinese technology sector is sustainable. These companies would never survive on their own without subsidies and are dependent on them. It’s a cascading failure waiting to happen in the Chinese economy and will likely be a global shock. At least the Americans may appear to take longer to develop winning companies but once they do they tend to be sustainable and long lasting as organic enterprises.
Edit: The American free market is working as intended because it rightly values robotic vacuums as useless devices.
> Electric cars using solid state batteries are also novelty that will be obsolete once electric engines that use liquid fuels become mainstream (fuel-cells).
This seems like a big statement, can other experts comment?
Current battery tech has a slow and steady progression of improvement. There is bound to be a market disruptor at some point in the future, but it’s far from a guarantee that it’s going to be hydrogen.
I believe the biggest hurdle to any changes to current battery tech is that it costs so much to develop an entirely new process and build factories. Most innovation is in the form of small adjustments. For hydrogen to overcome this hurdle it would have to either be extremely cheap or have some unique property. For cars I don’t see hydrogen having that much of an advantage, but maybe electric planes would be feasibly powered by hydrogen due to the much improved weight to energy ratio.
you have so much incorrect views of Chinese companies, the technologies these companies have, what is actually happening on the ground in China. You also vastly underestimate the real complexity of making today's products, even as mundane as a hair dryer or a toy. Chinese manufacturing makes making them look easy, people think all you need is bunch of cheap labor and you are set. No it's not. Also, for white label products, examples like hair dryer, washing machines, air conditions, its the Chinese companies who design, build and test, the entire lifecycle of the product, importers buy them and slap on their own brand.
Think what goes into a hair dryer? Exterior design, looks good and functional. How you make the plastic cover, do the plastic injection molding? How you design all the internal parts, fan, motor housing, heating wire, power circuits, micro-controllers etc, and make sure everything fits. Some companies even do individual components themselves, like the brushless motor, or there is a Chinese supplier that makes them, which provides much faster time to response. Then do the testing for each component, electric, heat, water, moisture testing. Then design a mass manufacturing system with automation and human labor that achieves really high yield and low wasted materials. This is the hardest part, its easy to make a hair dryer by hand taking 100 human hours and make sure it works. It's much harder to make 1M hair dryers per month, that is going to be used in all sorts of environments and with all kind of abuse, make sure they work well for a number of years so customers don't return them, or you go bankrupt from recalls and warranty, and make sure you only have to throw out the absolute smallest number of manufacturing defects, and really control your cost structure so you still make a profit when importers are squeezing your price. Then the supply chain and logistics, shipping from suppliers and shipping to customers. Then create a number of products for different markets. China can manufacture for cheap, but people don't realize manufacture for cheap and at massive quantities is a technology itself. It's also management, business process, even company and worker culture. China doesn't have the cheapest labor cost. It's the combination of everything that produces a physical product with the level of quality, fit and finish at the price point.
It’s only disappointing if you care about the relative power of national economies.
As someone who doesn’t care at all about stack ranking or any nation’s “national security”, as a consumer, more competition, and more and cheaper products is a simple and uncomplicated win.
Almost all of my favorite companies are in Shenzhen presently. I would move there if I could do so easily.
> Almost all of my favorite companies are in Shenzhen presently.
All my favorite devices were designed/engineered either in Japan or in the USA. I'd take good engineering over cheap manufacturing every time. And we could do with lower number of devices. While they are probably made in the same factory, I'd love a focus on quality instead of price.
Following your own logic, you'd never have had any Japanese engineering if everyone thought the same thing about japan in the 60s and 70s. It used to be considered the place where cheap stuff and knock offs were made, but it evolved from there. Same seems to be happening to China right now
As someone who actually care about those but not a US citizen, I welcome all of these! It's just funny seeing the free trade principles that's been repeated over the ages getting reversed like this. Now this is the end of colonization.
unless you are a descendant of Chinese or at least Asian people, if you move, you may find what "national security" is about.
countries compete, albeit on different rules - having a monopoly on violence and a centrally controlled money printer tends to do that - so your dream of 'just pure free market competition' can only ever be that - a dream.
With China's policy being what it currently is, we're going to feel the economic consequences, in the US and in Shenzhen alike :( Good thing if it's going to be only limited to economic consequences.
I don't understand how a probabilistic holdbacks can be effective if you can requests for the attestation token multiple times. If the holdback percentage is 10%, the probability of getting no attestation for 10 calls in a row would be something like 0.1^10 = 1e-10. This seems trivial to implement and use to block users.
Granted, I don't fully understand how they intend to holdback, but even if they cache the results of the attestation such that 10 calls in a row fails to attest, they can't cache it infinitely. Website can employ traditional fingerprinting techniques/cookies in combination with attestation to build pretty foolproof systems to not serve the user based on attestation results.
This too. Maybe Google is willing to say something like "okay, for the duration of today, no WEI for you"; but unless they're doing something a lot more clever than the spec suggests, the "fallback" could very well be "retry the request until it succeeds and sends an attestation token."
Google would need to make holdbacks persistent enough that you couldn't retry them and get a different result. Even if they do, there are other problems, but... I mean, randomly failing requests is definitely not enough to guarantee that attestation would be optional. And there are no details I see in the spec that suggest to me that Google is planning to do something different.
How would you even differentiate between retries? If you isolate it by domain, the website can redirect you 10 times, each collecting an attestation token. They could perform statistical analysis with cookies. Websites could even force logged in users to conform to a particular browser (banking apps already do this). It's difficult for me to understand how the authors can miss these implications. They even said that with holdbacks the websites can still perform statistical analysis. Statistical analysis is not just a tool for aggregate data. It can be applied to a single client with enough other identifiers.
The "explainer" does actually address this, by talking about "a small percentage of (client, site) pairs". In other words, a particular browser, going to a particular site, will always and forever either enable holdback or not.
So, no, you couldn't continually request attestation from the one site. Instead, you could create 20 separate top-sites and load them all in tiny iframes. :)
Even if requests to separate domains didn't work, a 5% user loss is likely something that many websites can afford to ignore.
Remember that Firefox has at least a 3% marketshare. Safari has somewhere in the neighborhood of 20%. If websites are willing to go Chrome-only in that environment, permanent holdbacks won't change anything for those websites.
Particularly not if the solution to those holdbacks is "reinstall your browser and the holdback will probably go away." Which... they'd need to be unless Chrome starts tracking users to figure out who should have what holdbacks :)
The only way that holdbacks matter is if they affect 100% of Chrome users -- ie every single one of your customers/readers will at some point not send you attestation at some point for your website. And even then... telling them to refresh the page becomes a problem.
But it it's only a subset of users, then just banning 5% of users (especially from ad-supported platforms) seems perfectly feasible for a company and would probably be a preferred solution for some of them.
----
User: "Hey, for some reason when I browse Reddit nothing loads."
Support: "Yeah, very rarely a new Chrome install will do that. If you create an account and sign in, and then you send us some verification documents like an ID so we know you're not a scammer, then you'll still be able to browse. Otherwise just reinstall Chrome."
User: "Is there anything else I can do?"
Support: "No, we have to protect our ad integrity. If reinstalling the browser doesn't help, contact Google about it."
----
> Instead, you could create 20 separate top-sites and load them all in tiny iframes. :)
I found this to be hard-ish to get started as well. However, it turns out you just need to write your program to be performant, and know a few tricks to tune the OS and the scheduler. After looking on the internet and failing to find material about this, I wrote a series of blog post for this topic recently, starting with this post: https://shuhaowu.com/blog/2022/01-linux-rt-appdev-part1.html
The series is mostly complete, except one to two posts on more advanced topics like validation and lockless programming.
Real-time software does not mean fast software!
It mean determinism, guarantee that each time it run it will never take more than x milliseconds to complete.
Those guarantee are very hard when considering a system like linux with many background process or thread each randomly doing IO and allocating memory.
> A hard-real time system is a system in which a failure to meet even a single deadline may lead to complete or appalling system failure. A soft real-time system is a system in which one or more failures to meet the deadline are not considered complete system failure, but that performance is considered to be degraded.
even in the case of soft-realtime we don't say the system is real-time because it's fast. We say its realtime because majority of the time it meet its deadline.
Yes, at the same time I don't know if I'd characterize a soft-realtime system as slow. One way to meet deadlines is by being very efficient/fast, while keeping variance low (e.g. no stop the world gc).
That would indeed be a realtime system by common definitions as long as that latency is guaranteed. Audio and video are commonly considered soft-realtime domains for exactly that reason.
And phone … callthatju arousmpnnd is n’t realtime.
Technically not relevant but I know that a lot of early handhelds that repurposed RTOS for GUI felt slow, jumpy and unresponsive, perhaps because everything was polled? In that sense RTOS can be slow.
I think it felt that way because of bad design + slow hardware. You see the exact same thing by installing a modern windows version or some desktop like GNOME to low-end computers.
You're right, but I think it's mostly semantic and depends on how you define "performant" or "fast". Real-time software is about being "fast enough", every time. After all, slow and fast is subjective measures that varies wildly depending on the context.
In the context I'm working with (1000Hz hard real-time), the software has to be "performant" (running algorithms like collision detection) in a deterministic manner as each loop iterate has less than 800us of time. When developing such a system, the developer needs to accurately know the performance characteristic of the software ahead of time.
In another system, fast might mean 5ms, which is unacceptably slow in the context above.
I love both spreadsheets and Python/Jupyter. But neither is Excel the silver bullet? The reason the error is caught (and the real lesson) is more because he tried to reproduce his work as opposed to a particular technology stack.
Python is sufficiently readable, and with the right extension, it is sufficiently fast for vast majority of the purposes. For Julia to truly gain momentum, I think it needs a "killer app/library". However, I'm not sure what it would be that would not already be built for Python.
My personal killer app would be a significantly revamped plotting library/app. While matplotlib is great, it is fundamentally based on imaged-based plotting. The next generation of data visualization, imo, will likely be interactive. Having an interactive plotting library that allows you to produce publication-quality plots faster and simpler (think of all the time spent aligning text manually..) could be a big deal, but it could also not matter as no one else wants the same things I do.
Have a look at Makie.jl[1] in Julia. I've been using it for exploring large data sets recently. Ticks your boxes. Jupyter version is image based though, as Jupyter is inherently static. You could use Pluto.jl[2] to build a reactive page.
Thanks for the link. Makie.jl looks interesting. I didn't find it last time I looked into Julia. I'll get it a shot at some point to see how usable it is.
A language like Ruby can be very productive for someone who has climbed the learning curve to learn all its ins and outs. However, in my experience, this turns into a large productivity drain the moment someone else (who is less of an expert) has to touch it.
For large projects with multiple developers, readability should win over writability every time, most code are read more than they are written (my hypothesis). You can see evidence of this, given the success of languages like Python and Go.
That said, for scientific compute, in a lot of cases, writability matters way more, as your job as a scientist is to produce results as fast as possible, code quality be damned. However, only a small number of scientists are expert developers and have climb the learning curve and can write code with ease. The vast majority of them are junior at best, and Python's approachability (which is rooted from its readability of course), wins. With most of the people using Python, the ecosystem develops and there are no other viable alternatives. In the long run, I suspect even languages like MATLAB and Mathematica will die out as the open source stack becomes more mature and (eventually, if not already) significantly more capable. Julia might be a wildcard due to its (potential) performance advantages, but the aesthetics of the programming language is simply not in the minds of 99% of the scientific compute users out there.
As someone that have spent a lot of time in both Ruby and Python (and specifically a lot of hours in the Python scientific compute stack), I would say that Python is significantly more readable. Python is also significantly easier to teach as opposed to Ruby, especially if the target audience already has a bit of programming experience (from MATLAB, or other courses).
I suspect the main reasons are:
1. Python's guiding philosophy of "There should be one-- and preferably only one --obvious way to do it". With later additions to the language, this is getting less true (3 different ways to format strings, asyncio, type hinting, etc). Some libraries also don't conform to this (matplotlib). That said, it's a lot better than the Ruby code I've encountered, which is like the wild west.
2. Python's syntax is reasonably simple to teach. The object model could be condensed into something very simple if you don't need a lot. With very basic knowledge, you can go a long way. Ruby's a bit more chaotic with things like inheritance, extend, and include; proc, block, lambda; having to use attr_accessor; syntax things like a = b could be a function call or not; if/unless; and many more things that are confusing.
3. Even basic things like loops in Ruby is not idiomatic as it wants to apply a function/block instead. Beginners, especially those with a bit of background, like their loops better than functional programming.
As I've spent many years working on Ruby code base I still get lost all the time. Python in my experience has been a lot better, although recent Python versions have regressed a bit as it introduced more syntax to do the same things.
Now maybe these companies are likely just mismanaged and the cost of North American engineering is too high? That said, it still seems like there is a structural problem here that very few hybrid software-hardware companies succeed.