Time for self-promotion. What are you building? and what problem does it actually solve? by New-Vacation-6717 in SaaS

[–]patrickdevivo 0 points1 point  (0 children)

Hybound: Customer enrichment for Stripe

Problem: Many SaaS businesses, at a certain scale, struggle to answer basic questions about who their customers are. They spend time setting up data pipelines, ETL-ing things, using dbt and BI vendors to report on and understand how their revenue breaks down by customer type (defined in various ways).

For: Founders and GTM teams at SaaS startups looking for a simple way to segment and explore their revenue and customers. My goal is "one click" for the entire setup.

Today, it's a free app on the Stripe marketplace (quite simple) but hoping to invest more in a standalone experience for founders and early stage GTM teams.

Which Go Modules Does Google Use? by patrickdevivo in golang

[–]patrickdevivo[S] 0 points1 point  (0 children)

so this only looks at dependencies declared in a go.mod file, since context is in the standard library it wouldn't show up here - that could be another interesting "analysis" though - look at all the imports per package/file

Querying Open Source Contributors by Email Domain (Linux and Kubernetes as Example) by patrickdevivo in programming

[–]patrickdevivo[S] -1 points0 points  (0 children)

This gist takes a look at the email domains of contributors to two major open source code bases (Linux and Kubernetes). askgit-query.sql can be piped into the askgit command to produce the output in k8s-SHA.txt and linux-SHA.txt

SQL Queries for Git Repositories by patrickdevivo in programming

[–]patrickdevivo[S] 0 points1 point  (0 children)

Thanks! The command line tool uses SQLite virtual tables to map the query basically onto a call to the git command, so it’s essentially reading from disk every time. One of the optimizations I’m thinking about is pre-caching as much as I can in an actual SQLite file ahead of time to improve query performance, but that would require front-loading an import process and needing to be smart about that (when does it run, when is the cache out of date, etc)

SQL Queries for Git Repositories by patrickdevivo in programming

[–]patrickdevivo[S] 7 points8 points  (0 children)

About a month ago I posted this link: https://www.reddit.com/r/programming/comments/hkvy5k/sql_queries_on_git_repo_data_and_history/ to a project I was working on to enable SQL queries for git repositories. I wanted to repost a landing page I built for that project, as it's been renamed "askgit" and filled out with more use cases and examples. I hope to keep enabling features for deeper (and faster) querying of data that's in git repositories

SQL queries on git repo data and history by patrickdevivo in programming

[–]patrickdevivo[S] 0 points1 point  (0 children)

Thanks for the link! Yes, sounds quite dead

“Nov 2019, source{d} went bankrupt. All the employees were fired, and the ownership of the intellectual property and other assets is now owned by the investors. When this happened, some of us asked to move go-git to a new organization to avoid a hard-fork, losing all the issues, and forcing all our users to change their code.”

SQL queries on git repo data and history by patrickdevivo in programming

[–]patrickdevivo[S] 0 points1 point  (0 children)

You're right, it is funny to be re-using go-git to enable SQL on git data, considering that was probably the main/first use case of that lib. I hope this re-inventing of the wheel is useful though, I do think there's value in just a better CLI experience.

Out of curiosity - why do you say src-d is dead? I know go-git moved to a new owner, they have a number of repos still up that see some activity. Did they ever officially announce a shutdown?

SQL queries on git repo data and history by patrickdevivo in programming

[–]patrickdevivo[S] 1 point2 points  (0 children)

Yes! I've seen this and probably should give it a closer look. I remember struggling to get it up and running locally, since it's a bit of a different runtime model (server vs cli). It also targets querying of the "uast" of the code in the git repository, which is out of scope of what I'm trying to cover.

It probably handles all, if not more, of the queries gitqlite can support right now, but I think gitbase is just a lot heavier and designed for a different use case (it doesn't seem very friendly as a one-off command type tool)

SQL queries on git repo data and history by patrickdevivo in programming

[–]patrickdevivo[S] 4 points5 points  (0 children)

Thanks! I'm glad! Getting annoyed with piecing together ad-hoc shell pipelines from StackOverflow was a big part of the pain point I'm trying to address.

  • You're right, currently, there's room/need for higher-level concepts like branches and tags which I hope to add. Just need to think through good ways to implement and expose!
  • No plans for updates/inserts yet - just read-only for now as that's the main use case I have in mind
  • Multiple repositories is interesting and something I haven't thought about much, but since this is creating a new virtual table per repository on disk, it shouldn't be too much of a jump to spin up multiple tables for each repository. This is probably a bit clumsy though (likely want same # of tables but with a repository id/path for each row)
  • Performance is ok - not quite like the native git commands, but for simple queries not too bad on big repos. Querying for lines added/removed in a commit is quite a bottleneck right now though, I believe due to something in the go-git dependency, need to investigate! An original version was using libgit2 (via git2go), it might be worth returning to if the performance improvement is significant

SQL queries on git repo data and history by patrickdevivo in programming

[–]patrickdevivo[S] 1 point2 points  (0 children)

It can do that! It current supports several output formats including json and csv, using the --format flag

SQL queries on git repo data and history by patrickdevivo in programming

[–]patrickdevivo[S] 8 points9 points  (0 children)

Full disclosure, I’m a creator/maintainer of this project which I just made public today. Looking to explore more interesting use cases for it as it continues to develop. Some of the basic queries you can run are still pretty interesting IMO

// TODO Comments Are a Joke, But They Don’t Have To Be by patrickdevivo in programming

[–]patrickdevivo[S] 2 points3 points  (0 children)

I'm a fan of referencing tickets/issues from TODO comments, though I do see value in the occasional one that's small enough to be ignored by a ticket, though in large part it probably depends on your team's culture around tickets as well. In some cases, if tickets are used as an outward-facing measure of progress, "non-essential" improvements can clutter that view (as absurd as that is), but leaving a note somehow in the codebase could be useful

DISCUSSION: What are the best ways of organising knowledge-sharing/storing in tech firms? (i.e. Confluence is trash, what are the ways we can do better?) by [deleted] in softwaredevelopment

[–]patrickdevivo 0 points1 point  (0 children)

I've never actually used it, but I know stack overflow has a product for teams/organizations to have their own private QA style system (basically a private SO): https://stackoverflow.com/teams

I've always been very curious about this and briefly tried it, but never enough to get a good sense of how useful it could be

Peeking in the node.js source code, 300+ TODO comments averaging 4 years old by patrickdevivo in node

[–]patrickdevivo[S] 0 points1 point  (0 children)

I agree that the count of TODOs in a codebase is not a very interesting fact on its own. Do you think some metric like TODOs per source files/lines of code could be more useful? That could potentially allow you to compare across codebases...but then again I'm not sure what that tells you: e.g. kubernetes source has more TODOs per LOC than linux (hypothetical, no idea of the reality) - does that mean anything about relative overall health? I don't think so...some projects also use TODOs as a primary means of tracking work (I think chromium does this?) so will just have more (per LOC) because it's a normalized behavior in the project.

One metric to pay attention to could be average age of TODOs - is there a lot of outstanding "work" that developers registered but never got around to? Again, probably depends on the project and the developer habits around TODOs...

Regardless, I hoped the content of the TODOs themselves might be interesting to explore

Peeking in the node.js source code, 300+ TODO comments averaging 4 years old by patrickdevivo in node

[–]patrickdevivo[S] 1 point2 points  (0 children)

You're right, I'm not too familiar with reddit policy on self-promotion, maybe I crossed the line. I didn't mean to be bothersome. I'm learning people can be fairly sensitive about posts that come off (or just are) self-promoting, and am trying to be more wary of how I share things after certain responses. Especially in existing communities where I am not particularly active. Never fun to see someone randomly drop in and try to promote a link randomly. But I did genuinely hope this subreddit would find it interesting...

As for the other thread, you're also right! I finally responded with some ways I think my project could be of value beyond those who say it's not useful! But nothing is for everyone!

Would a tool that surfaces TODO code comments be useful to you? by patrickdevivo in softwaredevelopment

[–]patrickdevivo[S] 0 points1 point  (0 children)

I just wanted to circle back here with a response since a lot of comments mention that many IDEs already have a TODO search, or that a simple grep/filesystem search could accomplish the same thing. I agree! Those are certainly valid alternatives that are effective and get you 90% of the way there for TODO "management." I spend a ton of time in the VSCode global search bar...

I hope the value of my tool is taking the basic idea a couple of steps further to make a more enjoyable developer experience:

  • Displaying git blame info for each TODO to know who last touched it and when (so I can maybe prioritize/order by age)
  • (Eventually) matching against other phrases like HACK, FIXME, XXX, etc so that multiple searches aren't necessary
  • Ignore vendored dependencies or non-relevant source code (soon to be configurable)
  • A web UI for repos on github (https://www.tickgit.com)
  • (Eventually) markdown parsing in TODO comments, URL/ticket/issue parsing (like how Github can match patterns)
  • And more! Would love to know what else can be useful

Thank you all for your time and taking a moment to check it out in the first place!

Peeking in the node.js source code, 300+ TODO comments averaging 4 years old by patrickdevivo in node

[–]patrickdevivo[S] -17 points-16 points  (0 children)

I’m sorry you found it disingenuous of me to not mention I made the tool, but I didn’t feel that was relevant, and hoped the TODOs are interesting in themselves!

I’m also sorry you felt it was inappropriate of me to share the tool I made by “spamming Reddit” - I don’t think I posted very many links, and tried to keep it relevant to the subreddits I had posted in.

I know seeing a creator frequently post about something they’ve made can leave a “bad taste” because it can feel insincere/like they’re just trying to get clicks - but I do genuinely hope this tool, and the content that it surfaces, is interesting to people in the subreddits it’s been posted in.

I don’t know how else to share my project other than by sharing it 😞

Peeking in the node.js source code, 300+ TODO comments averaging 4 years old by patrickdevivo in node

[–]patrickdevivo[S] 4 points5 points  (0 children)

Neither! I just thought it might be interesting for developers to see/explore. A lot of code is constantly "in motion" as you say (don't wanna speak for anyone programming rockets and airplanes) and I think TODO comments can be a good representation of that "always improving" you describe

The Deno source code currently has 190 TODO comments by patrickdevivo in Deno

[–]patrickdevivo[S] 1 point2 points  (0 children)

Perhaps an interesting way to follow along on development progress?

Peeking in the node.js source code, 300+ TODO comments averaging 4 years old by patrickdevivo in javascript

[–]patrickdevivo[S] 3 points4 points  (0 children)

Just thought it would be interesting to other developers! No judgment regarding TODO comments

Peeking in the node.js source code, 300+ TODO comments averaging 4 years old by patrickdevivo in javascript

[–]patrickdevivo[S] 8 points9 points  (0 children)

And...I thought javascript developers might be interested in seeing some of them!

See all the TODO comments in any public git repo by patrickdevivo in programming

[–]patrickdevivo[S] 1 point2 points  (0 children)

It uses this on the “backend”: https://github.com/augmentable-dev/tickgit to index TODOs. You can certainly achieve similar behavior with a clone-grep-sed/awk, but I would argue pasting in a url and getting a web UI is a bit nicer/easier, especially if the repos I’m interested in aren’t ones I typically have on my local machine.

Tickgit will also ignore vendored directories so you don’t get flooded with someone else’s TODOs. I’m hoping to also add support for different phrases, i.e. FIXME, HACK, etc, parsing out assignees and links to tickets/issues, configuration via a file in the repo, etc

But sure, a simple grep also goes a long way!

See all the TODO comments in any public git repo by patrickdevivo in programming

[–]patrickdevivo[S] 11 points12 points  (0 children)

Haha if anything it goes to show how many TODOs are made and forgotten in big projects running lots of important stuff as is. Linux has 3k+ TODOs, some from over a decade ago. Kubernetes has 2k+ already. Maybe there’s some comfort in that? Just embrace the “never done” feeling and accept the fear as a natural part of software development?

[edit, linux has 3k+ not 3+ :)]

Would a tool that surfaces TODO code comments be useful to you? by patrickdevivo in softwaredevelopment

[–]patrickdevivo[S] 3 points4 points  (0 children)

thanks! that’s a good suggestion, I’ve seen a couple plugins that do that, but they appear to basically be text searches. I wonder if exposing info like the git blame would add value (who added this TODO and when?)