571 karma · joined August 1, 2014
In my experience, the initial ease and speed of development when using python doesn't nearly outweigh the medium to long-term costs of maintaining it and developing the codebase further - at least for codebases that are more than a simple tool or something like a django app. Writing things like go, rust, scala, java etc. isn't that much more difficult or slower, but it does require more up front planning and understanding of your problem domain.
It's not realistic to read through all the source of every dependency you use, but it should be encouraged for developers to take a more active approach in evaluating dependencies they pull in - at least to check how active development is, what sort of open issues there may be, test coverage, code quality sniff tests, what the license is etc.
I'd be willing to bet most GPL violations are due to ignorance, rather than intentional.
What you're advocating for is regular communication, and people being involved in each other's work. Stand-ups c_an_ help with this, but they aren't the only solution, and in my view, are one of the less effective solutions.
Open, unstructured conversion has always been a better way to solve problems and move things forwards in my experience, and stand-ups entirely kill that by having an orthogonal purpose in the eyes of the manager (unless they're in the trenches doing the same work everyone else is, which is rarely the case).
Let your developers have their own standups however they want to do them. Make sure they do meet and discuss, but stay out of it if you're not right there with them helping to solve the problems.
The biggest thing I miss from my MacBook is being able to open it after a week of being closed and still have battery. There's definitely something not going into deep sleep when I close the lid, but that's probably my fault.
That seems to include past tense.
I can live without the trackpad (once you learn to love the trackpoint you'll never go back to a trackpad) but the speakers and display are the two lacking points. Even though it's a 1440p display, it just doesn't look as nice as a "retina" display and getting a 4k display on a 13" laptop is in my mind an absurd waste of battery and money.
We don't want more A&W's and Starbucks, but that's what eventually happens here. The only places that survive are bars.
Many structural engineering projects are built with a safety factor greater than 1, which allows for - as you'd imagine - safety. In software, it could absolutely be done that every function has explicit validation checks for each input, and that more safety, error handling, and checking is written. The economics just don't make that viable though except in the most extreme situations where this is required. In aerospace, with the exception of the recent Boeing debacle, there's been very few software related issues (that I know of) relative to the number of CPU cycles run and flights taken - I'd be willing to be there's far more mechanical issues that cause grounding and maintenance cycles.
Now look at civil engineering and infrastructure. How many roads do we drive over daily filled with potholes? How many bridges get patches and repairs every few years because of concrete cracking and rebar rusting? (I live in Quebec, so there may be bias in this statement). Maintenance like this is just paying down tech-debt - the same as in any field.
Software absolutely can be built to a high level of robustness (and it is) - it's just not economically sensible in most cases.
Full disclosure, I used to work there (specifically, on plotly.js).
https://github.com/aon3d/covid-face-shield
Full disclosure: I work for Aon3d.
That said, vim and emacs can be in a way a component of a DIY IDE - you just need to put the work in and build it yourself. I exclusively use vim with a handful of useful plugins, scripts, and additional CLI tools in other terminal splits.
The terminal is my IDE.
My workflow typically involves rebasing my local branches on master every time I switch a branch or start a work session, so typically conflicts that need to be resolved are very clear and small things (e.g. someone else adds a case to a switch statement in the same place your branch does).
The biggest benefit to this that I see is that your diffs are then much more clear in what they're doing, and you have the option to update the commit message to reflect the conflict resolution if required.
That said, if you have a big feature branch and try to rebase it after a month vacation, you're gonna have a bad time.
My understanding was that only the domain is queried, but the full path is not seen by a DNS server.
If a job needs to exist purely to maintain a third party tool that you pay for, you probably should find a new tool or make the tool yourself so that the employees work value is retained. It's the equivalent of doing a complete kitchen renovation on an apartment that you rent.
My go to language to refer people who want to learn is Processing though. Easy to use, and the documentation is fantastic (and Dan Shiffman is IMO the best programming educator out there for kids and adults alike, whether or not you like his high-energy style).
Writing code without dependencies/frameworks that have a required structure is a joy, however.