• 1 Post
  • 81 Comments
Joined 1 year ago
cake
Cake day: July 1st, 2023

help-circle





  • This is interesting, but the take also seems to miss in several points, for me. The main thing that has happened since the author entered the idustry is the shiftover from web pages to web applications. This has had knock on effects across the industry.

    Whats the difference, you ask? A web page is a mostly static and mostly stateless program. It is made of html, enhanced through javascript. A web app is a regular application, delivered to the platform of the web. It is written in javastcript and produces html. It is often very stateful. It is very dynamic.

    Jquery, probably the most powerful tool for enhancing websites, was released in 2006. This was the height of website design, as the webdesigner could create the structure in html and then modify it with jquery. It was a blend of design and technical application. Its no surprise that the big social media all dates from around this time. Social media is a mostly static experience that jquery made very delightful.

    React was released in 2013. This was the first major framework to be javascript-first. The layout and structure of the page took place entirely in javascript. It was no longer a blend of skills, creating the page was a fully programing job. This brought web more into the traditional software industry, with all that that entails. It also enabled web design applications, such as Squarespace, which further deminished web design as a practice.

    I started in the industry in 2008. In my experiance, there was never a strong representation of women in web design. This got worse asthings shifted, but its a mischaracterization, I think, to say that women were pushed out. Its also a mischaracerization to talk about the creation ofthe front end developer role or the ux role. These roles have always existed (or, at least, existed since before the time period we are talking about). These are application development roles. Windows and Mac apps had ux designers and front end developers already. When those same companies decided to usethe browser as their platform rather than the desktop, it was natural to transfer those same roles.

    If anything, it seems, the period of web design was the oddity as industry norms just weren’t available in the less powerful browsers of the time.



  • Ok, heres my run down:

    Nix is a package manager with the goal of making it so that when you install a package at a version, you always get the same thing.

    But isn’t that how all package managers work? Not at all. Most software requires other software to work (dependancies). Those dependencies also have dependencies, and so on. If a version of the dependency changes between installs, your package works differently. So Nix forces the package to specify what version of the dependency to use.

    But version numbers are pretty wishy-washy, so nix actually requires git commits. This is good, since it turns out, the compiler and libraries used to build the software are dependencies, too. Building with a different compiler can change the way the package works. So Nix forces the package to specify how to build it also.

    So Nix is a package manager where each version of a package is built against a known compiler, and comes bundled with a known set of dependencies.

    This allows some cool things, like generations. Change your list of installed packages (or configuratian, it handles that too), nix can save the old config and instantly go back to it. No more bricked linux install (if it can get past the bootloader). Also lets you do os-level per-directory installs. Have two projects that each need a different version of c compiler or postgres? Nix makes that easy. Want to make sure all dev machines in your project have the same python version? Just check in the config.




  • Yeah, this. I lean heavily into coaching, which is specifically helping them apply skills they already have to a problem.

    I also draw clear lines between what I can help with and what I need to do for the company, and try my best to display when I am fighting for them and when I cannot. Building trust is a key part of the relationship, and having suspicion that you are two faced kills it dead.

    With this and the other things mentioned, I too have only had peopae quit because of money, and in one instance he came to me to ask if he should do so (we talked it out without me giving any advice, just comparing opportunities)


  • Both styles have advantages and disadvantages. Fully procedural code actually breaks down in readability after a certain length, some poeple suggest 100 or maybe 200 lines, depending on how much is going on in the function.

    Blanket maxims tend to to have large spaces where they don’t apply.

    Additionally, the place where the code on the right is more likely to cause bugs and maintainability issues is the mutation of the pizza argument in the functions. Argument mutation is important for execution time and memory performance, but is also a strong source of bugs, and should be considered carefully in each situation. We don’t know what the requirements for this code are, but in general we should recomend against universal use of argument mutation (and mutability in general).