HackerTrans
TopNewTrendsCommentsPastAskShowJobs

davismwfl

no profile record

comments

davismwfl
·2 months ago·discuss
I attack it pretty much the same regardless of language or project. Generally, I start with the product, see how it works, find the 3-4 most common workflows and get a handle on them.

Then I like to check out the database (or algorithms & data structures if no db) and see how data is stored and manipulated, usually tells you a lot about choices that have been made.

Then open the project(s) and trace those 3-4 workflows once I understand it from the top level workflows. Part of this is also of course, getting the project(s) loaded and building locally as needed also reviewing tests, CI/CD, dependencies etc.

Lately, I've used Claude Code to help me with this, have it build a function map or class map and have it breakdown key insights about the code and trace those few workflows for me that I then validate. My process is pretty much the same just Claude does a lot of the initial lifting. I'll also dump the entire DDL for most databases (if they are more then a few tables) and send it to Claude and use that as a way to look for patterns/issues etc. For older monolith apps I've had to break the DDL into chunks sometimes just because some of these older apps have a very large number of tables/indexes/constraints etc that have been added over the years. Same thing works for json stores too fwiw.
davismwfl
·6 months ago·discuss
GPT + Grok (sometimes Claude) for writing docs, policies, requirements, client responses etc. Grok is often times more concise/direct, which helps me as I tend to be verbose. I always review/edit regardless. Much faster than writing from scratch, and combining responses on the same topic is sometimes best.

Copilot for code completion + reviews or small snippets/functions but larger code/module generation has been weak so far.

Claude for full modules generation or complex multi-file edits.

Research: Grok (less filtered + better search), Claude (complex dev topics), GPT (balanced but sometimes slanted and/or seems to favor certain sources).

My Teams: Mostly Copilot for code completion/reviews, mix of GPT/Claude for code. Last year was loose/experimental to learn but we plan to formalize guidelines more this quarter.

Definitely a ton of hype that doesn't always match reality, but it is a super powerful tool that really has made things move faster.
davismwfl
·6 years ago·discuss
Very fair and very true, and I am 100% in agreement with your points, I do not know of a single resource we can go to as an educational toolset that is based on real world products/experience. The problem is the industry as a whole is locked into these NDA type agreements (along with proprietary information) which prevent a lot of the complete schema sharing etc which would help people learn the best.

That said, some of the best things to look at are open source projects and research their pain points and highlights. That will many times point you to the tradeoffs they made in modeling and in code. For e-commerce things like magento and other open source solutions can be really informative, even woocommerce and how it shoehorns itself into wordpress can be informative as to the tradeoffs on highly normalized vs lightly normalized vs key/values etc.
davismwfl
·6 years ago·discuss
Kinda tough to give a good answer without more context, IMO. What I mean is that a good e-commerce schema that serves a single small store and runs off a single database server would look quite different then a multi-tenant or distributed data store for a e-commerce site at scale.

The one you linked is a pretty typical relational model and isn't bad, but it has trade offs that I'd personally not make, however, that doesn't make it bad.

In the end context, scale and usage all determine a good schema design. Sometimes what would be a good relational design on paper would be tragically horrid in practice once you get beyond a small dataset.
davismwfl
·7 years ago·discuss
My own experience with these types of things is that the software is not worth much at best and most likely worthless overall.

Software without a market and customers already using it is basically worthless. If you were in a hot market and had clients a competitive startup might offer some decent money but it’d be mostly for the customer list.

One time that software can hold value is when you have a unique patent or have invented something that is truly new and revolutionary. Think scientific software algorithms or long standing problems where your code can be integrated quickly and solve a problem that isn’t something people can easily replicate with just some time.

For the most part the sounds of your code is that other people could replicate it fairly readily with just some time. I am not criticizing anything, just saying it doesn’t sound like you invented anything truly new. More like you guys put things together in a way to solve a problem which likely had value to people but not enough for the software to hold substantial value without a market and user base.

You can of course try and maybe you’ll get lucky. But I’d likely say you’d have better luck carving out a library or a complete product and open source it. Then sell consulting services around it and maybe host it etc.

The costs are sunk, your best bet is trying to use the software as leverage, not trying to sell it outright. At least that’s been my experience when I had companies fail before we had real traction. I did have one offer for like $5k on software we spent ~600k developing. I held the code and integrated parts into other projects that went on to make me money.

Good luck, and maybe you can prove my experience isn’t true today.
davismwfl
·7 years ago·discuss
I totally get it. My daughter took algebra last year (she is going into high school), and I had to relearn things I haven't had to do in a long time, and more so learn the way in which it was being taught. I use math quite a bit (and some is quite complex), but there are parts of Algebra that you just don't use commonly. Also, at least in the U.S. they teach Algebra (math in general) far different than how I learned it growing up and in college.

So to help her we went took Khan Academy lessons together and that way I could understand what it was they were going for and could help her understand if she had questions. I highly recommend them, really was super helpful and lets you move through stuff you know and slow down where you need to practice some. There are also a lot of places online you can download worksheets to do practice, which in the end is all you probably need to do to see where you are.

Another resource you can try is go to your local community college and see if they will let you audit a couple of the math courses. Or see if you can sit in on some of the adult learning math classes, usually those are geared to working people trying to get their GED or HS diploma but at least where I am they are usually super helpful to people who just need a refresher on math or english etc. I was helping a friends machine shop get more organized and improve their working situation and we sent a lot of the CNC operators to the adult learning classes for a very small fee ($50 or so) to get some help on math etc. So worth it, and what they all appreciated was there was no judgement of young 18-20 year old kids (that can be intimidating for some people) like there could have been in regular remedial math classes in college.

You'll do good, it comes back to you for the most part and you will crank through it faster then you initially think. Good luck!!
davismwfl
·7 years ago·discuss
I agree overall, nothing is wrong or improper with GPL if the product you are creating also complies with the same license terms. In the context I said questionable and improper is discussing commercial software. When I think of commercial software it is a non open source product being sold, licensed etc. Not that open source can't be commercialized but if you notice almost all companies run a dual license for their commercial vs open source software, e.g. QT, Mongo and others. They do this because it is the only way to monetize the software and not have every competitor have the same proprietary add ons they created and companies are willing to pay for.

An example I dealt with a few years ago, I was working on an embedded project and the associated desktop software that the original developer utilized some GPL licensed open source libraries, compiled into the binaries (both embedded and desktop). When I did a license review and discussed it with the attorney it was deemed that GPL licensed components could not be included due to the licensing terms and the way that product was distributed along with the closed nature.

In general I follow the rule, and have been told multiple times, that GPL (any version) with rare exception is not to be used in commercial software (including API's and server based products) unless you are strictly dynamically linking to the library. But if you are compiling it into your commercial product and especially if you are making alterations to it and compiling it in you are in violation of the license terms (and definitely the spirit of the license). Of course, if your product is open source, then that is a totally different story.

Even more open licenses like Apache and MIT still have copyright notices you need to comply with at minimum, so all that has to be taken into consideration as it needs to be added to product manuals, about pages etc otherwise you are in technical violation of the terms. Hence, the license terms of any library should be a key consideration on whether you include it into your project.
davismwfl
·7 years ago·discuss
I typed Apache and was thinking GPL, totally my fault.

Over the years I have sought council and been advised by multiple different attorney's that for a closed source commercial product to avoid certain licenses, like GPL and others. Apache in fairness is not one of them, my bad. MIT and Apache are the two we have used and included in projects in recent memory.

In the end I am not a lawyer either and my core point still is the same, a major question for whether to use a 3rd party library still is around what license the library is released under. And it is usually best to get advice from an attorney for any of the more complex license models.
davismwfl
·7 years ago·discuss
One of the key considerations I look at is license. If the 3rd party library has a license I can work with, modify and use etc. And you have to consider distribution too in that conversation. A lot of times this one fact takes away all doubt on the right way forward. People use Apache licenses on a lot of projects that it is questionable if not down right improper, and I am kinda anal about that as for commercial products you don't want someone coming back and saying you violated the terms/spirit of the license.

Outside of licensing. It is usually based upon the needs of the project, if I can find a library that does 80% of what I need and I can add the remaining 20% and I am happy to live with that code then I'll definitely use a 3rd party. In general I favor those libraries, but just so many times the licensing trips the flag that it isn't worth the risk and adding a few extra days or even weeks to a project is well worth the time.

One other point, I also am really big on logging/metric collection, if I need to go in and instrument an entire library then it adds another level of work so I start thinking about just creating our own. But not all libraries do need detailed logging and metrics (although IMO most do).