firelizzard
@firelizzard@programming.dev
Principal Engineer at Defi Devs
- Comment on Give me Options or give me death 8 months ago:
*when I’m doing debugging that requires commenting out code.
Most of the time, I don’t comment out code. I run the code in a debugger, step through it, and see how the behavior deviates from what I expect. I mostly only resort to commenting out code if I’m having trouble figuring out where the problem is coming from, which isn’t that often.
- Comment on remember, if your gf isn't open source and running locally, you don't own her 8 months ago:
I’m definitely biased because I love the language, but I think Go is a good place to start. The authors talk about the language design more than I’ve seen for other languages. The Go blog occasionally has posts like that but Russ Cox’s blog is the place to go for the gnarly details. Another good place is the proposals repo, e.g. the generics proposal. I also browse issues on GitHub and look for ones with interesting discussions.
including the syntax, which I know most nerds dismiss as superficial.
Syntax is mostly irrelevant as far as what is possible with a language, but it is a critical aspect of how easy/hard it is to use a language, and most critically how easy/hard it is to read code written in that language. IMO the only thing that’s more important than readability is whether the code works as intended.
- Comment on Give me Options or give me death 8 months ago:
You get used to it. The only time I really notice it these days is when I’m debugging and commenting out code.
- Comment on Give me Options or give me death 8 months ago:
I totally agree that it’s really annoying when debugging, but
go run
literally builds then executes. I think what they should do is add a build flag. So debug builds can pass that flag to get the builder to shut up, and leave it enabled for production builds. - Comment on remember, if your gf isn't open source and running locally, you don't own her 8 months ago:
You’re also a programming language design nerd? Like, “Compare the features of language A to those of language B”, or nerding out about the underlying mechanics of things like generic types, virtual method dispatch, and no-stop garbage collection? I thought I was the only one. Well not the only one but it doesn’t seem that popular of a thing to nerd out over.
- Comment on What are some common misconceptions about programming that you'd like to debunk? 9 months ago:
I think the degree of footgun danger depends a lot on the language and the application. I agree that C and C++ are dangerous until you really know what you’re doing, though IMO most of the danger comes down to memory management and that’s a portable skill, once you’ve learned it. That being said, I don’t have a lot of experience with C++. C was my first language so I’m used to plain old normal boring pointers (are those “dumb pointers”?) and I’ve never understood why C++ needs 9 billion types of pointers.
Go has one particular footgun - loop range variables. Other than that, IMO high-level, garbage collected languages don’t have major footguns like that. My first job was writing a bespoke inventory system for a manufacturing company, and I wrote it in a language I’d never used before - C#. In five years the only major issue that had was due to my inexperience with SQL and had nothing to do with C#. And though I haven’t written nearly as much code, I’d say the same about Java, Ruby, Python, and JavaScript.
- Comment on What are some common misconceptions about programming that you'd like to debunk? 9 months ago:
As my first job out of college (when I didn’t know what I didn’t know) I was hired to build a bespoke inventory system for a manufacturing company. My prototype became a production system the second I showed it to one of the engineers. The next three months of my life were a living hell as I frantically fixed bugs on a live system. Lesson learned.
- Comment on What are some common misconceptions about programming that you'd like to debunk? 9 months ago:
Counterpoint: knowing a programming language doesn’t matter if you can solve problems. A competent programmer can pick up a new language and be productive within a few months. That is, a new language within the same paradigm - going from a imperative language to a functional language can be a drastic shift, but going from one imperative language to another is easy. If you can’t do that as a intermediate to senior developer, you’re not a competent programmer IMO.
The real skills of a good programmer are things like problem solving, debugging, understanding how to write readable and maintainable code, etc. Having deep knowledge of a specific programming language or languages is helpful and enables you to work faster, but if you’re only a skilled developer in the languages you know - if you aren’t capable of pivoting those skills to another language - you aren’t a skilled developer IMO.
- Comment on I don't believe Auto Save feature in any software 9 months ago:
Maybe these days. That definitely was not true when I was growing up, or even a decade ago.
- Comment on GitHub Desktop or Git CLI? 11 months ago:
Of course I don’t browse the web with the command line.
That’s my point. Browsing the web with a command line tool is obnoxious - you use a GUI for tasks that you find easier/more pleasant to do with a GUI. The difference is where that line is. When I’m reviewing what work I’ve done and checking through my code for debugging statements and other cruft I don’t want to push, I prefer to have a nice tree view of my change set where I can click on an item, see what I’ve changed, select lines and stage them, select other lines and revert them, etc. I could do all of that with command line tools (though not that many have mouse support) but I already know how to do exactly what I want with VSC so why would I use anything else?
You’re already programming! Just learn the tool!
If someone is incapable of learning the tool, that’s an issue if they’re a developer. But your statement implies that everyone should use the CLI for everything. My point is that it’s a matter of preference. The CLI is not superior and GUIs aren’t superior. They’re both just tools and if you can get your job done quickly and efficiently, that’s all that should matter.
- Comment on 1 follower on GitHub = 1000 followers on other platforms 😅 11 months ago:
I have 13 followers on GitHub. A few are friends from college, the rest I have absolutely no clue why.
- Comment on GitHub Desktop or Git CLI? 11 months ago:
Do you use the command line for everything? Do you edit with vim, view diffs with git diff, browse the web with links or lynx?
GUIs are useful tools. I’m happy with VSCode’s git integration. It’s just what I need for basic stuff like staging files and committing. I use the CLI whenever I want to do something like rebasing because I can type that command faster than I can figure out the GUI, but it would be stupid to artificially force myself to use the CLI for everything because of some kind of principal.
- Comment on Systems engineering in the software industry 1 year ago:
I can see how systems engineering could fit into that role but the project/program managers I’ve talked to were much more focused on management than engineering
- Comment on Systems engineering in the software industry 1 year ago:
Systems engineering is an established discipline, one you can get a degree in. It’s not just a random term I’m making up. en.m.wikipedia.org/wiki/Systems_engineering
- Comment on What time do you have your daily stand up? 1 year ago:
Do you have other regular meetings? I’m at a fully remote company and if we didn’t have stand ups I probably barely ever talk to my coworkers via anything more than email and chat.
- Submitted 1 year ago to experienced_devs@programming.dev | 9 comments
- Comment on What languages are well suited for testing SDKs written in multiple other languages? 1 year ago:
Part of it is an HTTP/RPC interface, but that’s not the party I want to test.
- Comment on What languages are well suited for testing SDKs written in multiple other languages? 1 year ago:
I don’t think you really have a choice TBH. Trying to do something like that sounds like a world of pain, and a bunch of unidiomatic code. If you can’t actually support 4 to 10 languages, maybe you should cut back on which ones you support?
To be clear, the SDKs themselves are hand-written; I’m not trying to do anything fancy there. In terms of designing and writing the SDKs, we can manage that for the 4 we have now. The issue is testing. The main system is a collection of services that are accessed via an API. That API can be accessed directly through function calls, or via HTTP or RPC. Our integration tests interact with the system through that API. The SDKs have a moderate amount of logic so they’re not simple HTTP/RPC clients, but maintaining multiple (idiomatic) versions of that logic is not too much of a burden. The issue is that I want a single test corpus that I can use to validate each SDK without having to rewrite that test corpus in each language. Ideally I’d like the integration tests to be that test corpus.
If neither of those approaches works, everything speaks C FFI, and Rust is a modern language that would work well for presenting a C FFI that the other languages can use. You’re probably not hot on the idea of rewriting your Go tests into another language, but I think that’s your only real option then.
I was assuming I’d need to rewrite my tests in Go given that Go’s FFI support for anything other than C is not somewhere I want to go again. I have been meaning to learn Rust so I might just do that.
- Submitted 1 year ago to programming@programming.dev | 5 comments
- Comment on What would it take for you to move away from Github? 1 year ago:
I’m definitely not interested in convincing you to change your mind but I do want to reply to some specific items.
the number of users in groups
The only limitation I can find is that top-level groups on the free plan are limited to 5 users. Granted, there are certainly reasons to keep a group private, but public groups are not limited.
moving some basic free features into premium like protected branches, code owners, issue dependencies, epics, roadmaps
Protected branches are available for all plans. I’m pretty certain the rest of the features you mentioned were never free. You can disagree with that choice, but it is incorrect to say they were moved into premium.
- Comment on What would it take for you to move away from Github? 1 year ago:
I saw in other comments that you aren’t happy with the direction GitLab is going in and feel that they’re focusing on business customers at the expense of open source users. Can you expand on that?
The project I am working on joined the GitLab for Open Source program and it was absolutely painless. All we needed to do was submit an application and now we’re using Ultimate without paying a cent.
I’m not sure it’s what you’re referring to, but one of the pain points for me is that open source projects (that don’t join the program) no longer have access to lots of free SaaS CI hours. That sucks, but I can’t blame them - they had a plague of crypto miners taking advantage of those free CI hours. It’s not reasonable to expect them to eat that cost, especially when the open source program is so easy to join.
- Comment on What would it take for you to move away from Github? 1 year ago:
GitLab already has stellar CI/CD, far superior to GitHub Actions IMO
- Comment on What would it take for you to move away from Github? 1 year ago:
I’ve been using GitLab for years. I have a GitHub account but at this point I only use it to contribute to other projects.
- Comment on What would it take for you to move away from Github? 1 year ago:
GitLab. You can use their SaaS offering (gitlab.com) or run the open source version on your own server(s).
- Comment on My poor RAM... 1 year ago:
The point is that Slack does not take advantage of Electron at all. It’s no better than running it in a browser.
- Comment on Why should I use rust (as a Go enthusiast)? 1 year ago:
In my book, “memory safety” also means avoiding data races. AFAIK Rust prevents most or all races by enforcing ownership and lifetime of pointers.
- Comment on The Worst Programmer I Know 1 year ago:
Most experienced developers already agree with you
- Comment on Why should I use rust (as a Go enthusiast)? 1 year ago:
I’d have to be living under a particularly large rock to be unaware of that. “It’s memory safe” isn’t that big of a deal to me. Even building concurrent systems, memory safety has never been a significant issue for me with Go.
- Submitted 1 year ago to programming@programming.dev | 20 comments
- Comment on Google Launches Project IDX, A web-based IDE 1 year ago:
Yes. It is still entirely possible to run VSCode or VSCodium locally without any of that cloud crap.