• 0 Posts
  • 20 Comments
Joined 11 months ago
cake
Cake day: August 9th, 2023

help-circle


  • That was a pretty interesting read. However, I think it’s attributing correlation and causation a little too strongly. The overall vibe of the article was that developers who use Copilot are writing worse code across the board. I don’t necessarily think this is the case for a few reasons.

    The first is that Copilot is just a tool and just like any tool it can easily be misused. It definitely makes programming accessible to people who it would not have been accessible to before. We have to keep in mind that it is allowing a lot of people who are very new to programming to make massive programs that they otherwise would not have been able to make. It’s also going to be relied on more heavily by those who are newer because it’s a more useful tool to them, but it will also allow them to learn more quickly.

    The second is that they use a graph with an unlabeled y-axis to show an increase in reverts, and then never mention any indication of whether it is raw lines of code or percentage of lines of code. This is a problem because copilot allows people to write a fuck ton more code. Like it legitimately makes me write at least 40% more. Any increase in revisions are simply a function of writing more code. I actually feel like it leads to me reverting a lesser percentage of lines of code because it forces me to reread the code that the AI outputs multiple times to ensure its validity.

    This ultimately comes down to the developer who’s using the AI. It shouldn’t be writing massive complex functions. It’s just an advanced, context-aware autocomplete that happens to save a ton of typing. Sure, you can let it run off and write massive parts of your code base, but that’s akin to hitting the next word suggestion on your phone keyboard a few dozen times and expecting something coherent.

    I don’t see it much differently than when high level languages first became a thing. The introduction of Python allowed a lot of people who would never have written code in their life to immediately jump in and be productive. They both provide accessibility to more people than the tools before them, and I don’t think that’s a bad thing even if there are some negative side effects. Besides, in anything that really matters there should be thorough code reviews and strict standards. If janky AI generated code is getting into production that is a process issue, not a tooling issue.


  • I mean if you have access but are not using Copilot at work you’re just slowing yourself down. It works extremely well for boilerplate/repetitive declarations.

    I’ve been working with third party APIs recently and have written some wrappers around them. Generally by the 3rd method it’s correctly autosuggesting the entire method given only a name, and I can point out mistakes in English or quickly fix them myself. It also makes working in languages I’m not familiar with way easier.

    AI for assistance in programming is one of the most productive uses for it.


  • Not OP, but my main preference for MacOS comes from the UI/UX of an absolute rock solid OS on top of a unix-like shell. I regularly go months without rebooting my machine with 0 issues like software hanging on wake.

    I know there are a lot of exclusive creative apps, but all I really use my MacBook for is code, typical browser stuff, music, slicer/web interface for my 3D printer, and to interact with my home server. I’m not an open-source/Linux purist by any means, but pretty much all the software I use is widely available on all platforms. It probably helps that I bought a MacBook after growing up with Windows/Linux, so I came into it with a set of software I was familiar with that already existed on other platforms.




  • Just because you’re not writing high performance software doesn’t mean it shouldn’t be a consideration. Sure, I’m not gonna micro-optimize memory when I’m writing an API in Python, but that doesn’t mean I’m not going to write it efficiently.

    If I have to store and then do lookups on some structured data I’m gonna use a hash table to store it instead of an array. If I need to contact a DB multiple times I’m only gonna close my connection after the last query. None of this is particularly difficult, but knowing when to use certain DSA principles efficiently falls pretty firmly into the computer science realm.

    If you need someone to hyper-optimize some computations then a mathematician might be a better bet, but even those problems are rarely mathematician level difficult. Generally software engineers have taken multivariate calculus/differential equations/linear algebra, so we’re decently well versed in math. Doesn’t mean we don’t hate the one time a year we have to pull out some gradients or matrices though.


  • Surprisingly, Remarkable tablets, despite not being open source, you can do just about anything with. They allow root SSH access and the backend is a heavily stripped down version of Linux.

    I’ve been writing an application to allow customizing splash screens over SSH/SFTP and it’s actually been super easy to work with. The “jailbreak” scene is also super active, and the company has gone the opposite direction of most. They retroactively removed the need for a subscription to cloud sync on all devices, and seem to very much embrace the ridiculous things people have done with their tablets.

    The device is also no nonsense and does exactly what it’s designed to do extremely well and no more. No ads, no bloat, no constant internet connection. You could never connect the thing to the internet if you really wanted. Honestly one of the few devices I’ve bought in recent memory that I feel like I wholely own.

    Two big downsides are no Bluetooth, and you need a modified hardware device to unbrick the device if you fuck up (jumping type C pins to put the device into recovery). Overall really solid and would recommend.


  • There are levels to it. As things get more complex the problems get infinitely more strange. As you learn a particular technology the strange things you encounter are often because of a misunderstanding about that technology or the way it works.

    Once you hit professional level software engineering (think distributed systems), things are strange in large part because the system you’re working on has hundreds of thousands of man hours poured into it, and is often very complex with 10 different technologies backing it to do various things.

    The more strange things you encounter though the more you’re learning!




  • I’ve had the opposite experience at my past and current job.

    I’ve always been given the choice of Windows or MacOS, with a remote Linux machine available if needed (first job I ran remote IDEs on it, second job I’ve gone full local development). Same with IDEs. As long as I was able to properly write and test code it did not matter what I used as both companies had licenses for the top IDEs (JetBrains suite, Visual Studio, etc.), and would buy one-offs if you wanted to use something else. There was always a general team convention simply due to ease of use, but I occasionally opted for a heavily modified VSCode workspace over PyCharm and the like.


  • IntelliJ for Java Pycharm for Python VS Code for everything else

    I use the Jetbrains IDEs through Gateway to my dev desktop, and VS Code through SSH.

    I work at AWS and the tight integration of the Jetbrains IDEs with our internal package manager/build system is a must. I frequently need to do some lighter scripting or text formatting at which point I just use VS Code because it’s faster. I could realistically use any of them for everything, but I’ve realized using 3 IDEs that suit my multiple use cases perfectly has been more enjoyable than using one IDE that does one thing perfect, and everything else just okay.


  • Pretty much. I’m a plugin developer for Decky Loader on Steam Deck and my sole motivation is I enjoy building cool shit. I wanted a feature on my Deck that didn’t exist…so I just made it. Then, since others wanted the feature I created a pull request to the Plugin Store so everyone could use it.

    I’ve spoken with quite a few of the other Steam Deck Homebrew developers and they basically all had the same story. It’s also nice because if you get stuck or need help there are hundreds of people you can ask who are very knowledgeable, and more than willing to help.






  • JDubbleu@programming.devtoSelfhosted@lemmy.worldFirst steps to self hosting
    link
    fedilink
    English
    arrow-up
    4
    arrow-down
    1
    ·
    edit-2
    10 months ago

    I have a Pi 3B+ I run qBittorrent, Plex, ProtonVPN through Wireguard, and a Samba share on and have had 0 issues. It’s connected to a 2 TB external SSD which is where the Plex media library lives and coincidentally where qBittorrent downloads to by default wink wink. I also have a P2P VPN called ZeroTier that allows me to securely connect to the Pi from anywhere. You should be golden with a Pi 4.

    I’ve had zero issues even transcoding 4k BluRay content, but it required adding active cooling to prevent the Pi from overheating. Thankfully you can get a tiny heatsink and fan for under $10.

    Edit: Accidentally said RPi 5 which didn’t exist… Fixed.