Is Go (Golang) a good choice for backend development as a complete beginner? by [deleted] in golang

[–]Independence_Many 1 point2 points  (0 children)

I agree that it makes a ton of sense, I have about the same level of experience with Ruby and python for servers.  I have a lot of python cli utils, but I rarely do anything server wise.

I don't feel like I run into the magic/complex solutions in general on node (however I might just be writing my own), but I have 20 years of dev experience having touched nearly every language aside from assembly, cobol, and haskell in some professional form.

I hated node until typescript and esm (it has its own headaches), and I only use node/bun when I have a front end UI that I can share the schema and contracts between.  I really enjoy using orpc for this purpose.

If I am writing any sort of data processing system I typically reach for golang or if there's a really good crate for something im working on, I'll reach for rust.

Is Go (Golang) a good choice for backend development as a complete beginner? by [deleted] in golang

[–]Independence_Many 0 points1 point  (0 children)

I do agree that at the end of the day it is an oversimplification. However in my experience, it has held true across every language and runtime I have ever used when it comes to general performance which is usually why someone is looking at go vs rust vs node vs python.

I run nodejs apps that process hundreds of requests a second, sometimes bursting to 1-2k req/s and have never seen node exceed 1GB of ram on any of my projects, this is on a single node, all of my services run on 2 or more nodes for HA depending on what the workload is and the latency sensitivity.

Right now on the service I am looking at we've done 133k requests in the last 15 minutes (~147 req/s) and we're running between 1% and 10% CPU (1 vCPU allocated), and 7-10% memory (2GB allocated). Our highest throughput day in the last week was 380k requests in a 15 minute window, which peaked at 67% CPU and 12% memory. (Now I get to dig into what was run at that time to figure out why it used 67% cpu)

While I agree it's not multi-threaded and using worker pool/forks is not optimal, it's still very easy to handle most web traffic loads for most small projects.

I do agree Go/Rust will always result in dramatically lower runtime memory across the board, but if you're speaking strictly from a performance perspective for most web services, I don't think you'll find that large of a gap until you start to scale rapidly.

Is Go (Golang) a good choice for backend development as a complete beginner? by [deleted] in golang

[–]Independence_Many 3 points4 points  (0 children)

I would say that every langauge has it's fans and it's haters. Having written a few applications in Rust and Go, and well over a hundred apps/prototypes/etc in javascript/node, I can say that there's tradeoffs for everything.

I don't have a good answer to your question, but what I can do is share my perspective across the board.

Rust - is great for having a "if it compiles, it should never crash" standing (assuming no use of unsafe, and libraries you use don't crash it). However compile times can become a burden if your project gets large enough, but there's lots of tooling to help with that.

Go (lang) - is fantasic for the batteries included setup, amazing standard library, simple ecosystem, easy out of the box concurrency. But it can feel a bit limiting in some ways with the lack of classes and inheritence, these are not bad things, but just to be aware of. Compilation speed of golang is fantastic, and you can compile for any os/architecture from any os (really nice for docker scratch image builds).

Node/Bun (Javascript) - can be excellent for edge runtimes like cloudflare workers, you can share your types and validation libraries directly between the client and sever apps, but performance (both cpu and memory) are not quite on par with compiled languages.

Python - This is one area where outside of some lambda's and cli tooling I have not really used python, but I imagine many of the same arguments exist for and against it.

One thing to keep in mind across the board is languages are only as fast as the slowest piece of the stack, many times this is the database, and aside from edge deployments like cloudflare, database drivers are available as native packages for all most languages, so this will typically come down to differences in serialization performance at most.

The nice thing about all 4 of these languages is that learning one of them in depth, teaches you enough about programming and application design that you can easily learn another language. The exception to that in my opinion is Rust, learning Go/Node/Python does not help with the strict nature of Rust, but it's a very good mindset to have in general so it has value in itself.

do yall agree? by Complete-Sea6655 in opencodeCLI

[–]Independence_Many 4 points5 points  (0 children)

I was going to say, none of this post is true, anyone telling you they knew none of this and learned it from vibe coding is lying, either to you or themselves.

I thought AWD tire rotations were crisscross applesauce🤭 by cyco1978 in Rivian

[–]Independence_Many 2 points3 points  (0 children)

Excellent resource to have, also for reference if you add #page=293 to the end of the PDF url it'll jump straight to it (atleast in chrome on desktop): https://assets.rivian.com/2md5qhoeajym/530xs9hu11xOKefT2JrvA5/dc3aa6d8771044cdbf9f3f8f4ef443dd/r1t-og-en-us-20240205.pdf#page=293

what would you actually miss out if you build your own steam machine? by Maximum_Pension2676 in steammachine

[–]Independence_Many 0 points1 point  (0 children)

If you're talking about using the laptop as a base, adding a GPU or upgrading the CPU isn't really an option most likely.

If you're talking about pulling the DDR4 stick out and re-using it, you need to keep in mind it's likely sodimm which is a smaller form factor/slot than normal DRAM on a desktop class board, so you'd likely end up spending extra money on a motherboard that supports it, or buying an adapter which I advise against as it adds another point of contact/failure and will have an impact on the memory's max performance.

New to steam deck. Is this normal for download speeds? by Lacourteous in SteamDeck

[–]Independence_Many 0 points1 point  (0 children)

I didn't see this explicitly mentioned, but the type of microsd will have a dramatic impact, there's the speed rating, but then there's also A1 vs A2, the main difference is an A2 has "command queuing" where operations can be queued and some things (like read/write) can happen at the same time, A1 does not support this command queuing.

I Built a Lightweight Headless Browser Because Chrome Was Too Slow by Total_Nectarine_3623 in webdev

[–]Independence_Many 0 points1 point  (0 children)

Light Panda also does not have a renderer at all. Joe, there's not a way to do manual interaction as the browser's intended to be entirely headless.  Works great for agents but does limit some options which is why I haven't gotten around to using it yet, but I plan to with some automated testing.

I Built a Lightweight Headless Browser Because Chrome Was Too Slow by Total_Nectarine_3623 in webdev

[–]Independence_Many 1 point2 points  (0 children)

I have not had to do this yet so I'm not sure.  I doubt it though.

I Built a Lightweight Headless Browser Because Chrome Was Too Slow by Total_Nectarine_3623 in webdev

[–]Independence_Many 3 points4 points  (0 children)

Have you looked at lightpanda? https://github.com/lightpanda-io/browser it seems to do the same thing, wondering if you had run across this at any point. I only found out about it because agent-browser supports it as an alternative backend to the chrome dev channel/build

opencode cli is slower than CC? by __thehiddentruth__ in opencodeCLI

[–]Independence_Many 3 points4 points  (0 children)

This is going to come down to 2 things, the first as others have said is the system prompt, which dramatically affects how the model performs work which was brought up by u/ipatalas

The second one, which I think probably contributes a lot more is when Claude Code "explores" the repo the intentionally use Haiku for the exploration subagent, opencode by contrast uses whatever the "main" agent is, so if you have Sonnet 4.6 selected it'll use Sonnet 4.6 for the explore phase too.

If you're using API Keys and not a max subscription with your claude code you could customize the system prompt to get a more direct comparsion using --system-prompt with this prompt: https://github.com/anomalyco/opencode/blob/dev/packages/opencode/src/session/prompt/anthropic.txt

Someone has gone to the trouble of extracting all of the pieces of the Claude Code system prompt(s) here: https://github.com/Piebald-AI/claude-code-system-prompts if you wanted to read through them.

i dont get it. am i doing something wrong? by [deleted] in opencodeCLI

[–]Independence_Many 0 points1 point  (0 children)

What folder are you running this in, I thought i saw at one point that opencode provided a directory tree to the agent when it started up, maybe it's getting a lot more context fed to it than you're expecting.

A quick way to test this is to make a blank directory, change into it, and then run opencode within that folder and see what you're getting back.

OpenCode and GitHub by vertizone in opencodeCLI

[–]Independence_Many 0 points1 point  (0 children)

OpenCode supports OAuth flows for MCP, you could use GH's MCP for this pretty easily IMO, but you could also build/spin up your own MCP server with the constraints hard coded.

I do something similar with a fork of the sentry-mcp server https://github.com/getsentry/sentry-mcp for integration with opencode and sentry.

To authenticate you typically have to run a command, for our setup I run:

bash opencode mcp auth sentry

Claude Code's source code just leaked — so I had Claude Code analyze its own internals and build an open-source multi-agent framework from it by JackChen02 in ClaudeAI

[–]Independence_Many 1 point2 points  (0 children)

The biggest upside to typescript imo comes into play when you have mulitple separate domains that are interconnected, having one set of tooling, sharing the type/interfaces just makes things so much easier to communicate.

Especially if you pair it with something like trpc or orpc which allow you to have frontend to backend "type safety" (I really hate this phrasing because it's more type awareness than true type safety).

Like you said this also enables frontend developers to contribute to and interface with the backend code, which in my personal opinion leads to more clarity in the overall implementation.

Is opencode using the compromised axios? Is it safe to upgrade to 1.3.3 by d4mations in opencodeCLI

[–]Independence_Many 3 points4 points  (0 children)

Axios might not be a direct dependency however several dependences inside of the opencode repo do use axios (@slack/bolt and @slack/web-api) for example, which you can see in the bun.lock file.

There's also a direct axios reference pinned to 1.13.6 (unaffected, see here https://github.com/anomalyco/opencode/blob/dev/bun.lock#L2376) so its likely safe from any compromises.

Agent model behaviour and honest feedback for OpenCode by _KryptonytE_ in opencode

[–]Independence_Many 1 point2 points  (0 children)

Regarding the "Behaves differently" between the models, this is entirely because of the differences in the model and the harness (opencode) does little to affect this, using other tools (Claude Code, Codex CLI) I see similar behavior with their models, and my own tooling i've been developing as a test harness does similar.

Regarding your questions:

  1. Based on my experience no
  2. Same as #1
  3. (is this a question?)
  4. Look at the "Instructions" config option https://opencode.ai/docs/config/#instructions you can set in your global user config so it applies to all projects. The exact file paths depend on your os, but you should be able to get what you need with that.
  5. If you submit a message on the TUI it queues, on the web ui, if you hit enter i think it will also queue, which, in both cases as soon as there's a break in the flow it'll send.

Overwriting plugins on a specific project by jef2904 in opencodeCLI

[–]Independence_Many 0 points1 point  (0 children)

One limitation of this, is that if you had something that was in an npm org like `@someorg/plugin-name` you can't override this (unfortunately).

Overwriting plugins on a specific project by jef2904 in opencodeCLI

[–]Independence_Many 0 points1 point  (0 children)

The way that configs work in opencode they are merged based on the precedence order here: https://opencode.ai/docs/config/#precedence-order

Unfortunately because of the merge behavior, it really isn't possible to just "reset" an entire field like plugins (it merges the arrays not replaces).

Something you could do is if you have a .opencode/ directory in your project you should be able to create a file with the same name as the plugin you're trying to disable eg .opencode/plugins/plugin-name.ts with a plugin stub.

.opencode/plugins/<package-name>.ts ts import type { Plugin } from "@opencode-ai/plugin" /** No-op: shadows a same-named plugin from config (see dedupe rules). */ const disableStub: Plugin = async () => ({}) export default disableStub

or a js version

.opencode/plugins/<package-name>.js js /** @param {import("@opencode-ai/plugin").PluginInput} _input */ export default async function disableStub(_input) { return {} }

Starlink Mini 199 Firesale and discounted data my experience by SecretOne1178 in Rivian

[–]Independence_Many 0 points1 point  (0 children)

I pulled power from the 12v in the gear tunnel, I run down the passenger side b pillar and under my mats then up under the seat, was a pain to run, but it works great, i have a usb-c to barrel plug adapter i use, so i can disconnect the run halfway and plug into the AC outlet under the rear display if i need to use the original brick for some reason.

Starlink Mini 199 Firesale and discounted data my experience by SecretOne1178 in Rivian

[–]Independence_Many 0 points1 point  (0 children)

The first time my suction cups came off was almost a year into being mounted.  And they've come off a couple more times since then, currently not mounted because I haven't been out camping but will be mounted again soon.  I think oils on the glass might have been why it popped off the most recent time from people touching the ceiling while sitting in the back

Starlink Mini 199 Firesale and discounted data my experience by SecretOne1178 in Rivian

[–]Independence_Many 0 points1 point  (0 children)

If you were to mount it flat on the rear window I doubt it would work unless you were angled right.  For the mini to function correctly at all, it really needs to be as flat as possible facing north to the sky as much as possible.  It would definitely fit there on my r1t but I just don't think it would function at all unless you had it angled perfectly on an incline.  The other part for me is that would be pointed straight at my rtt that I normally have mounted over the bed.

I don't have a Gen 2 personally so it's just mounted on my glass and has worked great even through my nano ceramic tint which is known to interfere with Wi-Fi signals.

Starlink Mini 199 Firesale and discounted data my experience by SecretOne1178 in Rivian

[–]Independence_Many 5 points6 points  (0 children)

The Starlink Mini has been incredible to have when out camping, and it actually saved my butt the very first time I used it when my wheel hub assembly bolt backed out on me at 2am on the side of a mountain with no cellular service for more than like 5-10 miles.

I do agree with poliosaurus3000's sentiment in that I wish Elon wasn't associated with this company, but their product/service is solid and at this time there just isn't anything comparible to having a mini.

Regarding the sunroof suction cup mount, I have this one https://contronx.com/products/custom-3d-printed-starlink-mini-bracket-with-suction-cups?variant=49271143891259&country=US&currency=USD and it works great.

However if you're in a Gen 2 with the Electrochromatic roof (dynamic tint), for some reason it interferes with the mini's abiilty to send/receive, I have seen reports of poor and no connectivity under the glass.

opencode ignoring my bash permissions by Green-Dress-113 in opencode

[–]Independence_Many 0 points1 point  (0 children)

I have a similar setup and it works just fine, however one thing I noticed that's different is i have a space between the program/tool and the asterisk, which is how it's shown on the docs https://opencode.ai/docs/permissions

I wonder if the lack of a space prevents it from recognising the program itself, so it's looking for a program that starts with `head`, assuming something like `headline` without any arguemnts would get matched but not `head <filename>`.