Maybe slightly off-topic from the main article but is there a good resource or site that clearly helps understand which of the "open" models are good for programming tasks, like C, C++, Python, Java?
I've looked and there are tons of sites that aggregate models vs. benchmarks but I'm not sure how much of that is trust worthy.
I'm sure this makes me seem like a "get off my lawn" type of person but is anyone considering the environmental impact of making almost 2000 "throw away" pieces of electronics just for a convention?
Yes, I get the cool factor and I love blinking lights too, but the low-cost factor comes from the environmental pollution occuring, it's just been pushed over to China.
These are programmable devices given to programmers. The rate of these being thrown out or underutilized is so much lower than so much of human activity.
On the scale of hosting a hackathon, a few kgs of badges likely rates below the trash generated for just the take out food in terms of impact.
Maybe we can recognize that this is so minor of an issue that we don’t need to start here, or even really look too deep at this. Let’s fight these problems on a scale where it really matters.
I agree with this sentiment. If someone wants to do a bunch of reverse engineering, maybe they could try to get full mainline support for older Qualcomm mobile phone/tablet SoCs and minimize/get rid of BLOBs?
All the fun of reverse engineering and we know the processors already run Linux...
I agree with your sentiment ; very likely the Fairphone people are restricted by NDAs from the SoC vendor who are the ultimate cause for lack of proper mainline Linux support.
The SoC vendors get Android working, get the drivers going, help do ports or modifications for major customers and hide it all behind NDAs, blobs, sometimes a bunch of hacks and all of it is closed source work.
The postmarketOS guys to their credit are trying to do "proper" mainline work which is admirable but probably frustrating, non-trivial and requires a lot of reverse engineering.
Honest question here -- for doing 3D parametric design, is the "programmatic" approach a good thing? If you compare doing a design in LuaCAD to something like Solidworks or ProE, can you get to the end result faster, and easier?
I've tried to get into Solidworks, Fusion, and FreeCAD several times, but every time I come back to programmatic CAD. It just better matches how I think about 3D design I guess. Also, I love that there can't be any hidden state or constraints -everything is fully defined by your code and fully visible.
Just give it a try, I guess, and see if it works for your use cases!
Not to negate your core points but almost all the HW engineers I've worked with who are experienced absolutely consider sourcing and availability in the decision making process.
It was a reason years ago Maxim's ICs were almost always on a "never design in" list since obtaining them was near impossible in reasonable time frames.
Most "seasoned" HW engineers who are working lower volumes verify availability with distributors and for high-volume (i.e. 100K units+/yr) work with sourcing people internal to company to get commitments for key ICs.
I think you are in the minority of people that feel Android is a well built "OS". Maybe from an end-user point of view it "does what you want" but its underlying architecture I think is pretty poor.
I have spent the past 2 years off and on modifying AOSP (for "reasons") and I am constantly amazed the poor quality of the code base and badly architected the overall system is.
It's a bunch of re-inventions of the wheel (start-up daemon manager, IPC, HAL, GUI, etc) with the "upper layers" written in Java with a mix of C/C++. Mixing the metaphor of a Java "run time environment" with a Linux-based kernel results in a hodepodge of pieces and having seen it up close it makes sense why "Android" user experience varies so much device to device.
Did Android need it's own bastardized libc for example (bionic)? Did Android need to have it's own start-up daemon manager? A "HAL" in C++ (wrapping Linux kernel capability) with a bunch of bridges to Java via JNI?
Writing an application for Android is also a byztantine mess of NDK, SDKs, Java build systems (Maven, Gradle, etc), XML files, Java, Kotlin, etc. Why can't icons just be SVGs, why do these have to be in some XML-formatted resource? The list goes on.
No idea what you mean by "well built OS" when Android has so many corner cases and weird "hard coded work arounds" and crazy development process that its behavior is often unpredictable and downright irrational.
And what do you think iOS / macOS is based on? UNIX userland from the BSDs with the Mach kernel, Mach IPC, etc. Fun note: It's easier to cross-compile standard UNIX utilities and programs for iOS/macOS than it is Android since Android effectively has its own user-land.
macOS and by extention iOS are, by comprarison to Android, actually pretty well architected. The choice of kernel (Mach, Linux) is really not the limiting factor, it's how you plumb together the layers above the kernel and that's what Android has done badly.
Lastly, just because OpenMoko may or may not have done something ideally (~20 years ago?) doesn't mean the current efforts (postmarketOS, Plasma, PHOSH, Sailfish) have done it badly. Actually most of these efforts are leveraging the fairly refined parts of a modern Linux environment and are MUCH easier to work with at the lower levels than Android.
I think IF they had hired embedded software engineers with 40 years of experience, those people would have delivered a UI that meets or exceeds all UI needs (even if it didn't look as visually appealing as it could). A 40-year embedded veteran knows how to write real-time code, structure the system and make it work under all conditions.
In fact I wager the OPPOSITE happened -- that they hired or outsourced software to people who have "web technology experience" and the UI and graphics architecture is a mishmash software stacks hastily thrown together (read: not architected).
Jaguar has a similar issue with the I-PACE where the HVAC system couldn't keep up with the knobs and would lag. A real embedded engineer who worked on real-time systems would know how to properly handle a quadrature encoded knob and NOT lag. A web-technology-first person who slapped something together using nodejs and/or Python would likely not know.
I've looked and there are tons of sites that aggregate models vs. benchmarks but I'm not sure how much of that is trust worthy.
reply