For the best experience on desktop, install the Chrome extension to track your reading on news.ycombinator.com
Hacker Newsnew | past | comments | ask | show | jobs | submit | history | crshults's favoritesregister

Apologies if this is not quite on topic, but this definition of shame really spoke to me:

“When a person feels that he or she is becoming his or her undesired or feared self.”

I feel like a lot of my motivation to better myself and help improve my environment comes from that feeling. It's as if i have a very clear picture of who/what i dont want to become, but not so clear on what the "ideal me" would be.

Is this something that motivates HN as well or do you try to realize an ideal(?) version of you through your thoughts/actions


The guy is a bad ass. If he wanted to run for President, he would win. I am really not exaggerating - I had a chance to meet him a few years back, and at that time he was the most impressive person I had talked to in person for an extended amount of time (not based on credentials or achievement, but simply based on clarity of thought and new ways of thinking). I also know that PG rates him incredibly highly.

To give you a taste, this is him 3 years ago: https://www.youtube.com/watch?v=hjUs7o-TnjY. I remember watching that video the first time and being particularly struck by his insight on how entrepreneurial sales is different from regular sales [1], which I have been able to apply since then on a regular basis.

[1] https://youtu.be/hjUs7o-TnjY?t=2499


According to MSN [1], the DEA decided last week to give him his money back.

They kept the money for 200 days, in violation of the Federal statute requiring the DEA to file a case within 90 days. It's unclear what, if any, repercussions there will be for the DEA for violating the law. Astoundingly, the Nevada Highway Patrol did not violate the law. That only means, of course, it's a terrible law and needs to be eliminated. Hopefully there will be some consequences for police that abuse this bad law, but that will have to come from local voters.

Note that $87k in 100's is a stack about 4" thick. It sickens me to hear people blaming the victim for the non-crime of holding his own cash, with bank receipts, and for the non-crime of simply telling the officer the truth and being totally cooperative. The lesson here is clear: do not cooperate with the police. They are not your friend, they are not trustworthy, and they will hurt you, badly, and suffer no consequences.

1 - https://www.msn.com/en-us/news/crime/marine-veteran-suing-nh...


What is trying to be expressed by "highest form of wealth" is usually about agency.

The problem with agency, unlike what 'power' connotes you to believe; you can't just have and store it for later. Like others rightly point out in this thread, there are many avenues in life you want to be agentic but cannot solve with anything you possess, but only through becoming a required thing through transformation; examples are health, skillfulness, being understood in a relationship, an equanimous existence etc. Even then, you're to an extent up to the whims of misfortune and fortune, or if you're not allergic to that word; to fate. There is at least one thing you can't be agentic about with any wealth, and that is your fatality; which connects to the original meaning of fate.

But that's not even the only problem with agency; most of the time you don't even know when you have it and also when you don't have it. This is the bread and butter of psychotherapy; you either misattribute blame where it doesn't belong or fail to hold people/yourself accountable when you should; or you miss what and how you could solve a problem but instead invest your energy and emotions in an avenue that just won't work.

Which means agency, capability of doing things that get you towards your real goals, whether you've realized them or not, is deeply tied to wisdom; knowing in which manner you're deceiving yourself be it through buying things instead of being things, or getting out of being confused about whose agency exactly lies where and where is the way out of an agentic entrapment.

Which ultimately means, there is one and one only form of wealth, that thing you constantly need to aspire to build, and that is wisdom.


Well react itself is just the virtual diff algo really.

How to change this page to this other page as fast as possible, if you don’t know or don’t care to know that other page.

That second qualifier is really important. As long as you have 2-10 screens and know the transitions by heart, nothing stopping you from hand rolling js. But once you start adding states things get tricky really fast, as transitions grow exponentially.

I’ve built some very complicated apps with vanilla js back in the day, and we had ways of dealing with things like that. We called it “reloading the page” where you start from 0 with your state. Kinda like restarting windows to fix it, rather than figuring out whats wrong.

And you could get quite far that way. 37signal’s basecamp was like that - an html app with vanilla js sprinkled throughout. Worked great.

But there is a limit in complexity. JS and html are great for building websites, but if you want to build an actual application, you need to be really clever and accept a lot of limitations. React just lifts the ceiling of what you can do, without being all to complicated.

And you can use the technics of react without react itself too, once you understand what it is all about - https://github.com/ivank/vanilla-teuxdeux


One thing that I hardly see implemented is grouping of numbers and strings in 4s or 3s. Like the credit card companies do on their credit cards.

For example, if you need to show me on a website my CBU, international account number which is 24 numbers long, please, don't show them like this:

345234234665232423247322

Show it instead like this:

3452 3423 4665 2324 2324 7322

It is much much easier to read.

90~95% of the time were numbers (or even characters!) are listed, nobody splits them.

This I learned in Isaac Asimov's book "Asimov on Numbers" IIRC. Great book by the way.


Here's what I would tell my kids: "Odds are, you ARE behind. In any given rank ordering, 50% are below average. 90% are NOT in the top 10%

If you're lucky and work hard, you can be in the top 10%, 5% or even 1% of a few areas. But even then, you can beat yourself up about not being the best--because even if you sometimes are the best at something, sometimes you aren't. You can always make yourself miserable, if you choose to.

So what do you do? You have 3 choices:

1. sit there and complain about it

2. Deny the reality of your "behindness", which makes for weak men and women (and I didn't raise wimps)

3. Or, you can realize that there's a set of skills related to managing your internal state

The best way to do this is to focus on process-oriented goals, rather than results oriented goals. In other words, take pride in your work not in the output. You can lose every game, yet feel okay, if you set your goals to be play a bit better than last time--and do it.

Once you get there, you can admit others are better than you and be thankful for the opportunity to learn from them--since you're no longer competing.

This is what is meant by "losers focus on the winners, and winners focus on themselves".

It's simple, but not easy. It takes work to achieve this, just like it takes work to achieve any useful skill. And just like any other skill, you'll get this right sometimes and screw it up at others. Just try to do it better today than you did yesterday, yes, like it's any other skill.

Good luck, I'll always be rooting for you.


So, I don't have time to read the entire paper, but I thought it would be interesting to share my experience from the other side. I lead the engineering for a company that does the "data work", we gather terabytes of data, mostly photography and lidar, every day.

So far it's been a crappy industry to be in, it seems the only way to make money is to provide the entire value chain, and this is the business model we're pivoting to.

Just a bunch of photography and lidar scans isn't worth much to anyone, and it's very costly to establish a quality data stream. We had enormous capex on sensor gear, training personnel, running the operations. All this to save a couple bucks on sending an inspector physically to the site.

If you do the entire value chain, you gather the data, you process it into information, and then you turn that information into actionable reports. So that means that besides running our operations, we're also doing the modeling work, and we're providing the industry specific expertise for the actual inspection. So our customers pay for knowing what is broken, where it's broken, and what the impact of that defect is.

In the end, I believe we'll be very successful, but it will be because our investors were willing to take us all the way, where many other companies have simply given up on the concept.


Hmm. http://www.paulgraham.com/say.html seems relevant here:

When you find something you can't say, what do you do with it? My advice is, don't say it. Or at least, pick your battles.

Suppose in the future there is a movement to ban the color yellow. Proposals to paint anything yellow are denounced as "yellowist", as is anyone suspected of liking the color. People who like orange are tolerated but viewed with suspicion. Suppose you realize there is nothing wrong with yellow. If you go around saying this, you'll be denounced as a yellowist too, and you'll find yourself having a lot of arguments with anti-yellowists. If your aim in life is to rehabilitate the color yellow, that may be what you want. But if you're mostly interested in other questions, being labelled as a yellowist will just be a distraction. Argue with idiots, and you become an idiot.

...

The most important thing is to be able to think what you want, not to say what you want. And if you feel you have to say everything you think, it may inhibit you from thinking improper thoughts. I think it's better to follow the opposite policy. Draw a sharp line between your thoughts and your speech. Inside your head, anything is allowed. Within my head I make a point of encouraging the most outrageous thoughts I can imagine. But, as in a secret society, nothing that happens within the building should be told to outsiders. The first rule of Fight Club is, you do not talk about Fight Club.

...

When Milton was going to visit Italy in the 1630s, Sir Henry Wootton, who had been ambassador to Venice, told him his motto should be "i pensieri stretti & il viso sciolto." Closed thoughts and an open face. Smile at everyone, and don't tell them what you're thinking. This was wise advice. Milton was an argumentative fellow, and the Inquisition was a bit restive at that time. But I think the difference between Milton's situation and ours is only a matter of degree. Every era has its heresies, and if you don't get imprisoned for them you will at least get in enough trouble that it becomes a complete distraction.


I would say functions are important, but absolutely pale in comparison to modeling[1].

If you are unable to describe, on paper, what your problem domain actually is, then you have no business opening up an IDE and typing out a single line of code.

I will take that further. If, with your domain model, you are unable to craft a query that projects a needed fact from an instance of the model, the you should probably start over. Dimensionality and normalization are a big deal with your model. You have to be really careful about nesting collections of things within other things if you want to allow for higher-order logic to project required views. This is something we struggled with for a really long time. Every rewrite conversation began something like "well customer and account need each other in equal measure...". And it took us god knows how many iterations to figure out the relationship should not be an explicit property either way.

Put shortly, Modeling is the core of it all. Start with simple top-level collections of things. E.g. instead of modeling Customer.Transactions[], model Customers, Transactions and CustomerTransactions. This fundamental principle of keeping your model dimensions separated by way of relational types can help to un-fuck the most problematic of domains. These will start to look a lot like EF POCOs for managing SQL tables...

At the end of the data, data dominates, and SQL is the king of managing data. If you embrace these realities, you might be encouraged to embed SQL a lot deeper into your applications. I spent a long time writing a conditional expression parser by hand. Feels like a really bad use of time in retrospect, but I did learn some things. Now I am looking at using SQLite to do all of this heavy-lifting for me. All I have to do is define a schema matching my domain model, insert data per instance of the model, and run SQL against it to evaluate conditionals and produce complex string output as desired.

[1] https://users.ece.utexas.edu/~adnan/pike.html


I agree with you. My view now when approaching all (and similar) situations in life - is "Can someone with mild to average intelligence interpret this negatively against me and act upon that perception?"

Because let's be honest, that is Occam's razor most probabilistic outcomes.


I wrote my PhD on the philosophy of Norbert Wiener, namely, 'cybernetics'.

I think what people haven't realised is that for Wiener - though not necessarily the successive generations of Cyberneticians per se - cybernetics names not only a transdisciplinary field of study, not only a primitive form of control engineering, but a philosophical system that contends directly with GW Leibniz's monadology. Wiener considered it to be a kind of monster, a 'golem', since whereas the monadology posits universal beneficence throughout nature and humankind, Wiener's cybernetics is, when applied to human societies, structurally, infinitely, conflictual. Moreover it points towards awesome consolidations of power.

Generations of readers of cybernetics have completely missed or disregarded this aspect of his thought, conveniently mistaking a system of regulation in nature for a system of regulation in artificial human societies. For Wiener there is no self-regulation in the body politic, societies are fundamentally anti-homeostatic, and the techniques that his generation had bequeathed to the world would only exacerbate its positive feedback loop.

This is why, for me, Wiener is still so compelling, despite the unfathomable equations, the desperate arrogance, the stuffy air of cigars. He was the first to see the world that Snowden brought to the public's attention. And it's all there, systematically in 1948 (and even, sort of, earlier).


Like someone else had mentioned, the list is comprised of channels geared heavily at web development featuring content for early career developers.

There are a ton of channels that dig deeper in more general software and particulars: 1. Algorithms Live! for those that are into competitive programming

2. PapersWeLove for those that are into white papers and the research that underpins some of the systems that we use today

3. 3Blue1Brown for mathematics

4. ThePrimeagen for Vim and other software things

5. Gaurav Sen for digestible chunks of system design components

6. code_report for just programming. The author is going through Structure and Interpretation of Computer Programs (SICP) at the moment

7. commaaai archive for following George Hotz, founder and creator of comma.ai, a self-driving car company. He was a former Googler working on zero days (security)

8. Jon Gjengset for Rust. He's got a lot of great videos as an open-source contributor in Rust projects and was most recently at MIT doing his PhD

9. Bitwise is a bit old (last post was a year ago), but former Oculus lead dev teaching folks about compilers, simulators, FPGA-based hardware, and other low level topics from a practitioner

10. Two Minute Papers for quick high level hits/overviews of whitepapers

11. Engineer Man for great short introductions into various parts of the stack, scripting, Unix, and other abstractions

There are many more and recorded streams from other programmers teaching random things. There are tons of engineers on Twitch representing a multitude of companies like Lyft, CockroachDB, Netflix, and others working on open-source projects.

As a more experienced developer, I much prefer these channels over the ones listed, but my point is that the content is there when people actually search. The YouTube algos may not pick up all of them immediately and is most certainly more dominated by content directed at less experienced devs, but I much prefer some of this to the course recommendations that others are stating. Courses are really good, once you're convinced you want to do a deep dive into something, but most people do not finish MOOCs.


Here's a clearer version of the paper[0].

This paper[1] is a good way for object-oriented programmers to understand why functional programmers care about these higher order abstractions. The goal is not so different from OOP, which is about structuring programs as reusable components (AKA design patterns). The difference of course is that one doesn't need to resort to diagrams and prose, instead they can be written directly in the programming language.

Relatedly, one of my favorite books in functional programming is Algebra of Programming[2], which is about treating programs as an algebra that can be manipulated as easy (with practice) as algebraic expressions in math. The book solves various problems through program derivation, for instance solving the maximum subsegment problem by refining a naïve spec, deriving sorting algorithms, greedy algorithms, dynamic programming and thinning algorithms.

This draft book[3] has similar content to the earlier chapters of AoP but is far more accessible. The downside of AoP is that I had to resort to reading it with a math professor to understand it.

[0] https://maartenfokkinga.github.io/utwente/mmf91m.pdf

[1] http://www.cs.ox.ac.uk/jeremy.gibbons/publications/hodgp.pdf

[2] https://themattchan.com/docs/algprog.pdf

[3] http://www4.di.uminho.pt/~jno/ps/pdbc.pdf


The guy from Slate Star Codex made a great point about this: Initially, the CDC refused to recommend wearing masks to inhibit virus transmission because there weren't rigorous studies supporting that usage. At the time they must have viewed it as irresponsible to recommend protective measures that weren't properly evidenced.

But, the reason there weren't rigorous studies supporting mask usage was not because they don't work, but because nobody was willing to run a study where you exposed half the subjects to a virus without any protection just to prove that masks would help the other half. It's the same reason there aren't any double-blind studies proving that parachutes help you if you fall out of a plane.


The problem with plagiarism isn't best characterized as some sort of power struggle between teachers and students via bullshit assignments.

The purpose of learning to write is to make yourself a formidable communicator. If you can independently analyze a new topic to learn something new and apply the results of those learnings towards a particular goal, you can be amazingly effective in everything you aim for. But if you plagiarize every assignment you rob yourself of your own training of this critically important competency.

Plagiarizing some work doesn't really hurt the work, it hurts you.


I do my development work and run most of my agency (with multiple employees) with Linux. For some of the business things that most people don't assume Linux can do, I use:

1. Xournal to annotate PDFs (aka sign contracts without printing them and scanning them back).

2. LibreOffice of course for most document related work

3. OBS Studio for recording webcam videos along with screen sharing

4. Audacity for audio editing (heck, I used this even when I was on Mac OS X)

5. Technically I've tried video editing with OpenShot, but do find myself back at Final Cut Pro X on my now 6 year old Macbook Pro for that for now

6. pdfsandwich and Tesseract OCR for OCR/turning PDFs into searchable files

7. Chrome/Firefox are both first class and run all the modern day web application stuff

8. Tons and tons and tons of command line stuff that Linux is well known for

9. QEMU/KVM for hosting arbitrary virtual machines with almost native performance

10. GnuCash for double entry accounting for personal and volunteer society finances. I used GnuCash for a while to run the S Corp accounting when we were on Freshbooks and Harvest, but we've since graduated to QuickBooks Online for better invoicing and CPA office professional services support.

11. GIMP for photo editing

12. Inkscape for messing around with vector graphics

Once you get past locating the tools to do your job. Linux has everything.


I often advise students to start with a sort of flowchart of ideas, instead of an outline. This consists of boxes with ideas, keywords, phrases, or diagrams, connected with arrows in a sequential order.

When the student pitches the plan to me, I start by looking at the items in the boxes of the flowchart, to make sure they are all relevant and that no relevant things have been missed. So far, this is no different than looking at a bullet list in a conventional outline. But the next step is the key: if the diagram has A->B->C, for example, I propose some other ordering and ask the student why that couldn't work. And I also ask whether we actually need that B in the middle.

This directed-graph approach can help to reveal a good logical structure for the overall composition, often saving an great deal of time at a later stage, where the pieces being moved around are not just phrases or ideas, but rather paragraphs, sections, or even chapters.

Quite often, the best way to come up with a diagram of this type is to explain the goal of the written work to someone else, drawing the diagram as part of the explanation. If the listener says "I don't see how you got from that idea to the next" then the diagram might need another box.

The other hint I give to students is to keep updating this flowchart as the writing is being done, because the act of writing can so often uncover things that were not envisioned at the start.

PS. when I say "my student", I include myself, for the teacher who is not also a learner is missing an opportunity.


Read 'The Goal' by Eli Goldratt - one of the best supply chain books ever written.

One of the main features of the product I work on is data extraction from a specific type of PDF. If you want to build something similar these are my recommendations for you:

- Use https://github.com/flexpaper/pdf2json to convert the PDF in an array of (x, y, text) tuples

- Use a good text parsing library. Regexes are probably not enough for your use case. In case you are not aware of the limitations of regexes you may want to learn about Chomsky hierarchy of formal languages.

Here is the section of our Dockerfile that builds pdf2json for those of you that might need it:

# Download and install pdf2json ARG PDF2JSON_VERSION=0.70 RUN mkdir -p $HOME/pdf2json-$PDF2JSON_VERSION \ && cd $HOME/pdf2json-$PDF2JSON_VERSION \ && wget -q https://github.com/flexpaper/pdf2json/releases/download/$PDF... \ && tar xzf pdf2json-$PDF2JSON_VERSION.tar.gz \ && ./configure > /dev/null 2>&1 \ && make > /dev/null 2>&1 \ && make install > /dev/null \ && rm -Rf $HOME/pdf2json-$PDF2JSON_VERSION \ && cd


- Maxed out insurance (home, car)

- Set aside a large amount for taxes, invested it in US Treasury Bond (get an estimate of your taxes from an accountant)

- Got an accountant

- Read up on QSBS (this can save you a lot of money if you got stock when the company was small enough)

- Got a last will and testament drafted and signed. Also asked our probate lawyer about stupid things people do with money, so as to avoid those mistakes.

- Got a financial planner. Also asked about stupid things people do. (At your scale, probably ok to just do standard ETFs and bonds. Note that don't buy in all at once, diversify not just the investments but also by time, so you're not buying all into the stock market at once. This also gives you time to think and reflect about how you want to use your money and what legacy you want, while also getting some returns on investments)

- Set up a donor advised fund (you can donate stock directly to one and get a big tax break)

- Made a donation and got something cool named after two of my long time mentors

- Read book Silver Spoon Kids on how to talk to one's children about money (our financial advisor gave this to us)

- Read a lot about wealth and power in the United States, in particular sociologist and psychologist William Domhoff's "Who Rules America?" https://whorulesamerica.ucsc.edu/power/wealth.html (I stumbled on this by accident, but found it a fascinating read)

Time is on your side here, so don't rush into anything. I was really lucky to have a brother who already had high net worth, so he was able to give a lot of guidance and discussion of tradeoffs.


Two cents offered because this post really strikes a chord with me, and I also spent some time chasing down rabbit holes early in my software business:

These products do not appear obviously commercializable and multiple years invested into them without materially improving the businesses does not decrease my confidence in that snap judgment. You could probably talk to business owners with problems, launch an (appropriately priced; hundreds to thousands of dollars per year) product against those problems, build contingent on getting 10 commits to buy, and be at +/- $100k in 12 to 18 months. Many people with less technical and writing ability have done this in e.g. the MicroConf community. If you want the best paint-by-numbers approach to it I've seen, c.f. https://www.youtube.com/watch?v=otbnC2zE2rw&t=2s

(I'll note that What Got Done is probably a viable boutique SaaS business if you somehow figured out distribution for it, at price points between $50 and $200 per month. My confidence on this approaches total. HNers skeptical because it is technically trivial should probably reflect for a moment on how much time is spent on standups at a company with 20 or 200 engineers, what one hour of their time is worth, and how likely that company is to put an engineer on this project specifically.)

If you run an API-based business in the future: Usage-based billing is a really tricky business model for a solo developer. Note that you can say "Usage-based billing but we have a minimum commitment", and probably should prior to doing speculative integration engineering work. Your minimum commitment should be north of $1,000 per month; practically nobody can integrate with your API for cheaper than a thousand dollars of engineering time, right.

This also counsels aiming at problems amenable to solutions with APIs which are trivially worth $1,000++ a month to many businesses which can hire engineers. Parsing recipe ingredients seems like a very constrained problem space. Consider e.g. parsing W-2s or bank statements or similar; many more businesses naturally care about intake of those documents, getting accurate data from them, and introducing that data into a lucrative business process that they have.

I would encourage you, to the maximum extent compatible with your sanity, to prioritize "Will this get me more customers?" over behind-the-scenes investments like CI/CD which are very appropriate to Google but will under no circumstance show up in next year's report as One Of The Most Important Things I Did This Year.

For similar reasons, I would suggest devoting approximately zero cycles to cost control. You don't have a cost problem and no amount of cost control will bend the curve of your current businesses to sustainability. You have a revenue problem. Your desired state in the medium term will make it economically irrational for you to think for more than a minute about a $50 a month SaaS expense; marketing and sales gets you to that desired state, not cost control.


Take this feedback as constructive, because Racket is cool and a movie-making language is interesting and I want you to succeed.

Good software design is about anticipating what your user will need to know to move forward. Your project failed to do that at step 0: the project home page doesn't show the information people will need to move forward. Some indication of what the project does, what it looks like...

What I thought when clicking on the HN link:

Video-making with a programming language! How interesting! Lots of potential with animation, concurrency, etc. What does that look like? I want to see a session with the tool. At the very least I want to see the output of the tool, and some code snippets. If I like it I'd like to know who made it, and why, and what they've done with it so far, and where the money's coming from. Well, at least there's a getting started button, nice and big and red! Oh, all it's telling me to do is install this thing. Is the author crazy? I'm not installing something without a single goddamn screenshot! Lets write an HN comment...

The thing is I am not going to install your program without this information, and I think you need to spend some time thinking about what visitors to your project will need to see before they take the plunge and look at your stuff.


There’s a perspective that the transaction log of a typical RDBMS is the canonical form and the rows & tables merely the event-sourced projection. After all, if you replay the former, you should always get exactly the same in the latter.

It’s curious that over those projections, we then build event stores for CQRS/ES systems with their own projections mediated by application code.

Let’s also mention the journaled filesystem on which the database logs reside. And the log structure that your SSD is using internally to balance writes.

It’s been a long time since we wrote an application event stream linearly straight to media, and although I appreciate the separate concerns that each of these layers addresses, I’d probably struggle to justify them from first principles to even a slightly more Socratic version of myself.


Most code converts an array of items into another array of items (Ex: Sorting converts an arbitrary array into a sorted array).

If you're a more complicated fellow, you'll convert a tree of items into another tree of items. For example, collision detection in video games is often done with B-Trees, Raytracing with BVH trees that represent all the vertices on the screen.

The final step... the end-all be-all of complexity... is the arbitrary graph. That is: code that walks arbitrary graphs, and converts them into other arbitrary graphs. After all, most code have cycles, so you can't even make a DAG-assumption like in maximum flow.

That's about it. We may call it "dead code elimination", or "common subexpression elimination". But at the end of the day, all you're doing is running graph-analysis, and then converting that graph into a "more efficient" form.


I got into "computer science" before there was a CS degree. Our CS classes were taught in the math dept (fortran), business dept (cobol), or engineering (assembler).

The profs were literally 1 chapter ahead of the students.

I, however, was in love with the subject. I was the "student advisor" in our "machine room". We had 5 teletypes connected to a remote mainframe at Rutgers. I lived and breathed CS.

I wrote tests for the profs (even thought I was also in the class) and I answered questions for students about the tests when they came for computer help.

Pick a subject you love so deeply that you're always at the leading edge (which essentially means a new subject the school wants to teach). For example, CMU introduced an AI curiculum. Learn how to do NNs, DNNs, GANs, etc. Read the latest papers. Write working code. Chat with the profs. Hang around the dept.

Proof systems are a hot topic. Learn LEAN, COQ, AGDA. Learn to write proofs by machine. Read the papers. Get ahead of the curve. It is hard to "fail" a student who knows a lot more than you, especially when they help craft the tests.

Intel stuck an FPGA inside its CPU. Learn Verilog and learn to hack new CPU instructions (e.g. read Gustufson's book "The End of Error" that introduces a new kind of floating point arithmetic). Write code that outperforms BLAS code.

Learn BPF (Berkeley Packet Filter) so you can do impossible things about the kernel in User mode. Make your networking class look like it is stone-age.

I could go on but you either "get it" or you don't.


See thermal physics, which combines statistical mechanics and thermodynamics:

https://en.wikipedia.org/wiki/Thermal_physics

For a computation focused example, see Schneier's essay on strength of a 256-bit symmetric cipher:

https://www.schneier.com/blog/archives/2009/09/the_doghouse_...

Edit for completeness: rest energy converts to mass as follows: E = m*c^2


I would recommend starting with the server-side variant of Blazor on a non-production test app to familiarize yourself. You can easily move to client-side WASM mode once you need to (or feel comfortable doing so) without any major changes to your codebase.

Our long term plans (aka by end of 2020) are to rewrite all of our internal tooling from SPA (RiotJS) w/ JSON APIs to server-side Blazor. The principal motivations here are productivity gains. It is a LOT faster to write a razor view in C# with direct invocation of your business logic from view logic, than it is to determine what a clean JSON API contract looks like, write all the boilerplate for controllers, and then play the back-and-forth game between chrome devtools and visual studio with 2 separate debugging contexts. After you write your first LINQ .Where().Select() to populate a table in Blazor, you will truly understand what I am getting at in terms of productivity if you have ever tried to do the same sort of filter->map stuff in JS.

With Blazor, I only need to know C#, HTML, CSS and just enough JS to write a blazorhelper.js interop which reads and writes my session cookies. I set 1 breakpoint in visual studio and it gets hit when I press some button in the browser.

With SPA, I have to be at the top of my JS game, and also pull some SPA framework into my mental context which must then be shared with all of the other C# business logic in scope. I have to manage breakpoints in the browser as well as in visual studio. I have to deal with 10-100x the amount of JS code.

Additionally, we don't even want to move to client-side variants of Blazor for our use case. First request latency and security are the 2 largest motivators for us here. Server-side exposes precisely zero things to the client you didn't want to, as opposed to SPA which makes even unauthenticated clients download your entire application. Also, "the server" is substantially faster these days (even more so going into 2020 on AMD's warpath). For the number of concurrent clients we are anticipating, server-side Blazor is actually our best option in terms of UX.

I would be curious what aspect of Blazor feels immature to you. It is certainly a new(ish) thing, but the fundamental aspects of it (especially server-side mode) have been around for decades and microsoft has leveraged a lot of existing or otherwise proven ideas here. I would agree on the client-side aspect being "immature" relative to server-side, mostly due to WASM and the need to push a very large payload to the client upon first request.


I'd recommend Elements of Statistical Learning or ISLR instead, if you want to start with a theory-heavy introduction. Most of what you need for DS you'd I think better learn through projects or on-the-job.

Also, as others have mentioned, some of the most important skills for DS are data munging, data "presentation", and soft skills like managing expectations / relationships / etc.

I would not recommend this book if you want to get into DS with the idea that, "I'll read this and then I'll know everything I need to." It's too dense and academically-focused, and it would probably be discouraging if you try to read this all without getting your feet wet.


Things that are perfectly fine when only a few people are doing them often become a real problem when hundreds or thousands or millions of people are doing them. That's why investors need to be accredited. Otherwise legions of hopefuls will throw their nest eggs into overly-leveraged positions sold by the unscrupulous. That's what happened in the early days of stock markets.

But take a step back and think about it for a second. You can put 'ways to make money' on the axis of 'conscious involvement'. On the left you'd have 'keeping a job', then on the right you'd have 'hiring a professional money manager'.

As you traverse the scale, returns on investment vs. conscious attention devoted tends to decrease. You need no money to get started on a job, but investing in the stock market requires large amounts of cash to generate significant returns.

Until you have a quarter of a million dollars net worth, it just doesn't make sense to do more than slow-growth passive investment over time to fund a very specific event, retirement. Even there it's a hard sell for many people. You need to make a lot more than the average for retirement investment to really work for you.

In the middle of the scale, between having a job and investing, is running a business. If you want to move up the economic ladder, the move isn't from salaried professional worker straight to investor, it's to hanging out your shingle and carving out an economic niche. In business, it's much easier to earn the kind of money you need to make investing work.

Over time, you can learn your niche to the point to where you can direct others to exploit it rather than do it yourself. This is where the line blurs between business and investment, where you have a working system turning inputs to revenue, and all you have to do is watch the numbers to make sure they keep going up. And you don't need to be accredited to do it.

You might think, "oh, but I could day trade and earn a ton of money if the SEC would just let me!" If you don't know the principles, the market is going to burn you badly. If you know the principles, then you'll know it's not a fast road to riches. Business will get you there much quicker.

The SEC is aware that the accreditation limitations are somewhat onerous, so what they're doing is opening up some Series A rounds to unlimited numbers of unaccredited investors. If you want to bet on an emerging market, this would be the best way to do it:

https://www.seedinvest.com/

I considered investing in Virtuix, but decided I needed the money accessible right now more than I needed a lottery ticket, no matter how much I believe in the potential of VR. What did I need the money for? Tiding me over while I get my startup off the ground.

Don't shy away from learning or starting a business. It'll make you a better investor when the time comes.


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search:

HN For You