• 0 Posts
  • 15 Comments
Joined 2 years ago
cake
Cake day: July 10th, 2023

help-circle


  • Ngl I love tailwind, I’ve been through so many different css paradigms

    • separate css files: why did we ever do this, if you’ve ever used kendo’s css stuff you’ll understand how unfathomable hundreds of thousands of lines of css with complex rules is. Identifying all the things that affect a single component is the work of dozens of minutes at minimum, sometimes hours, you have to understand every nook and cranny of the css spec.
    • inline styles: fine, but verbose and requires object spreading, harder to compose, theming is tough and requires discipline to be consistent in your theme conventions, almost impossible to also theme imported library components
    • module.css with imported classes: my go to outside of tailwind
    • scss: I actually really like scss but it exacerbates the complexity and mystery of css, great for small projects but terrible as projects bloat
    • bootstrap: basically just worse tailwind, providing only components and colors

    That’s all I can think of right now, but tailwind is my preferred way to style a new project, I love how easy theming and style consistency is




  • Nobody knows the future, but we can definitely speculate. Programming is still a good career if you’re talented, but it may no longer be the golden standard of well paying jobs that it has been for the last few decades.

    More important than anything, if you want to program, then do it. Don’t wait for university to tell you how, get your hands dirty and start making something cool, a game, a web app, whatever.

    Getting a job is hard for junior devs right this second for largely macroeconomic reasons, that may change in the future or it may not. You can sidestep that issue entirely with a solid portfolio.

    Learn to use the latest ai tools, but don’t rely on them to do the work and learning for you, “vibe coding” may or may not be a future career but if it is the salary will likely be significantly lower than software engineering.

    A degree does not make a programmer, but programming does.



  • I’ve used everything, vim, nvim, emacs, visual studio, vscode, sublime, codeblocks, android studio, xcode, bloodshed, intellij, eclipse, VB, geany, dreamweaver, qt, atom, and cursor (even though it’s really just a plugin)

    It doesn’t matter. It will never matter. I use vscode today because it handles everything I throw at it and it’s easy to make extensions for. Or cursor if I’m feeling lazy, the agentic mode with claude is pretty damn good if your codebase is well established.

    Don’t get hung up on the editor, just use the tools available to get the job done, at the end of the day programming is converting concepts to text.



  • I do this on my ultra, token speed is not great, depending on the model of course, a lot of source code sets are optimized for Nvidia and don’t even use native Mac gpu without modifying the code, defaulting to cpu. I’ve had to modify about half of what I run

    Ymmv but I find it’s actually cheaper to just use a hosted service

    If you want some specific numbers lmk



  • I explained a little about buffer overflows, but in essence programming is the act of making a fancy list of commands for your computer to run one after the other.

    One concept in programming is an “array” or list of things, sometimes in languages like C the developer is responsible for keeping track of how many items are in a list. When that program accepts info from other programs (like a chat message, video call, website to render, etx) in the form of an array sometimes the sender can send more info than the developer expected to receive.

    When that extra info is received it can actually modify the fancy list of commands in such a way that the data itself is run directly on the computer instead of what the developer originally intended.

    Bad guy sends too much data, at the end of the data are secret instructions to install a new program that watches every key you type on your keyboard and send that info to the bad guy.


  • There is a ton of literature out there, but in a few words:

    Rust is built from the ground up with the intention of being safe, and fast. There are a bunch of things you can do when programming that are technically fine but often cause errors. Rust builds on decades of understanding of best practices and forces the developer to follow them. It can be frustrating at first but being forced to use best practices is actually a huge boon to the whole community.

    C is a language that lets the developer do whatever the heck they want as long as it’s technically possible. “Dereferencing pointer 0?” No problem boss. C is fast but there are many many pitfalls and mildly incorrect code can cause significant problems, buffer overflows for example can open your system to bad actors sending information packets to the program and cause your computer to do whatever the bad actor wants. You can technically write code with that problem in both c and rust, but rust has guardrails that keep you out of trouble.


  • I’m a 10 year pro, and I’ve changed my workflows completely to include both chatgpt and copilot. I have found that for the mundane, simple, common patterns copilot’s accuracy is close to 9/10 correct, especially in my well maintained repos.

    It seems like the accuracy of simple answers is directly proportional to the precision of my function and variable names.

    I haven’t typed a full for loop in a year thanks to copilot, I treat it like an intent autocomplete.

    Chatgpt on the other hand is remarkably useful for super well laid out questions, again with extreme precision in the terms you lay out. It has helped me in greenfield development with unique and insightful methodologies to accomplish tasks that would normally require extensive documentation searching.

    Anyone who claims llms are a nothingburger is frankly wrong, with the right guidance my output has increased dramatically and my error rate has dropped slightly. I used to be able to put out about 1000 quality lines of change in a day (a poor metric, but a useful one) and my output has expanded to at least double that using the tools we have today.

    Are LLMs miraculous? No, but they are incredibly powerful tools in the right hands.

    Don’t throw out the baby with the bathwater.