14,006 karma · joined June 4, 2013
This is so strange. To my mind the only purpose companies hire engineers is to support business. The staff engineer should not need a project manager to tell what is interesting for business aspects - even though the goals are likely mostly technical.
I do realize this does not hold up always. But to me if you can't provide some reasoning for your work in business metrics you are participating in an academic exercise.
For processes that are scalable, well known and industrial, profit motive actually does provide results.
The question is more of are there bottlenecks of skill and maybe secret sauce (eg something like ASML).
I suck at math myself so can relate. But actually the math you need to learn to be effective at graphics is mostly about understanding _a very small subset_ of a bunch of concepts (such as how 2x2, 3x3 and 4x4 matrices work) and one is set for life,
so I think it’s good to give the formal mathemathical explanation and then Gilbert Strang what it all means.
But camera transform is so unintuitive it really helps if the student tries to work it out for themselves why it works.
For me it’s really weird anyone would write code and _not_ start from reading all of introductory computer graphics literature because it’s so awesome but I realize I’m the outlier here.
I mean _it's just work_. You don't need to invent anything. Just do the work.
What _is_ hard is when people run after silver bullets to avoid all this work.
Because people who don't understand software decide it would be cheaper to implement something only once. Or someone who does not really understand what they are doing insists that same C++ code runs automatically on all platforms.
AI has given the software engineers permit from the beancounters to do the sane thing.
Good software development orgs _have always_ done proper per platform ports.
Also - there is nothing wrong in supporting only one platform as such!
Once this is accepted the rest becomes easier as you are not wasting time trying to find a silver bullet.
I mean it’s then ”just normal work”.
This is wrong way around.
If you don’t support the platform your app runs on using the native api:s to the hilt your port is just bad.
If you actually want to support multiple platforms _you actually need to support_ them from the ground up.
This is speaking industrially and businesswise. A professional software business always has per-platform implementation resources. Or they have just one platform. Or they pretend they are multiplatform and then _everybody_ _daily_ fights with the problems this causes.
Obviously those elements that can be portable should be. It’s like Einsteins simplicity maxim - your codebase should be as portable as can be but not more.
” It’s even worse for CUDA…”
No these are just the business and market constraints. If this does not make sense for your offering then don’t use it. This feels like false FOMO - CUDA is not a silver bullet but it might be a specific solution to a specific problem.
Practical computing is not and never has been an abstract pure concept. It’s about making machines built by corporations to do usefull things at scale.
There is no ”non proprietary” computing unless you make your own stack.
SketchUp does not really have that either if you are expecting something else than triangles. Since sketchup has polygons you could argue they are brep but even then only accidentally.
Architecture works with a bit different ruleset than mechanical cad.
People design all sort of buildable things in SketchUp and it's just about dragging polygons around.
You _may_ need accurate surface if you run your model to CAM.
But to this day lot of manufacturing is still done via drawings and there the only thing that matters is that can you draw some type of lines and attach clear dimensions to them. So the shapes don't necessarily need to be accurate for all flows since they are more like topological hints to the person reading the drawing rather than accurate replica of the thing to manufacture.
I just released a new version with lots of new modeling tools: https://adashape.com/blog/alpha-0-2-0/
As a highlight the lofting tool is pretty fun complement as it allows combining multiple drawings in an intuitive way to define a certain category of complex 3D surfaces without too much effort (https://adashape.com/manual/adashape/en/shp-loft/).
I've been chipping away at manual as well - and found it was a really good idea to write my changelogs in product voice as I can more or less recycle that copy text into the manual verbatim https://adashape.com/manual/adashape/en/
(Previously featured on HN in https://news.ycombinator.com/item?id=47638498 )
If you enjoy doing a thing in specific way, nobody is going to take that away.
Chess is a great example. More players than ever, perfectly obsolete if you compare yourself to a computer, but that does not hurt.
If the AI takes your livelihood - that hurts. But I did not read this to be a complaint on that.
Whatever AI is, it _is_ a huge democratizing influence in all fields.
How is the person supposed to know your opposing point of view if you don't tell it?
I think it depends on the - ahem - context. In my experience they usually can, sometimes they can't.
But generally their sense of software architecture remains abysmal, so even if their writing is ok, you need to have architectural authority the very least to guide them.
I think this is slightly wrong in two ways.
i) If you want platform native then reimplement the gui on every target platform. It’s as ”simple” as that.
If you need to ship to multiple platforms then preferably you need lots of plarform specific engineering in any case.
”I just want my hobby tool” scenario likely does not require cross platform support unless there is market for it. I mean rather than offering the tool on multiple platforms it should be offered on multiple languages first, perhaps. As soon as you are not writing the tool for yourself we are talking markets and distribution. Likely most people can chill out and just implement the gui for themselves (and not even publish it in githubb).
ii) cross platform quick-and-dirty way. Without screenreader support, multiple language and glyph support etc. Game ui:s look the same on all platforms. Websites look the same on all platforms.
There is place and time for deep ui engineering that respects the _critical_ cross platform issues like accessibility (screen readers etc) and different languages and scripts.
And then there is the situation where you want just few images to click. The latter is vastly simpler, fast and fun. But harder to convert to a professional quality gui experience. For small tools and MVPs this sounds like a fair tradeoff.
Just doing what others wish is not conscientous in itself! It _may_ be depdending on situation but it can be just pathological towards the self.
When it's psyhocologically hard to do things you imagine will dissapoint someone that's probably not concientousness. It's more like low self-esteem or codependency.
It's very hard for someone to tell these apart themselves. Hence when this topic pops out it's good idea to remind that being super-accomodating may in fact be a personality flaw - that can be healed if acknowledged.
There is very large spectrum between "trying not to dissapoint anyone" and doing what you know is the right thing.
If it's not your job, then just ignore the reports.
If it's actually critical, someone will put money on the table and then it's a business. And then it's about scheduling and resourcing - also should not burn anyone out.
Just because many people have false sense of entitlement as soon as they get a free offering, it does not mean anyone needs to accommodate them.
Thoughtcrime -like territory and self-sensorship. The AI safety lobby is such a vile influence on the freedom of expression and communication via technology (since AI is starting to eat up rest of technology).
I guess the main problem is positioning AI tools as "human-equivalent" creators by the big AI corps. If they were positioned simply as "better OCR and proofreading" people would attribute to them as much responsibility as they would to a - say - typewriter and we would not need to have this nonsense.
I do realize most of the valuation comes from the positioning of "our TAM is the global salary base of 50 trilion and we aim to supesede human workers in the near future" which implies they need to position this technology as "human equivalent" or that valuation is no longer as credible.
Some problems appear almost as industrial invariants.
But ”top of the curve reached” feels like the likelier scenario.