619 karma · joined October 30, 2013
Literally saying "one sentence response" solves most of this problem.
The reality is that each update is its own potential security issue and with supply chain attacks being all too frequent, it's not a panacea.
Really it all comes down to agreeing to what terms mean within the context of a conversation. Unit, functional, and end-to-end are all weasel words, unless defined concretely, and should raise an eyebrow when someone uses them.
It solved a problem I had, but it's a very small problem that few people share and the efforts spent selling it would be a poor use of my time given how niche it is. The few extra minutes to hit npm publish is worth the couple hits of dopamine I receive whenever it's downloaded.
It's just nice to know I saved someone an hour or so of their life. No need to reinvent this wheel.
When you can't imagine, you're stuck with searching, searching that comes in many forms, such as scanning catalogs, walking aisles, or letting someone else do it altogether.
If you can imagine what you want and describe it with sufficient language, you can have someone else (or something) go and fetch it for you, but you're still stuck with the problem of not getting _exactly_ what you want, so again, you must parse the results... or get stuck with whatever is returned first.
Ad the end of the day, it's a question of how much you care about getting the thing you want vs getting something that is close enough, and the answer is in how much effort you, personally, want to spend.
Time investment has been _massive_ so far, but I just hit the first $100+ profit month, and despite the distance from my normal dev salary, the positive reviews/feedback have been an incredible reward that drives the motivation to continue. I will also say that it is quite the humbling experience to ship physical products and the experience has given me a whole new appreciation for the things we have in this world.
Early days, but check it out :)
[0] - https://freedomfrenchie.com [1] - https://www.etsy.com/shop/FreedomFrenchie
At least within the realm of technical discussion, I'll be continuing to view it as a mostly negative signal. The institution is very rarely the individual, and there isn't value in assigning positive weight when said institution doesn't carry any itself.
Increased friction is counter-intuitively a positive here, it shows that the author has at least put some real investment into the presentation of their work. Don't get me wrong, doesn't need to be a fully self-designed/built website, just spending some cash on a domain && Wix template is at least _something_ more than throwing words at a page to profit.
Guess we run in different circles!
A simple example, and not 'perfect', but it's quite impressive. Even a simple case of throwing your code 'over the wall' to the AI for review before going to an actual person is a huge time-saver.
The token size limit is the killer here, it means larger files, let alone projects, can't be fully processed in a single prompt.
Initial code produced: ``` def sum_of_digits(n):
if n == 0:
return 0
else:
return n % 10 + sum_of_digits(n // 10)
```I didn't save the exact code review, but essentially it was just a list of suggested code changes. The prompt was:
``` prompt = f'Python3. Act like you are a senior engineer writing a code review comment on the code. Write at least two specific changes to make, being sure to check for any errors first: {prompt}. Be as concise and correct as possible, and also be sure to write in a way that is easy to understand.
```
The resulting output code was:
``` import unittest
def sum_of_digits(n):
if n < 0: # Added base case check for negative numbers
return None
elif not isinstance(n, int): # Check type of argument passed in
raise TypeError("Input must be an integer")
elif n == 0:
return 0
else:
return n % 10 + sum_of_digits(n // 10)
# Unit tests using built-in test suiteclass TestSumOfDigits(unittest.TestCase):
def test_sum_of_digits_positive(self):
self.assertEqual(sum_of_digits(123), 6)
def test_sum_of_digits_negative(self):
self.assertEqual(sum_of_digits(-123), None)
def test_sum_of_digits_type(self):
with self.assertRaises(TypeError):
sum_of_digits('abc')
if __name__ == '__main__':unittest.main() ```
Edit: trying to cleanup hn formatting for readability
With the pipeline as such: business need -> tasks/cards outlined -> tests written -> code written -> refactor as changes needed
There is still a need for someone to manage the business to task relationship. Let the business person prompt, and the engineer to confirm the prompt output tasks makes sense technically, edit for any errors, and do any modifications needed for specific architectural choices or desired abstractions. With well-enough defined tasks, you can start to write the tests that conform to those tasks. Again, engineer checks the prompt-output, ensuring the tests line up with the card, making any edits as required. With tests written, the code can be written such that it conforms to the tests for correctness, cards for general I/O, and business use-case for domain-specific variables and such.
It's the same domain splits that occur in our current day-to-day practice that are cause for pain. Business person and product person have a miscommunication, the wrong tasks/cards get outlined. The task writer and the test writer have a miscommunication, the tests get written poorly and problem the business is trying to solve gets murky. The tests are written poorly so the code is written poorly. The code is written poorly so the product must be refactored.
The understanding of each others intent must be had and communicated effectively or the downstream problems will mount quickly. It's in this area where GPT-3 still seems a bit lacking, and maybe GPT-4 will resolve the issue a bit. Another worry I have with this sort of model is the spaghetti and debuggability a misunderstanding may have. When code is written more slowly, as is the case today, one is able to mentor the junior and provide feedback over the process. This not only prevents a huge mess, but allows the team to resolve any initially unsaid misunderstandings.
The speed and scale of messes one can now create with this tool is completely massive!
When you feed one level of prompt output into the next using some functional tricks, the ability to layer high-level ideas into the engine become extremely powerful. Even if this isn't 'true' AGI, with a few prompt scaffolding libraries, it won't exactly matter. I'm convinced this is going to radically shake up the entire software field at a process level. Both exciting and scary times ahead.
As to the work environment, it seems to be extremely varied depending on the lab and team your on. I came from a number of years doing web development in marketing and finance before joining an R1 university research lab, and in many ways the day-to-day is quite similar in both fields. You are not the 'go-to' person for most things, but with that said, even as an individual contributor I feel my voice is heard on technical decisions where appropriate. As for pay, it's the biggest aspect that will make me leave at some point. If you do not have a PhD, or even a degree in my case, you can't expect to get paid a lot. As to the speculation on the satisfaction of the work, it is indeed deeply satisfying!
I got to have a conversation with one of the hero donors that gave a kidney biopsy after a life-saving transplant. It's hard to overstate just how impactful your work feels when talking to someone like that. Even as a small cog in the larger machine (our lab is around 50 strong with many people being at the top of their sub-fields), the end results of the effort will be massive improvements in individuals quality of life, this alone makes it quite easy to get out of bed in the morning.
I visited Texas this summer and the consistency of the 100+ degree days turned me off from ever considering that part of the country. I find that it's just too hostile to life; heaven forbid you experience a power outage for a week causing your AC to become a useless heap of metal; what then?
Edit: Does this data count heating as well? Whenever I hear "AC" I typically think cooling, thus my main comment is focused on that aspect. Heating here really only needs to be enough to keep pipes from freezing, beyond that, it's very easy to stay warm with enough clothing, blankets, and body movement.
Take something like "A cat dancing atop a cow, with utters that are made out of ar-15s that shoot lazer-beam confetti". A vivid description should be aroused in your head, and no doubt, I could imagine an artist have a lot of fun creating such a description... Alas, what the model spits out is pure unusable garbage.
[0] https://chicagoyimby.com/2021/01/landmark-development-reveal...