226 karma · joined December 4, 2020
> Though we are pretty lean on dependencies, and I would expect most projects using oso would be using serde anyway.
It would be great if `serde` was opt-in through cargo features, which is pretty common in the Rust ecosystem. While your manifests are small there's still quite a bit getting pulled in. Might want to inspect the dependency graph to see if there's anything excessive or some features that can be non-defaulted.
> That being said those times you're seeing seem very long, even for Rust!
Not in my experience. This was a clean debug build. It's not that uncommon on CI runners to have much longer times than developer machines (MacOS CI runners are especially bad about this, and also cost a lot more money). That's why I do profiling on a weaker one when evaluating build times. Incremental builds are faster, they're also harder to orchestrate.
Not trying to be overly critical, just trying to give a view! Compiling on other people's machines is expensive, a good way for me to buy into something like this instead of doing it myself (which is how I'm doing it right now!) is to reduce the dependency tree and make building stupid fast/easy.
This library needs a lot of work to speed up compile times before I can use it. Procedural macros are usually opt-in through cargo features because of their extreme hits to compile time (this includes stuff like serde), and if you're trying to monetize this I'd recommend having precompiled binaries available somewhere so I don't need to pull things from crates.io to compile it cold.
I timed it on a laptop that I know to have similar power to a CI runner. This is after `cargo build`:
real 5m16.508s
user 10m41.961s
sys 0m44.432s
What businesses want is to show you these things without your explicit desire to find them, which isn't the "one place" a search engine needs to be.
To paraphrase an exec at a meeting some time ago, "every company is a software company - some haven't realized it yet" (this was in the context of a moderately sized domestic manufacturer).
There's obviously a difference between production software engineering and day to day scripting, but if you're not heavily investing in developing software skills for engineers of all trades you're losing a lot of ground in design and production automation to competitors.
So I would say that there isn't a transition so much as a decision, just start coding parts of your job. Decent rule of thumb is never do the same task more than twice.
There's also tons of value in being a domain expert that can read and write code - if you're in a highly technical field there's almost certainly a company trying to automate your expertise. Try and find the people doing it and help them out!
I'd say play GTA V and the Witcher 3 for a comparison in immersive open world story telling and high caliber graphics. I haven't played Spiderman (2018, 2020) but in gameplay footage (which is only on console) it looks much better as well.
I feel like I'm crazy when I say that the graphics are incredibly underwhelming. It looks good, and there's neat stuff. But I don't care how pretty a shadow looks when the hundreds of NPCs walking around look so rough.
But seriously custom runtimes are real bastards to get working.
and yet the latest-and-greatest cross platform framework is supposed to be Flutter
For a search company, it's embarrassing how hard it is to search for things in their office suite.
Just anecdotally I'm looking at my own release infrastructure and it would take a bit more work to get compromised binaries to our customers than a leaked secret in a public git repo - and if it was reported that we leaked some key or password that gave the keys of the kingdom away, it would be trivial to change it and verify that we didn't push malware.
This article can explain how malware made it into a download server, maybe. But does it explain the fact the malware was signed? Maybe, but that suggests a bigger fuck up than leaking a password.
This goes deeper than developer tools. The documentation for their core frameworks have been purged from official sources and is relegated to deprecated sites and comments header files tucked away in /Library. Kernel modules are being deprecated. There's no alternative to IPP or MKL on ARM for the M1 chip. Docs for plugins architectures are being more and more hidden away, and Apple's Developer Conference consistently only focuses on consumer facing applications - while support for professional applications and advanced computing is only available if you work for a partner organization, making it less accessible.
The reason I say that Apple is making their platform harder to use for general purpose computing is from my experience shipping code on MacOS for the last decade. It's fine if you disagree, but that hasn't been my experience. Every year it costs me more time and money to target Macs than the year before.
XCode is a good example of what I mean. It's a terrible developer experience for anything but targeting Apple's platforms in the way you want to (meaning writing Swift, using their frameworks, and their devtools, and keeping your code base small to keep their devtools functional, and never caring about that code running on a different OS).
Compare to Visual Studio, which also only runs on Windows, yet is a pretty damn good developer experience and not a nightmare to support for cross platform projects of late.
I would not be surprised if we see similar things added for audio DSP to support their creative software (it was alluded to in some marketing materials, haven't read much on it yet).
Other applications like language parsing and compiling is likely going to be a second class citizen moving forward, since Apple doesn't care about using their machines for general purpose development regardless of how many of us buy them for being solid Unix platforms.
McCarthyism has little bearing on current political realities other than a passing resemblance.
My dream OS would forbid path names that don't match \w in grep.
Discord has like a $2billion valuation and no exit. Slack had a $24 billion IPO. Consumer software is not as valuable as enterprise.
There are obvious downsides but the benefits outweigh them. I really don't want to go back to forums and email for customers.
Side note: I've rarely met a top b-school grad who could say they valued much taught during their MBA (aside from statistics). The consensus is usually that it's a great networking opportunity.
I don't reject that there are troubles in concerting real world data into a representation for the constraint solver. But this isn't untrodden ground, and there's no reason a front end developer should need to care about it. The problems you're describing are far behind the UI; and if they're not your organization has immense problems.