We wanted a cross-platform C++ layer and native Cocoa front end. Objective C++ wasn’t a thing then, and having built a plain C shim previously I didn’t want to repeat the experience.
We built our own bridge by registering our C++ classes with the Obj-C runtime, generating selectors for all the methods so you could send messages to (carefully constructed) C++ objects using Obj-C syntax, or even subclass from C++ to Obj-C.
It was a pretty neat trick, but would’ve been difficult to port to the Obj-C 2 runtime.
The problem is that you’re always at a sensor deficit because you need so much more resolution to cover a wide field of view. When sensors and chipsets would finally catch up, user expectations would grow to match. Now we’re up against physics: Can’t add more resolution past the diffraction limit, and larger sensors are impractical for super fisheye lenses.
I worked on 360 cameras / software for many years. Looking forward to the day when an article like this comes out for one of the products I worked on.
When you’re in the heart of it it’s so easy to take pride in the technical challenges you’ve overcome, but completely miss the realities of the marketplace.
I mean this is an intriguing rationalization, but I don’t buy it.
Buying votes simply doesn’t cost this much, by orders of magnitude. Burning your empire to ashes as a loyalty test doesn’t hold water either: It’s politicians that partake in loyalty tests, not donors.
More often than not I was opening documents, not apps. But with spatial windows in Finder I used to just arrange my Applications folder the way I wanted (sometimes using Aliases) and have it open on the left of my screen, then have my Documents on the right. I kept a row of Desktop icons visible with an In and Out box.
There wasn’t a default folder structure in the early days. Your hard drive had a “System” folder with merely a few hundred files in it (in a hierarchy) that you can ignore day-to-day. Otherwise the whole drive was your playground.
It’s interesting: my recollection of that period was I rarely stored anything on the desktop. The file system was so much smaller and easier to handle that I stored things in folders and didn’t have trouble finding them again. Not until OS X did I pick up the desktop-as-staging-area habit because navigation was so painful.
As it is likely that the number of launch customers for this node is one (continuing the trend), this may be necessary simply to reach agreed upon volumes.
APIs existed for fractional scale and assets in early Mac OS X versions (10.4 I think). I remember building out 1.25, 1.5 and 2x assets for an application at the time. These were never to be shipped to consumers for a few reasons.
There were intractable issues with window spanning across displays with different scale factors. Ultimately this was resolved by not allowing window spanning on the platform anymore.
It’s cheaper to build two at the same time than shutting down production for years and trying to build another one. Tooling doesn’t last forever, and the process and skills required to build one can help you build the second one cheaper. But if you wait, that knowledge is often lost. For example, we have no way to build a Saturn V rocket today even having spent R&D and NRE decades ago.
My Model 3 hit some road debris a couple years ago. It damaged the coolant line connector heading into the battery. Tesla replaced the entire battery for ~$15k, which probably could have been a $700 repair like that mentioned in the video.
That said, my insurance covered the cost without a problem and I had my car back in 4 days. I don't know if they took possession of the original battery or negotiated a different rate, but it sounds like Tesla makes bank on this kind of repair. $15k for a new battery pack, a quick turnaround from their service center, and someone gets the old pack which in all likelihood was perfectly fine.
There aren't a lot of shops that know how to repair a battery pack (in most of the country anyway). With less than 2% of cars on the road being EVs that's not surprising, but as more are sold you'll see more come about. The insurance companies will be very motivated to reduce these kinds of claims, and with real competition Tesla will no longer be able to justify the practice.
I think the feet-dragging comes more from the dealer network than from automakers themselves. Ford, GM and the like will still make plenty of money from offering parts for their EVs. Dealers however continue to show distaste in EV sales. Part of that may be the reduced service needs (no oil changes, transmission rebuilds, engine maintenance, etc.) that will lower their income, part may be from the sales side. That's been Tesla's argument all along for selling and servicing direct, and I think anyone that's tried to buy an EV from a Chevy dealer might agree.
Apples and oranges. Tesla AutoPilot is a driver assistance system not an autonomous vehicle. It doesn’t even claim to avoid these situations, hence the need for full attention by the driver.
AP has billions, not millions of miles driven FWIW.
H2 does not, and cannot offer the end-to-end efficiency of battery electric vehicles. The distribution infrastructure for H2 is inherently less efficient than electricity distribution alone, making BEVs 3x more efficient:
The primary advantage is faster refueling. The price is no in-home refueling -- a big win for BEVs, as most trips will not require refueling on the road. There are also real safety concerns about storing and transporting H2 at very high pressure.
> In contrast with conventional digital cameras, in fact, curvy imaging sensors typically require multiple and complex lens combinations to take clear and high-resolution images.
This sounds backwards to me. My understanding of the main benefit of curved sensors is to eliminate complex lens series needed to correct aberrations caused by a flat sensor surface.
We wanted a cross-platform C++ layer and native Cocoa front end. Objective C++ wasn’t a thing then, and having built a plain C shim previously I didn’t want to repeat the experience.
We built our own bridge by registering our C++ classes with the Obj-C runtime, generating selectors for all the methods so you could send messages to (carefully constructed) C++ objects using Obj-C syntax, or even subclass from C++ to Obj-C.
It was a pretty neat trick, but would’ve been difficult to port to the Obj-C 2 runtime.