HN user

bluejellybean

620 karma

https://alexbarkell.com @alexbarkell on Twitter alexbarkell @ the google mails American programmer Press on

Posts15
Comments208
View on HN

I'm in a similar camp, I dislike how often third-party package updates get pushed out, especially given the lack of serious inspection.

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.

Yep, the 'unit' is size in which one chooses to use. The exact same thing happens when trying to discuss micro services v monolith.

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.

I have a very small utility library that receives a few downloads every couple of weeks that I just spent a few hours upgrading today.

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.

How does one know what they want until they see it or imagine it?

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.

I've been sharpening my axe by working on a few different projects in the shape of of an online shop[0][1]. Products are a bit of a mishmash as a result of the different projects - To date, I've been farming succulents, 3d modeling/printing (flower pots/hobby crafts/etc), and learning Rust/Next.js for the back/front ends!

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

Medium used to have an aura of carrying more reputational weight than a personal blog did.

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.

I did just this a few days ago, it's incredible how many people will come up and ask to pet your dog. Some will keep moving quickly, others will talk about their own animals, and some will drop little hints about themselves to further a conversation. Aside from everything fun about a companion, it's really is a fantastic feeling to be able to see someones eyes light up, you're brightening up their day!

Yupp, it can! I've been able to get it to do simple examples. I was able to get it to print out a 'sum of digits' style function. I was then purposefully placed a silly bug in it by hand. I then ran the code through a 'please code review' style prompt, got a number of decent suggestions out. Using those suggestions, I was able to prompt it to refactor the function to: fix the bug, add documentation comments, include type definitions, and even add tests!.

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 suite

class 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

Near future, that seems right, further out I am guessing GPT-4 could enable the level to a couple years of real-world skill instead of two semesters.

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!

Completely agree with this sentiment, and the general idea that this is a pretty monumental moment in time. In a couple of hours of work, I've been able to prompt for something like "Get an nginx server and node.js backend up and running", have it generate a rough outline of todo elements, add color/detail to each outlined todo, and write tickets. The tickets even included a title, what done looks like, how to QA, and additional background info as to how this ticket fits into the greater whole. The only thing I didn't get it to do was the actual code writing because I figured this article, or another like it, would prove out it's capabilities for me. Even if the code comes out looking rough like a junior wrote it, the ability to prompt for edits in the PR review should allow us to resolve most issues.

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.

I say this as someone who has been heavily using the command line for the last decade, even if you "know" how to use a CLI decently well, go read this if you haven't. From only a couple minutes of reading I found not one, but two new tidbits that I never even considered looking up. This information will completely change my daily levels of frustration when using a CLI. Very, very high ROI link.

Molecular Biology of the Cell got me extremely excited about genetics and bioinformatics, highly, highly recommend this book to any software person I meet who is interested in biology.

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 guess I am in the minority because I don't run an AC unit in my bedroom office here in Ann Arbor, Michigan. The humidity can get a little miserable during the height of the day, but it's completely tolerable as your body adjusts. For the few days each year when we get into the 90s, I strap a couple of reusable ice-packs from my ice chest to my back, neck, and seat. This method works exceedingly well for affordable cooling until the night temperatures bring everything back into comfortable territory.

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.

Honest question, if I have PostgreSQL containerized in docker such that it's trivially easy to spin up a new database, what then is the use-case for SQLite? I frequently hear people talk about it with such rosy tone, but I just don't see the reason to actually set it up when the alternatives today are so easy to use, what am I missing?

My personal hunch is that this will end up leading to a situation in which presenters do a cryptographic handshake that works to verify and prove authenticity. This isn't a new idea, and it has some very obvious drawbacks, but I don't see much of a way around the issue. The handshake could work great for something like official news releases, but for other instances that might come up in court, say, dash cam footage of an accident, it seems to me that the legal system is going to face some serious issues as these programs progress.

This is, in part, what I'm trying to point out, it's an obvious typo given the context, and something that you or I would be able to pick up on, yet it completely breaks (it spit out a bunch of weird confetti cats for me). Perhaps I'm being a little harsh, but if it requires word-perfect tuning and prompt engineering, it speaks to something about the 'stupidity' of these models. It's a neat trick, but to call it anything in the realm of artificial intelligence is a bit of a joke.

While neat, and no doubt impressive, it still utterly fails on prompts that should be completely reasonable to any sane human being/artist.

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.

The web, and much of programming really, feels so far behind the curve of what's possible as a programmer. Take a dive into shader design in something like unreal engine 5, it sounds exactly like what you're describing in Delphi, mind you, I say this as someone who has never programmed in that language. The ability to drag and drop functions, compose higher levels of abstractions, and really all of the fun programming stuff we do can be accomplished in these engines. I've found it very enlightening, and even somewhat frustrating, to go from drag/dropping some graph nodes that generate a playable world for fun, and then back into the world of javascript for work where I am slinging 100s of lines of text-based code just to get a form button to operate correctly.

I get that this is 'news' for the San Jose burbs considering it's size/proximity to venture capital, but I just can't help but chuckle at the size and scope of this project. Just yesterday I was looking at a development in Chicago[0] with plans to add over 18 times the number of residential units, and literally millions of feet of new real estate. If anything comes out of the last couple years, I hope it's the dismantling of startup culture being solely in an under developed/over-priced part of California.

[0] https://chicagoyimby.com/2021/01/landmark-development-reveal...

The thought of these questions, and engineering more generally, boiling down to intelligent dialog trees hit me like a ton of bricks a few months ago. I've been investing time into deeply thinking about these trees, and it has been one of those things that have made me feel like I've 'leveled up' in my career journey. It's very validating to read your comment, and it makes me feel like I'm on the right track. Aside from plenty of practice, do you have any good reference material or advice to share on improving this skill set?

GAMI is a firm that develops avgas[0]. Avgas is a shorthand for aviation gas, or fuel. G100UL is an unleaded avgas that acts as drop-in replacement for 100LL(100 Low Lead), used heavily in general aviation, think little Cessna. And yeah, the terms are all pretty standard for anyone who has flown before. Analogous to saying DFS instead of depth first search for anyone in computer science land. Hope it helps!

[0]https://gami.com/g100ul/news.php

Elevator.js (2015) 4 years ago

These types of links are why I'm still hopeful for the internet as a platform. What a hit of crazy weirdness out of some random persons brain, just excellent.

I can recall people saying similar things about grocery store checkouts. Lines were quicker if you went through the self-checkout, but people still stood around to have a person do the work and socialize. At some point in the last last few years that seems to have completely flipped, there are rarely people going through the human lines with the bulk doing self-checkout.

Assuming you don't need/care about maximizing salary, university research can be a pretty rewarding path. There are a lot of big institutions that need high quality software developers with 'real-world' experience to assist their teams.

Having been a bit burnt out on corporate life, I had decided to try this path out almost a year ago. My lab is in kidney research, and it has been a breath of fresh air to constantly be talking with various doctors and researchers across the US instead of simple businessmen. It has also be extremely heartwarming to hear from patients about the direct impact this research has had on their quality of life. Had someone recently speak to us, their story of struggle, and the love they had for this work legitimately brought a tear to my eye, extremely motivating stuff.

The pay is far from competitive (I have no degree, helps a LOT if you do though!) and as with any job, there are going to be day-to-day stressors. With that said, the plus includes sane working hours, lots of PTO, and typically many of these places offer top-of-the-line health care. I'm sure I'll head back to startup land eventually, the grass is always greener, but for the time being I have been able to get some excellent quality sleep, waking with excitement for what each day ahead holds.

I agree that health should be considered fully. As is the case with gas, don't put your body on the burners, the distances discussed in that paper are extremely close, less than 50mm, and upto 300mm.

From the paper linked[1]:

"the exposure of the non-pregnant models at the largest distance (300 mm from the cabinet) is always compliant with the basic restrictions for the general public even when including all body tissues for the current averaging."

And to consider the case of close distances...

"the exposure limits for the general public can be exceeded by more than a factor of 5 (distance < 50 mm; Fig. 5). When considering CNS tissues only, the basic restrictions for the general public can be reached for the child models (Thelonious and Roberta) at close distances from the cabinet edge when allowing for the overall uncertainty of this evaluation. The combined numerical and experimental uncertainty was assessed as 6.0 dB (k = 2; Supplementary Table V) or as 0.50–2.0 of the provided exposure with a confidence interval of 95%."

I read this as don't push your kids face onto the stove top, which is probably good advice no matter what cook surface you're using. It also reads to me as having the cooktop being further back as desirable, and not being directly inline with the edge of the counter.

As for pregnant mothers...

"The exposure of the mother and fetus models exceeds the basic restrictions for the general public by a factor of 6 for the mother and 3.5 for the fetus when standing at the cabinet edge, if considering all body tissues. Given the numerical and experimental uncertainty, the violation of the occupational limits can be regarded as likely for the devices with high B-fields. For CNS tissues of the fetus, the induced current density can reach the order of magnitude of the basic restrictions when taking into account the uncertainty. The combined numerical and experimental uncertainty for the exposure of the fetus was assessed as 6.4 dB (k = 2; Supplementary Table VI) or as 0.48–2.1 of the provided exposure with a confidence interval of 95%."

From this data, it seems to me that the best way to use these devices is to force yourself to 'reach' over the countertop rather than being directly up against the cook surface.

From the summary of the paper.

"The measured B-fields of 13 professional induction cooktops and the three domestic devices evaluated in Viellard et al. [2006] were evaluated experimentally. The field strengths are compliant with exposure limits for the general public when measured at 300 mm from the cooktops as specified by IEC 62233 [IEC, 2005]. The current densities reached the exposure limits according to the ICNIRP 1998 guidelines for the general public at 300 mm from the cooktop. The results were then scaled to the measured B-field levels of the professional and domestic cooktops. The findings can be summarized as follows: Most of the measured cooktops are compliant with the field limits for public exposure at a distance of 300 mm from the cooktop. Due to the high field gradients in the close environment of the cooking zone, most devices exceed these limits at closer distances. When considering the entire body of the exposed user for the current density averaging, the basic restrictions of the current density for the general public can be significantly exceeded and reach occupational levels. A generic worst-case cooktop which is compliant at the measurement distance specified by IEC 62233 can lead to current densities that exceed the basic restrictions for the general public by a factor of 16. The brain tissue of young children can be overexposed by a factor of 2 with respect to the basic restrictions for the general public if they come close to the cooktop. If exposure limits of the general public apply to the fetus of a mother in a working environment, the current density in the CNS tissue of the fetus can exceed the basic restrictions while they are still fulfilled for the mother."

There's pros/cons with any cooking devices, and it makes sense to consider the potential risks with any heat source. With that said, we are not talking about the induction burner spewing these fields across your entire kitchen, unlike say, with gas burners. From my point of view given your source's data, it is still a much healthier option to operate these devices properly than to subject the family preparing the meal in the kitchen with me to a poisonous gas.

Anecdotally speaking, my rental doesn't have a fume hood (yes in 2022!), and if the gas burners are operated my partner gets nauseous with headaches sitting in the other room. The benefits of induction are quite clear and until something better comes along, I don't see myself ever going backwards to inferior heating devices.

[1] https://pubmed.ncbi.nlm.nih.gov/22674188/