421 karma · joined December 14, 2011
Though, general acceptance of QR Codes does seem to have finally taken off.
One aspect of FIDO that could still be troublesome is account recovery in case of inadvertent loss of passkey. OOB recovery with SMS or email is considered too weak and the main recommended alternatives are to maintain multiple authenticators (i.e. multiple copies of your passkeys), re-run onboarding processes for new users or just abandon the account.
It's going to be interesting to see how those alternatives play out in real world situations.
https://lucumr.pocoo.org/2016/10/30/i-dont-understand-asynci...
It was great at the time but ultimately tiresome. It introduced framework specific incantations all over the place and any framework using I/O had to be Twisted-aware in order to use it straight-forwardly. The exact same complaints I have today of asycnio.
I went to gevent 10 years ago and have never regretted it. If you have some reasonable knowledge of threading and synchronization then it is a really nice developer experience.
I think cross-platform apps are commonly misapplied and really only make economic sense with the appropriate assumptions. Once a company has the necessary resources they should go native and go all in on platform conformity.
But for many folks, that's not a feasible place to start from.
https://apps.apple.com/us/app/listeners-on-call/id1498666617...
It has a very good UX designer and I've developed multiple commercial Qt/QML mobile applications previously.
I think the economics make sense with the following assumptions:
* The startup doesn't have the resources to build for two platforms natively (yet).
* The developer(s) can get their hands dirty and "go native" on either platform when needed.
In relation to the particular problems of technical debt related to third party modules mentioned in this article, QML rides on top of Qt which is a 26 year old C++ cross-platform toolkit with a lot of mature technology in it. I.e. there is a lot more "batteries included".
There are still plenty of times you have to "go native" to integrate something Qt doesn't cover but it apparently isn't as often as with Flutter.
I think the mistake most people make is to deliberately slow down as you get older. Never slow down and you'll keep pulling ahead.
1. Create your own root Certificate Authority.
2. Create a script using your favorite language and libraries that will create a new certificate for each device something along the lines of "myiotdevice-AABBCCDD.local". The AABBCCDD needs to be some sort of serialized number that's assigned during manufacturing and won't be repeated between devices.
3. Add to your product support for ZeroConf/mDNS/DNS Service Discovery and advertise an https web server at myiotdevice-AABBCCDD.local.
4. Provide instructions to your users on how to download and install the certificate for your root CA (this only needs to be done once).
5. Print the name "myiotdevice-AABBCCDD.local" on the device and instruct users to type that in to a browser's address bar.
I'm doing this from memory so I may have missed an intricacy here or there (like DNS SD is a weird story on Windows 10) but this approach should basically work well enough.
EDIT - good commentary in replies about the dangers of the CA being compromised. Also, good mention of X.509 Name Constraints and how they can be used to mitigate that danger somewhat. More info here: https://systemoverlord.com/2020/06/14/private-ca-with-x-509-...
Qt also has a WebAssembly build for QML apps on the web but in my experience it has suffered from some of the same issues reported here about the Flutter WebAssembly runtime.
Edit: One key difference is Flutter seems to do everything with procedural code. QML is based on a declarative DSL plus Javascript.
Another way to put it: what if the Great Filter (https://en.wikipedia.org/wiki/Great_Filter) is really that biological life doesn't have the resources available or the capability to develop the intellect necessary to manage all the technology required for a species to go intergalactic?
But as the complexity goes up and the number of these complex situations increases, are we reaching a point where we outstrip the amount of money, talent and experience our institutions would need to deliver solutions to successfully manage them?
With our resources and intelligence as a species being capped, it seems at some point this is inevitable.
They had an issue where they were responding with 302s redirecting to malicious adware:
https://twitter.com/unpkg/status/852660203275276289
They promised a post-mortem which (to my knowledge) never happened:
https://twitter.com/unpkg/status/852666784792444928
I removed unpkg from my infrastructure and won't be using any of these services again. The minimal gains aren't worth the risk in my estimation.
Having worked with a lot of different layout and alignment systems, Auto Layout seemed to me to be considerable overkill. I found it generally not worth all the brain power needed to understand it and more importantly debug it when it isn't doing what you want.
Is this what OAuth should look like in a more front-end centric web day and age?
The problem is that most of the time, people who do attempt project-oriented work/fixed bids do so without a comprehensive design – and it does indeed tend to end up a disaster.
In general, the economics of working hourly don't tend to work in your favor. On their side, it focuses the client on the rate and the hours and tends to encourage them to micromanage you. On your side, you don't economically benefit from increasing quality and reducing timelines.
It's hard and a lot of people are not good at it, but I recommend trying to do project-oriented work with fixed bids. It's much easier to focus the client on the long-term benefits of higher quality and shorter timelines in a fixed bid situation. And you economically benefit from increasing quality and delivering faster than you bid.
It's a lot easier to compete with offshoring when you set the context this way.
This is a really neat adaptation of the SwiftUI API to the web but it seems like the guts of it needs to run in the browser to be practical.
Perhaps we'll eventually see the Swift compiler support a WASM target?
[edit] Like Qt is doing? https://doc.qt.io/qt-5/wasm.html