HNHacker News
TopNewBestAskShowJobs

rchiang

54 karma · joined February 22, 2019

submissionscomments
rchiang··on Mathematics for Computer Science (2018) [pdf]
I'd make the argument that TCP/IP Illustrated Volume 1 covers the details of TCP/IP in a very "packet and fields" oriented way. Volume 2 goes into a lot of the "data structures and implementation" way. That makes for a very good supplemental reference, but makes for a less than ideal introductory textbook on the subject of computer networking.

Kurose's book really does take the top-down approach from high level networking concepts through the application layer to the transport layer and downward. It provides just enough of the necessary details (here's a datagram with fields A and B) over a comprehensive list of all the details (here's every field, every field size, and a list of every field option).

rchiang··on Mathematics for Computer Science (2018) [pdf]
I agree that five books won't ever cover every discipline withing Computer Science. Just providing an introductory book, a university-level textbook, and an expert/graduate-level reference for each discipline turns into a long list.

See if this blog post helps out with sorting through the various CS subjects: https://tolerablecoder.blogspot.com/2022/03/a-short-list-of-...

rchiang··on Stewart Cheifet, creator of The Computer Chronicles, has died
There's almost too much volume these days. There's dedicated websites/apps/podcasts for Apple, Android, PC gaming, Xbox gaming, PS4 gaming, Switch gaming, etc. Product Hunt was a hot thing for a while and is still running. In terms of more general coverage, The Verge, Engadget, Lifehacker, Wired, and NYT Wirecutter are still good among many many others.

There was a good run of Computer Chronicles, TechTV, and G4 for a while there. These days, This Week in Tech still exists in podcast form. G4 had a short revival as G4TV a few years back. There's nothing nearly as popular these days, but there's still lots of good ones like Waveform, SomeGadgetGuy, and AwesomeCast.

rchiang··on Easy RISC-V
Henessey and Patterson "Computer Architecture: A Quantitative Approach" has 6 published editions (1990, 1996?, 2003, 2006, 2011, 2019) with the 7th due November 2025. Each edition would have a varying set of CPUs as examples for each chapter. For example, the various chapters in the 2nd edition has sections on the MIPS R4000 and the PowerPC 620, while the 3rd edition has sections on the Trimedia TM32, Intel P6, Intel IA-64, Alpha 21264, Sony PS2 Emotion Engine, Sun Wildfire, MIPS R4000, and MIPS R4300. From what I could figure out via web searches, the 6th edition has RISC-V in the appendix, but the 3rd through 5th editions has the MIPS R4000.

Patterson and Hennessy "Computer Organization and Design: The Hardware/Software Interface" has had 6 editions (1998, 2003, 2005, 2012, 2014, 2020) but various editions have had ARM, MIPS, and RISC-V specific editions.

rchiang··on U.S. government takes 10% stake in Intel
TSMC's estimated costs in 2020, were $12 billion for their first fab. In 2025, their updated estimates were $65 billion for the first three fabs and $165 billion for when they get to six such facilities. So, $8.9B is a lot of money, but isn't anywhere close to getting to the equivalent to what TSMC has in Taiwan.
rchiang··on 50 Years of Queries
Adding on some of the "Oral History" series from the Computer History Museum (videos don't seem to be on YouTube):

- CJ Date: https://www.computerhistory.org/collections/catalog/10265816...

- Don Chamberlin: https://www.computerhistory.org/collections/catalog/10270211...

rchiang··on Why did the Motorola 68000 processor family fall out of use in PCs?
I feel like this comment needs some extra emphasis, especially when it comes to third-party drivers, perhaps even more than application software.
rchiang··on Why did the Motorola 68000 processor family fall out of use in PCs?
The Windows 9x series (and earlier) were tightly coupled with x86 (and DOS).

The Windows NT family of operating systems has always had the "Hardware Abstraction Layer" (aka HAL) which helped with porting the operating system to other architectures.

rchiang··on Nvidia Started in a Denny’s. Now It’s Worth $1T
Well, two engineers and one mathematician IIRC.

I don't expect any single article to cover all the details of a company that just passed it's 30th year. And even then, they're missing bits of lore, like the CEO playing ping pong as a teenager (see https://engineering.stanford.edu/news/jen-hsun-huang-nvidia-...).

This WIRED article from 2002 gives an interesting snapshot of the same company and CEO:

  Meet Nvidia CEO Jen-Hsun Huang, the man who plans to make the CPU obsolete.
  https://www.wired.com/2002/07/nvidia/
  - Quote: "What we can do in the next five years is going to blow your mind. In 10 years, we should be bigger than Intel." (which took until July 2020)
Then you can see how things evolved by the 2009/2010 timeframe, plus where they thought they might be headed:

  Mercury News interview: Jen-Hsun Huang, co-founder of Nvidia
  https://www.mercurynews.com/2009/10/09/mercury-news-interview-jen-hsun-huang-co-founder-of-nvidia/

  I’m Prepared for Adversity. I Waited Tables.
  https://archive.is/2iUbf
rchiang··on Morris Tanenbaum, inventor of the silicon transistor, has died
Even prior to those guys, Shockley, Bardeen, and Brattain have the 1956 Nobel Prize in Physics for their work. Kilby received the same in 2000 (Noyce passed away in 1990).
rchiang··on Palo Alto Research Center (PARC) to join SRI International
Nice post there. There's definitely a lot of 20/20 hindsight that people apply to PARC's history with respect to computing.

It's clear that just the investments that Xerox did have would have been huge had they just held on to them. That's ignoring what they could have done had cashed out less conservatively and reinvested in ongoing technology concerns the same way that Intel Capital or Google Ventures has.

Beyond that, it would have been beyond epic for Xerox to have had all the right pieces to replace a huge chunk of the high tech ecosystem by itself. Each of the successes that "should have belonged to PARC" involves VCs, hundreds or thousands of employees, business pivots, decades of existence, and plain luck and timing.

Hank Chesborough's (formerly of Harvard Business School, at Berkeley Haas School of Business last I checked) lists 35 companies that spun out of Xerox in "The Governance and Performance of Xerox's Technology Spin-Off Companies". Just that level of brain drain/distraction was bad enough at times for PARC's ongoing work.

rchiang··on Palo Alto Research Center (PARC) to join SRI International
I think it's important to note that much (all?) of PARCs research has been oriented around the "office of the future". In the broadest sense of that vision, they had a huge hand in originating a lot of computing technologies.

And while SRI has had their impact in the computing industry, they also have other research labs that have very little to do with computing such as biomedical, education, and policy.

rchiang··on Palo Alto Research Center (PARC) to join SRI International
This article gives a bit of context about Siri's history with SRI International: https://hbr.org/2015/09/the-president-of-sri-ventures-on-bri...
rchiang··on Palo Alto Research Center (PARC) to join SRI International
It's a fine distinction that maybe computer historians know best. Doug Engelbart's "Mother of All Demos" showed off the first computer mouse. The computer mouse that shipped with the Xerox Star is credited as being the "first commercially available computer mouse".

Along similar lines, while the original Ethernet was invented at PARC, Ethernet gained more popularity in industry through Silicon Valley companies like 3Com (with founder Bob Metcalfe, recent ACM Turing Award winner and ex-PARC researcher) and SynOptics Communications (with founders Andrew Ludwick and Ronald Schmidt, both ex-PARC employees).

rchiang··on Palo Alto Research Center (PARC) to join SRI International
Xerox went through the process of making PARC a wholly-owned subsidiary in 2002 (which is around the time the parc.com domain was created to replace the parc.xerox.com subdomain). This was presumably as part of trying to sell of PARC, in part or as a whole.

Xerox's revenue has been slowly declining over that time (~$15B from 2002-2009, ~$20B 2010-2013, ~$10B 2014-2019, ~$7B 2020-2023). There's likely a few business-related reasons they are doing this donation now.

rchiang··on Palo Alto Research Center (PARC) to join SRI International
The Morningstar article had a few more details that I couldn't find anywhere else:

"As part of the donation, Xerox will enter into a preferred research agreement, called the Technology Exploration and Innovation Program, in which SRI will provide contracted research and development services to Xerox and its clients. Through the collaborative program, Xerox and SRI will identify topic areas relevant to Xerox’s core print, digital and IT Services business, with the final goal of creating proofs-of-concept and roadmaps to implementation. Xerox will also retain a branded Innovation Hub at PARC to host meetings, demonstrations and annual conferences for its clients."

It's unclear what the size of this revenue stream is compared to SRI's current revenues.

rchiang··on An Interview with Nvidia CEO Jensen Huang About AI’s iPhone Moment
To be fair, Apple released their iPhone after building iPods for 6 years. So, it's not like they had zero experience with handheld devices at the time.

Also, while Apple did create their first chip (at least of their current families) in 2007, they did acquire 150 or so engineers when they bought PA Semi in 2008. So, that gave them a leg up compared to building a chip team completely from scratch.

rchiang··on Is Google’s 20-year search dominance about to end?
Which they got through their acquisition of Gaikai (considered a competitor of OnLive).
rchiang··on Rex: The World's Smallest PDA [video]
Yes. That was one of the ways to plug it in to sync. I had one for a while and carried it around in my wallet.
rchiang··on US bans export of tech used in 3nm chip production on security grounds
According to ASML, they have 4700 suppliers (https://www.asml.com/en/company/sustainability/responsible-s...). How many of those are essential to the development of EUV equipment and would be affected by this ban is unclear (though I'd expect a reasonably large percentage).
rchiang··on US bans export of tech used in 3nm chip production on security grounds
GAAFET is the next step after FinFET to allow such small transistors to be feasible.
rchiang··on Sorting algorithms visualized using the Blender Python API
Not earlier than this, but Marc Brown's ACM Distinguished Dissertation from 1987 on Algorithm Animation: https://mitpress.mit.edu/books/algorithm-animation

I know I saw a video from around that time, but I couldn't find one online.

rchiang··on How Airbnb Built “Wall” to prevent data bugs
Maybe some other numbers are more relevant? This blog post from April 2022 mentions 1000+ services:

  https://medium.com/airbnb-engineering/continuous-delivery-at-airbnb-6ac042bc7876
And this video from May 2017 mentions 1B daily events (for whatever they define as an event):

  https://youtu.be/70luTZU-D3E?t=102
It wouldn't surprise me if they're storing calls between microservices as "events" and they're likely logging a lot of both user data and internal services data, but that's purely a guess.
rchiang··on The computers used to do 3D animation for Final Fantasy VII in 1996
To be fair, Nvidia hired a lot of people who at some point worked at SGI and 3dfx, so there was already a lot of HPC/server/supercomputing talent working there. There are articles (e.g. https://www.extremetech.com/gaming/239078-ten-years-ago-toda...) showing the transition from having fixed vertex/pixel shaders in the GeForce 7000 GTX series to the generalized stream processors starting with the GeForce 8000 GTX series going forward.

And it's easy to see that Huang and Nvidia put their money where their mouth was. The first GTC was 2009. That's 3 years before the famous AlexNet paper that's often credited with kicking off the current AI on GPUs trend.

rchiang··on FAANG promo committees are killing Kubernetes: A Short Thread
Google makes $5.5 billion of profit per month. I think they can afford to pay some of their higher performers more.
rchiang··on Uber Engineering Tricks of the Trade: Tuning JVM Memory for Large-Scale Services
This presentation from 2019 gives an idea about some of the GC avg/max runtimes using the NameNode: https://www.slideshare.net/xkrogen/hadoop-meetup-jan-2019-dy...
rchiang··on Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?
Long answer incoming:

I've always maintained that you really learn how to write code for a particular problem when you've done it three times. The first is usually to get working code, the second is to redesign it to improve some aspect (adding features, improving performance, code maintainability, etc.), and the third is when you really get it "right". Using this approach, it takes time and deliberate practice (borrowing the term from Geoff Colvin's "Talent is Overrated").

From my point of view, the core question that you're asking is "How do I get deliberate practice with coding?" There is no easy answer for this, but here are some ways to break things down so that you can come up with a plan for yourself.

1) "Clean Code"

This was brought up in another comment, but the book does an excellent job of covering many of the techniques for keeping a code base in good shape over time.

What can be trickier is 1) there are a lot of techniques, and 2) you may have a hard time taking the techniques from the book and applying them to your situation. While the examples in the book are universal, I think it's easy to get lost applying the technique to a more complex problem.

2) Applying One Technique to a Known Situation

Either start with a smaller piece of code or a medium piece of code that you know really well. Ideally, use some advanced piece of source code control that allows multiple branches. Then, start doing the practices from "Clean Code" one a time with a goal in mind, such as eliminated duplicated code, limiting scope, making functions more configurable via parameters, etc.

The real trick? Just do one of these improvement areas at a time. Do it a few times in different parts of the code. Eventually, the patterns start to emerge as to why it improves and where else it can be applied.

3) Recognizing Patterns

You may or may not have read articles/books about API design, coding style guidelines, etc. While many of those rules may seem arbitrary, as you get more practice, you'll start to see why such guidelines exist.

There will be similar patterns for how your code refactoring can improve modularity, debuggability, development time, testing, error handling, etc. Each code change may not improve all those things simultaneously, but you'll eventually start making improvements that cover more than one area of improvement.

4) Improving Your Learning Acceleration

There's a point you'll reach where you can keep refactoring, but you may not learn much more. At that point, try adding a feature. It can be a minor feature or a major one, but you'll start to see where the new feature forces your code to be refactored again. You can write a bunch of code or you can go through the "what do I need to change in the existing code base to add feature X?" as a mental exercise. In either case, you'll start to see what prior decisions may not have worked since they only considered one aspect of code improvement instead of three or four.

5) Putting All of the Above into Context

Another aspect of being a "Senior" engineer means that you recognize the problems really being solved by your software and what value it has. As you get more senior, you can answer all sorts of questions such as:

- How does the customer use this software? What pieces do they pay for? What features save them the most time/money/suffering? - What should the next features be? - What parts can be improved? Speed? Usability? Data Input? Connectivity/compatibility with other software? - What sort of documentation does the user need? - Is this software getting dated? What parts need replacing? Does there need to be a new solution (rewrite vs. continued refactoring)?

Not all of the above questions are applicable (e.g. tools used inside a company vs. a tool customers buy and use on their own computers), but being able to put the software usage into context (sort of the PM area you were talking about) and breaking down the technical context (the "senior" engineer role) are both useful skills.

You may need to go back and forth a bit between coding and reading books like "Clean Code" before the lessons really get internalized. Using the above guidelines and knowing what sort of learning process works best for yourself, hopefully you can start taking steps to improving in ways that help your career.