Hacker Newsnew | past | comments | ask | show | jobs | submit | thisisit's favoriteslogin

I found Hacker Recommended Books [0a] on HN [0b], and began reading through the books on it, tried many books, read around 20 of them. The experience has been great, and learned many new things. Some books have expanded my mind.

If you are into books, I highly recommend searching HN with the simple keyword "books", and filter using "Ask HN" tags [1], or simply by "books". This is how I choose almost all of my English books now (I am trilingual and can read more languages)- even non-technical books. I have been doing this for more than two years, and I really like HN for books recommendations.

Many years' worth of high quality reads can be found on HN threads related to books. They are goldmines.

EDIT: There is also Hacker News Books [2]. Check out their Top Books of All Time section [3].

[0a]: https://hacker-recommended-books.vercel.app/category/0/all-t...

[0b]: https://news.ycombinator.com/item?id=28595967

[1]: https://hn.algolia.com/?q=Ask+HN+books

[2]:https://hackernewsbooks.com

[3]: https://hackernewsbooks.com/top-books-on-hacker-news


Adult Children of Emotionally Immature Parents

I'm a person that struggles with boundary-setting and have spent numerous years in relationships that have left me as less-than I was before. Imagine people-pleasing to an absolute fault, and being more of a chameleon that adapts to avoid conflicts. This has led to problems of identity, and deriving my sense of worth through others which isn't healthy.

Fortunately, I do not have the same problems professionally and part of my people-pleasing skills have been put to good use there.

However, history continued and continues to repeat itself to this day. I'm more than half-way into this book and am not only seeing patterns from my childhood, my relationships with my parents, and my early relationships (platonic & romantic)

It's been eye-opening, and I consider it my first step in breaking this trend.


I think the thing that scares me a lot more is dreamstudio. One can take a few pictures from social media of someone and turn them into a porn artist. It’s not perfect but getting a lot better each iteration.

Wasn’t there a news article that a teacher lost a job over it.


I work in tech diligence so I look at companies in detail. I have seen a couple where good machine learning is going to make a massive difference (whether it will keep them ahead of everyone is a separate question). I think it really boils down to:

"Is this a problem where an answer that is mostly right and sometimes wrong is still a great value proposition?"

This is what people don't get. If sometimes the answer is (catastrophically) wrong, and the cost of this is high, there's no market fit. So I think a lot of these early LLM related startups are going to be trainwrecks because they haven't figured this out. If the cost of an error is very high in your business, and human checking is what you are trying to avoid, these are not nearly as helpful.

I looked at one company in this scenario and they were dying. Couldn't get big customers to commit because the product was just not worth it if it couldn't be reliably right on something that a human was never going to get wrong (can't say what it was, NDAs and all that.) I also looked at one where they were doing very well because an answer that was usually close would save workers tons of time, and the nature of the biz was that eliminating the human verification step would make no sense anyway. Let's just say it was in a very onerous search problem, and it was trivial for the searcher to say "wrong wrong wrong, RIGHT, phew that saved me hours!". And that saving was going to add up to very significant cash.

So killer apps are going to be out there. But I agree that there is massive overhype and it's not all of them! (or even many!)


I've been meaning to write up a blog post. I've had a lot of success with:

- Using LLMs to summarize, create structure, etc., rather than relying on them to generate responses

- Having my apps rely on receiving LLM output in an exact format (e.g. an OpenAI function call) and raising an error otherwise

- Never showing generated outputs directly to a user or saving them directly to the database (avoids a lot of potential for unexpected behavior)

This kind of stuff is less flashy than chatbots for everything, but IMO has a lot more potential to actually impact how software works at scale in the next ~year or two.


> the code can almost write itself

My 2c: I've been an eng for around 15 yrs. I semi-recently had a brain injury so haven't been able to dedicate anywhere near as much mental cognition to programming recently. That's why I've been unable to maintain full-time work.

I started using chatgpt around 3 months ago. Initially skeptical, I started giving it fun and weird logical/semantic puzzles to satisfyingly "prove" my intuition that it was insufficient to solve any true problems (and that we humans are still needed!). However, I soon became humbled to its capabilities. There are many many things it cannot do, but I've been amazed at the things it can do if given nuanced and detailed enough prompts. I've realised that, if I prompt it well enough, and use my existing knowledge from those accrued 15yrs, I can get awesome results. I'm working on a small project right now and it's written about ~70% of the code. I've had to make various corrections along the way, but I've found that I can focus on content and larger 'macro' domain logic than annoying (tho intriguing) procedural coding.

It's been so incredibly empowering and freeing to be able to dedicate more brain to _what_ I want to build instead of _how_ I want to build it. My normal build process is now something like this:

- state problem and what you desire, with good specificity

- [optional] give it your current working code, specifying frameworks, rough file structure

- confirm it understands and clarify/correct it if necessary

- [important] ask it to ask _you_ questions for clarification

- ask it for an overview of how it would solve the problem

- (for big tasks, expect a macro rundown)

- (for small tasks, expect or ask for the actual code)

- [important] make specific requests about lang/module/algorithms

- [important] ask it to write test suites to prove its code works and paste in any errors or assertion failures you encounter. It'll surprise you with its advice.

It doesn't replace my need to code, but OMG it makes it so much less burdensome and I'm learning a tonne as well : )


There are a few increasingly harder things when it comes to prompt customization:

1. Prompts ask LLM to generate input for the next step

2. Prompts ask LLM to generate instructions for the next step

3. Prompts ask LLM to generate the next step

Doing #3 across multiple steps is the promise of Langchain, AutoGPT et al. Pretty much impossible to do with useful quality. Attempting to do #3 very often either ends up completing the chain too early, or just spinning in a loop. Not the kind of thing you can optimize iteratively to good enough quality at production scale. "Retry" as a user-facing operation is just stupid IMO. Either it works well, or we don't offer it as a feature.

So we stopped doing 3 completely. The features now have a narrow usecase and a fully-defined DAG shape upfront. We feed some context on what all the steps are to every step, so it can understand the overall purpose.

#2, we tune these prompts internally within the team. It's very sensitive to specific words. Even things like newlines affects quality too much.

#1 - we've found it's doable for non-tech folks. In some of the features, we expose this to the user somewhat as additional context and mix that in with the pre-built instructions.

So #2 is where it's both hard to get right and still solvable. Every prompt change has to be tested with a huge number of full-chain invocations on real input data before it can be accepted and stabilized. The evaluation of quality is all human, manual work. We tried some other semi-automated approaches, but just not feasible.

All of this is why there is no way Langchain or anything like it is currently useful to built actually valuable user-facing features at production scale.


> I mean which task is so complex one can't just automate it with simple scripting and non critical if it goes wrong to the point of letting an AI LLM do it?

Many of the things that get to deal with unstructured human inputs. Translation, summarization, data extraction, etc. The choice isn't between "reliable code" and "unreliable LLM", but rather "unreliable LLM" vs. nothing at all.

But I think more important aspect is that LLMs are getting quite good at coding - meaning they can be used to automate all the tasks that you could automate with scripting, but it wouldn't be simple, or you don't know the relevant tooling well enough, or you just can't be arsed to do it yourself.

For example, I've recently been using GPT-4 to automate little things in my Emacs. GPT-4 actually sucks at writing Emacs Lisp, but even having to correct it myself is much less effort than writing those bits from scratch, as the LLM saves me the step of figuring out how to do it. This is enough to make a difference between automating and not automating those little things.


> Hoping for one of these with an open API that anyone could integrate whatever they want with, I am not holding my breath here.

OpenAI is already on it. The latest gen of GPT-3 and -4 are finetuned to respond to "do this thing" commands with JSON structured to:

- provide the name of a given function call

- provide arguments to that function call

it's "early stage", which in this case probably means "good enough to be useful within a month or two", given the rate at which these things have been developing.

Anecdotally, I've been playing with giving the models instructions like:

"When asked to perform a task that you need a tool to accomplish, you will call the tool according to its documentation by this format:

TOOL_NAME(*args)

Below you will find the documentation for your tools."

...and I've gotten it working pretty damn well (not even with the JSON-finetuned models, mind you). All you really need is python-style docstrings and a minimal parser and you're off to the races. I recommend anyone interested play with it a bit.


Wow this is amazing. This is more or less what I was trying to build https://hnresumetojobs.com to look like, I am reconsidering whether or not to continue now.

I tried using the OpenAI functions API to do structured text extraction, but found that it would hallunicate a lot of things. Do you guys have that problem? How did you guys go about solving that?


This is cool. I'm curious about this part:

  We leverage this to map all the unstructured job postings into the same unified structure. The new GPT functions feature and the extended context windows are really helpful for this.
Does this mean that, rather than using the gpt-3.5-turbo chat API, and using a system prompt that describes the output format you want (JSON?), you instead describe your output format in the same way you would if you were going to call a function?

>>LLMs are at best, bad teachers.

I could not disagree more.

ChatGPT is patient. That's a rare quality in humans and teachers.

ChatGPT will willingly explore. That's also a rare quality in teachers.

ChatGPT is detailed and structured, and has instant access to enormous amount of data and background.

I will grant you that there are domains of knowledge and questions where it's great, and where it'll lie to you through your teeth. But as a patient, detailed, willing, knowledgeable tutor in basic/well-covered areas, it's virtually unparalleled. I'm a hungry learner and have had large number of teachers, tutors and mentors through several continents, countries, societies and educational paradigms; and only the very very top are as good - and I've actually been the lucky one. My wife and my sister, for example, based on their accounts, simply never had a teacher/tutor as good as ChatGPT :-<


I'd add these use cases:

5. automated processing of unstructured paperwork and ingestion into ERP systems. Basically, upload any kind of bill and get all of the information into the system, not just "find out the total amount". That can save so much in accounting it's not even funny any more.

6. related to this, something that sorts incoming emails. Classify stuff into "look into it now" vs "look into it later" vs "yet another bullshit marketing email".


If you haven't read or listened to this book yet, I highly recommend it: Daily Rituals: How Artists Work[1]

It's a collection of daily routines of many famous and prolific artists. The surprising thing about so many of the artists is that they only work 2 or 3 hours per day, then spend the rest of the day walking around, socializing, etc. But they consistently show up and put in the work and it adds up to some amazing things over time.

This reminds me of another great book about beating procrastination: The Now Habit: A Strategic Program for Overcoming Procrastination and Enjoying Guilt-Free Play[2]

In that book, the author talks about his extensive work helping graduate students complete their dissertations. I can't cover all the great points here, but when working with these students he has them create an "unschedule" where they have to schedule guilt-free play activities as the top priority. Then he actually limits the amount of work they are allowed to do on their dissertation to only a couple of hours per day. The effect is quite amazing at turning students around from dreading and avoiding their dissertation to really trying to maximize the limited time they have to work on it. And having guilt-free play lets them really disconnect from the work and have true recovery so that they have the motivation and energy to hit the project again and again every day. Seems counter-intuitive at first, but as I've applied this to different projects, it's amazing how much more I'm able to accomplish.

[1] https://www.goodreads.com/book/show/15799151-daily-rituals

[2] https://www.goodreads.com/book/show/95708.The_Now_Habit


Having done hundreds of small to mid sized projects I take comfort in the fact estimating is a very distinct task that even the best of developers learn last.

I've got three tricks in my pocket that at least help me with this:

The first is that I go by the formula mentioned in "The Mythical Man-Month" — which is that the effort in larger projects is distributed as follows:

1/3 planning 1/6 coding 1/4 component test and early system test 1/4 system test, all components in hand

Developers tend to mainly estimate their coding time, which leads exactly to the effects mentioned. It also explains all the annoying situations with all the holdups once the project is "almost done", this is simply a systems test and will add another 25%.

The other is that I simply add 5-10% on top for each person involved into the project (dev, stakeholder, anything) for communication overhead. It usually holds true.

The third trick is meticuluous focus on lean delivery, which involves scoping down, early testing on as much as possible, hidden and pre-deadlines and setting tractable sub-milestones.

Unfortunately, all of these techniques don't accelerate the project, they just help you be more realistic. If you find something that accelerates complex projects, let me know ;-)


I have a consumer app with a subscription model. I'm a single developer with no employees. I work between 10-30 hours per week. Last year, my EBIT was close to 300,000€. This year, it's going to be around 370,000€ (and since I live in Germany, my income is in the top 0,5% or so). In the first year, my EBIT was merely 30,000€. It's been going up steadily since then and my product has been around quite a while.

Please don't ask what my business is. I rather share true numbers, but don't link to my product. I see no upside in being super transparent about the financials in a non-anonymous way (although I enjoy transparency from others ;)).

What I think makes my product successful (and I keep this short, because luck plays an important role. Most startup stories suffer from survivorship and hindsight bias):

- It serves a niche and does so very well, better than all others. I have clearly defined my niche, although it took me years to exactly pinpoint it. There's a tendency to want to grab a "bigger audience". Since I make more money than I ever imagined, there is no need to grow bigger or reach a wider audience. This would also make the product less focused on the specific niche.

- Start working on something, release a prototype after 2-6 weeks. Don't invest months or years in something without users.

- For me, marketing = SEO. I never really got into social media. But I have to admit that nowadays, my SEO rankings dropped a bit and people talk about my product in Facebook groups.

- If there are two books I'd recommend: "Rework" by Basecamp. It helps you to focus on a minimal set of features and think about what's truly important. Couple this with "This is Marketing" from Seth Godin, where he explains how traditional marketing is dead and how it's important to find a niche. Don't read more books, interviews or whatever. Get into a "starter mindset" by reading and then do.

- The subscription model helps you to stay afloat. People will pay for a product they use every day (and thus, derive value from every day). If your product is not used every day, but only once per month or so, expect way lower revenue.


One of my favorite ways to sum this up is thinking tactically (who and why) vs operationally (what and how).

The third layer on top of all of this is strategic thinking (in theory, what your executive team is providing... even higher level and longer term abstract goals).

Your executive team thinks strategically about what the goal is, your engineering management thinks tactically about the people and tasks needed to complete the goal, your engineer thinks operationally about how to build or design the work in each task.


A former Tech leader where I work used to say "Never say you can't do something. Just provide options, cost and consequences. The business/management/client will make the decision for you."

Bit of an aside, but; I recently was talking to a engineering lead at Rolls Royce and asked why it seems like Silicon Valley is coming in and eating car manufacturers lunch on autopilot/auto-assist/driver-assist and he said they aren't really, none of them are very far along compared to the car companies. It's to do with the car companies engineering with an eye to redundant systems that all play harmoniously with each other rather than just tacking LIDAR onto a car and using TensorFlow to do image recognition.

He pointed me to GeorgeHotz YouTube channel who developed in the open for CommaAI (now shut down), this company got 8m in funding (small cheese to a VC, but still showed there was interest in the project) and he was just googling answers and training his model on one single video he downloaded of the internet.

The 'play loose and fast' with the rules approach won't fly with self-driving and the car companies are looking to build something that works in the field with as close to imperceptible failures as can be realistically allowed.

The incumbents are building it right, but slow. And I would much prefer that approach if it leads to increased safety


>I thought that the value that I create will talk more than the nonsense of some people.

Nope. Silence is always less noticeable than noise.

Evil prevails when good men do nothing. Also, nonsense fluff prevails when good work isn't spoken of.

You have a professional duty to make sure nonsense is crowded out by important information. No one is going to do that for you.

Follow the rule of three...tell people what you are going to do and why it is important. Tell people what you are doing. Tell people what you've done. And not just anybody; decision makers.

It is no one else's job to tell people who influence your life of your good works.

No one has time to dig through everything you might have done to hold up the shining examples of your work. And now you have someone above you that might actually be interested in seeing it kept buried so it is even more critical that you do that interpersonal information transfer yourself.

You are a business, and like a business there is no worth in a product that the people who are in a position to buy don't know about. You're going to have to market and sell your value to the people that are buying. All of the time. Make it a habit. Your co-workers are competitors...don't expect them to sell your product for you. (though, keep in mind, part of your value-add is cooperating in your value-add chain so don't take this analogy too far).

Honestly, this is stuff that took me way too long to learn. They should teach it in engineering school. Hell, they should teach it in secondary school, for that matter, since there is really no one who is not running a business even if it is a business of one.


I never heard anything about incompetence in your description.

Technical debt can build up for myriad reasons not related much to competence.

What I would suggest is not to approach this situation as how you can wall off or otherwise attack this person but, instead as a life lesson on the importance of interpersonal relationships and politics.

Politics are a fact of life. Humans are social creatures. All things being equal, and some ways even when not equal, those that are proficient in interpersonal relations will come out ahead. Grok that fact. There is no escape from it.

Good. Now that unpleasantness is out of the way. On to how to cope. Scratch that, /thrive/, in an environment of people doing people things when you are a technical person.

First, information. That is the lifeblood of many systems and politics is no different. Simply make sure important information is conveyed to the right people at the right time.

You use the example that this fellow was able to take credit for your work. Had you passed the information of what you were doing and why it was important to the right people, he would have simply looked foolish to try to take credit.

It can be uncomfortable, to toot your own horn, but it is necessary. Additionally, it can be important to the organization. Assuming you are creating value, it is important that decision-makers know that so they can make the correct decisions. Don't feel bad. Toot away.

Building relationships is critically important in almost every human endeavor. Get good at it. It is a skill like any other.

The target of your annoyance became a manager because he built up those skills and made it known.

Build your skills and make it known. It is just that simple.


One of the counterintuitive things that I've learned is that procrastination is often a side-effect of perfectionism -- but in cases where the "perfect" path isn't obvious. It's better to do nothing at all until the perfect path is understood.

Defeating this is a real challenge and requires serious conscious effort. People who have reputation as "doers" often gain it by finding the "good enough" target and driving towards it. Many "do nothings" are really people who have an overdeveloped desire to "do it right" and can't overcome it.

It's absolutely a matter of emotional control.


The system described here is in many ways similar to Incremental Reading [1], which also uses an algorithm to schedule when to read the URLs provided. (the Anki addon is fairly primitive though, would rather use a browser plugin that remembers how much I read from each webpage instead)

Also worth paying attention when reviewing flashcards, as described in [2]:

  And when I rush through my flashcard reviews, I’m not thinking. I’m focusing on the wrong question: “Do I remember this perfectly?”
  Instead, whether I happen to have perfect recall or not, I should focus on: “This is my time to think about this again.”
  Major paradigm shift.
[1] https://ankiweb.net/shared/info/1081195335 [2] https://yourawesomememory.com/reviewing-as-thinking/

> Why did they accept such clauses?

They're super standard and for the most part make sense.

Liquidation preferences say if your firm is worth $90 million, and I invest $10 million, I get my $10 million back before you (i.e. the common stock holder) get anything. If the firm sells for $200 million, I get $20 million and doubled my investment. If the firm sells for $20 million, I get $10 million back and the common splits the remaining $10 million. If the firm sells for $9 million, I get it all. This makes sense because management (a) owns lots of common stock and (b) manages the company. As a risk-sharing measure, it makes sense for the people closest to the operations (and extracting a cash salary) to bear more downside risk.

Drag-along rights are the corporate equivalent of collective action clauses [1]. They exist to prevent a person who holds two percent of the company from preventing shareholders who own 60% from selling. (Approving mergers requires supermajorities in most jurisdictions.)

[1] https://en.wikipedia.org/wiki/Collective_action_clause

Disclaimer: I am not a lawyer. This is not legal advice. Consult with a lawyer before negotiating fundraising terms.


> You're describing participating preferred

I'm describing non-participating preferred, which as you point out is far more common.

Here's how it would go with participating preferred. As before, I invest $10 million at a $90 million pre-money valuation. If the firm sells for $200 million, first I get back my $10 million. Then I convert to common and get 10% of the remaining $190 million, or $19 million. Before I got $20 million (10% of $200 million). Now I get $29 million. (In the down round scenario, the outcome is the same.) Participating preferred is--nowadays--increasingly confined to distressed finance.

TL; DR Participating preferred gets to have its cake and eat it too. Non-participating preferred must choose between (a) its preference or (b) converting to common.


* Five co-founders are too many.

* If you are working on someone else's crappy idea, think about working on your own crappy idea.

* Call people you might need later when you don't need them. Or they tend to disappear when you do need them.

* Learn about the stock market and invest right away. You'll make money, lose money, then understand money.

* Build as many projects as time allows. It's nice to have the option to pick and choose.

* If you don't do the thing you want to do today, 5 years from now you'll remember and wonder how different your life would have been if you did.

* Don't ask people what they think about your idea. They'll either be supportive or mean to you. None of these are about your idea.

* Have a conversation with someone who doesn't speak your language. Make the effort to understand them. Mr Tereso, came out of nowhere and taught me life lessons that changed my life. He spoke no English, and i spoke Duolingo level Japanese.

* I'll end with this. If you are bored, create something. Make a clay pot, a drawing on paper, a JavaScript file, a wooden structure, a shoe rack, a sand castle, a matchstick home, a story. Make something you can look at the end result and you'll never get bored again...


Ex-professional gambler checking in.

It's no secret that it's possible to figure out which horse is going to win a race with reasonable statistical confidence.

The trick - and always has been - is making sure you can make a profit from it.

If a horse has a 30% chance of winning a race, and you're being offered odds as if it only has a 10% chance (i.e. 9/1), you have identified "value" or what Kelly Criterion would describe as "edge". You can mathematically in the long term make a profit, and Kelly can even tell you what %age of your bank to wager to optimise your expected returns: https://en.wikipedia.org/wiki/Kelly_criterion

Identifying the "true" odds of an outcome and then identifying what odds you're prepared to take (adding an over-round), is a key piece to what bookmakers do when creating what they call "the tissue" - the opening odds they offer that is then adjusted to manage liabilities in line with incoming weight of money (WoM) from bettors.

Kelly was a colleague of Claude Shannon. His papers have stood up to the rigour of mathematical analysis and also make intuitive sense to those who spend enough time thinking about it.

It has successfully been applied in casinos (Blackjack system pioneer Edward Thorpe is/was a fan), bookmakers, hedge funds (Thorpe again, but many other funds apply Kelly too), and everything in between.

But here's the rub: you won't get to keep your edge for very long. Bookmakers, betting exchanges and parimutuel systems all adapt to deal with long-term winners. Your window of opportunity is limited. Already bookmakers have good systems for identifying true odds for English Premier League games and make a tidy sum on over-rounds (profit margins) as thin as 3% because they can eliminate value.

That said, as any fan of Sabremetrics will tell you, statistical analysis of a sport you love can be very rewarding and I would not put anybody off this if they already love the horses (as I still do).

Just tread carefully, and to make a long-term killing you're going to have to treat your setup like a hedge fund and always be moving around finding new edges.

I'm @p7r on Twitter if anybody wants to talk about this - I could talk for hours and hours and hours... :-)


The post talks about running "video" on a remote server for the RL training, but not how to take that image and visualize it locally (which would be helpful for debugging failing models).

Let's say I wanted to run a Twitch stream of RL training on a remote server (and stream directly from the server to Twitch). What is the intended way to render the video in real time remotely?


I once watched an obscure online course by some Canadian lawyer with a similar method for writing books that way. Wasn't by any chance your inspiration?

No matter what kind of investment, you have to have a system with clear entry and especially an exit strategy, all part of your solid risk/money management.

In any event of a market down turn I'll be out long before the bottom and will be probably in some sort of alternative investment which will rise, because the money will seek to go into something else, maybe gold for example.

I strongly recommend to look into systematic stock trading systems like trend following for example and to have a plan in place when the stock market turns down from the Friday all time high... Also i makes the greatest life style business with no customers, no employees and no investors and will run on autopilot as long as the stock market exists...


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: