Skip Navigation

Posts
130
Comments
162
Joined
3 yr. ago

  • Thanks for sharing. This looks really low level. The advantage of PlantUml and Mermaid is that they are supported by many systems. So, integration is a non-issue.

  • I agree that this is a challenge. One needs to slice the domain such that it can be covered this way. But this also means more people. In my experience, moving from "activity oriented" teams to "business centric" teams require an increase of the headcount.

  • Yeah, I don't know if it's a bug or a feature. I got a similar problem before with one of my posts. I think a workaround would be to post it as a link and paste the image in the Body.

  • -1 is what you get back from fork() when it fails. Normally, it returns a pid_t which is positive if you're the parent, or zero if you're the child.

    -1, when handed to kill() on Linux, means "target every process but myself and init". Therefore, when you take the return value from fork(), fail to check for an error, and later hand that value to kill(), you might just kill everything else on the machine.

    Great story.

  • In 2014 Robert Martin claimed that number of developers doubles every 5 years and says:

    As long as that growth curve continues there will not be enough teachers, role models, and leaders. It means that most software teams will remain relatively unguided, unsupervised, and inexperienced. [...] It means that the industry as a whole will remain dominated by novices, and exist in a state of perpetual immaturity.

    Not sure if the data can be confirmed or not, but if that's the case it will be difficult to maintain the best practices in our industry.

  • And because Windows and it’s eco system of applications he listed gets worse, he extrapolates this to all software.

    They admit that bias in the article:

    [...] since I've always been working in the Microsoft tech stack, I use a lot of it. Thus, selection bias clearly is at work here.

    Now, I mentioned free software as the exception. I don't have any data as to how big free software vs proprietary software. But I think his points extends at least to other proprietary software and is not limited to Windows.

    Some software get better, some get worse.

    I can agree with that.

  • I'm not sure it's that simple, really. And I definitely don't think this is limited to Windows. I agree with other comments that this is mostly related to complexity. The more complex the domain the more difficult it is to implement/maintain a good solution. Delivering the new shiny feature is more exciting for all people (product management, development, users, etc.) than to fix bugs. And if you don't have the resources/maturity to keep technical debt under control, the software quality will suffer over time. Free software may be the exception here as profit is not always the primary concern.

  • I no longer look forward to updates.[...]It seems to me that some software is actually getting worse, and that this is a more recent trend.[...]Why does this happen? I don't know, but my own bias suggests that it's because there's less focus on regression testing. Many of the problems I see look like regression bugs to me. A good engineering team could have caught them with automated regression tests, but these days, it seems as though many teams rely on releasing often and then letting users do the testing.

    The problem with that approach, however, is that if you don't have good automated tests, fixing one regression may resurrect another.

    Every time I see a new update, I think: "I wonder what will break after this update" and postpone them as much as I can. Software updates shouldn't cause anxiety. But they do these days...

  • I cannot answer the technical question as I don't have enough experience with that. But I think sites like reddit mostly don't care about search. They probably think: "People can use google if they want to search."

  • Works fine on Android (Firefox).

  • I didn't read it as lamenting the demise of the tinkerer. But it can of course be read that way too.

    I guess many people find themselves in the article. I, for one, spent way too many nights building "under construction" web sites on Geocities. However, I definitely don't think "passion" has anything to do with what we do (Searls also makes fun of being passionate about passion). I don't find that to be a sustainable approach. I don't care if a candidate I'm interviewing has personal projects in Github or a Raspberry Pi at home. Those are interesting, sure, but no more than playing the guitar or swimming.

    Again, maybe the article was not well balanced. And maybe the fact that I find myself in the article prevents me from seeing it.

  • What you did with the message queu in Javascript is impressive. And I'm sure there are other efforts that solved "impossible" problems in creative ways. Creativity is important in a lot of professions and I can admit that it is probably more important in programming than, say, accounting (I hear "creative accounting" is not a good thing). However, I don't think creativity is vital in what we do. It's useful, sure. But, for example, it's not as important as critical thinking. I think the real problem is that we are a relatively new engineering discipline that is still under rapid change. The paradox is, if we look at the programming paradigms, we don't actually see many new things. We reheat the stuff from 60s/70s all the time (functional programming is a good example). But the socio-technical aspects of what we do (and how we do it) is under constant change (waterfall, agile, autonomy, etc.). And, this is probably what makes software unique. We have a very short feedback loop (as opposed to building a bridge). And I would say, that should also have its place in education.

    This talk by Dave Farley sums up my thoughts about "software engineering" quite well: Taking Back “Software Engineering” – Craftsmanship is Insufficient (Piped link).

  • When I saw the title, I thought "just another blog on 10x developer". I don't really know why I decided to read on, but I'm happy I did. Searls touches on many more while investigating the topic. The writer approaches the topic from a inter-generational point of view and also goes in to things like "passion" and "craftsmanship". I would even say, this is not about the 10x developer at all. This is about how as a young engineering discipline we are still trying to find better ways of doing things.

    It’s an open secret that the industry has no idea how to teach people to program. Computer Science degrees famously don’t prepare programmers for the job of programming, which has always been left as an exercise to the student to figure out on their own time. If the industry is going to outlive us enthusiast programmers, will it adopt a sustainable approach to educating the next generation that doesn’t require people to teach themselves everything?

  • I think this may also be a problem with malicious clients. Currently the user enters the username and password via the client's login dialog. It's an effective way to collect credentials.

  • I think you have a better chance if your instance focuses on a topic instead of being general purpose. That's the reason I chose programming.dev. All communities there are related to programming so when I sort by "local" I see something interesting even though I haven't subscribed to that community. And that increases my interaction with those communities.

  • No problem. In another comment I saw that you said you "[n]ever wrapped [your] head around dot net". If that's the case, I would suggest you looking into it (or something similar) before going into the more advanced (functional programming, C/C++/Rust) route. You can try to implement a backend in C# to one of your projects and see how .NET works (BTW you need to be looking at .NET Core, not the older .NET Framework stuff. Anything after .NET 5 is fine). Or you can try implementing a Lemmy/kbin clone. İn my experience, completing a project is critical to learning. Of course everybody learn in a different way, and you know you better than anyone else.

    One last note: learning different languages is not really that important unless the language changes the way you think. Again, good luck :)

  • C# is what I use at my day job and I think it's a very good language. It's feature rich (some people make fun of it for the fact the language team keeps adding new features). If you are familiar with Python and Typescript, that means you are reasonably familiar with object-oriented design. So, depending how you look at it, it may be very rewarding (since you will be able to quickly build on things you already know) or boring (since conceptually you will be mostly doing OOD). If you are interested in this path, Kotlin may be another interesting language which looks quite similar to C#.

    Functional programming is all the rage now. So, if you want a real challenge that will help your programming skills no matter what, you may want to start looking into a language in this family. Haskell and F# come to mind. But there are many others.

    Rust is also very trendy. In some instances it's replacing C and C++. It makes one think about lower level details of software. It's also a good language to learn if you want to be familiar with WASM. So, it may be an interesting challenge to take. Lemmy is written in Rust, so you may as well contribute to the platform. There is a lot to be done :)

    If you don't already feel proficient in SQL, that would be an important skill to obtain along the way. Databases aren't going anywhere and it's a whole different world.

    That said, you may want to focus on general things like design patterns and development methodologies (TDD, etc.) to broaden your horizons. Writing code is one thing. Writing high quality code with few bugs is a difficult thing to do and a great skill that only comes when one understands the best practices of software engineering.

    Hopefully this helps. Good luck with your endeavors.