Hacker News new | past | comments | ask | show | jobs | submit | faitswulff's favorites login

How can I, a regular software engineer, learn about quantum computing without having to learn quantum theory?

> Worth spending a little time doing some long tail strategizing I’d say

any tips for starters?


When I went through a bunch of interviews in 2021 all my interviews were remote. After the first few hour-long interviews it became apparent that there were many repeat questions. I started writing the questions down along with my answers. I ended up with a notepad with ~20 of the most frequent questions and answers that I kept open on my screen next to the video conference. It was super helpful and now I have one of those $300k tech jobs!

Edit: these were the questions, the answers are left as an exercise to the reader (or your preferred AI):

What are you looking for in a role?

How do you deal with a conflict with a coworker?

What leadership experience do you have?

Do you have experience working with multiple teams?

What APIs have you designed?

What is priority inversion?

What are the differences between a mutex and a semaphore?

What is preemption?

How do interrupts work?

What is interrupt latency?

What is the difference between an ISR and a function?

What is the difference between an interrupt and an exception?

What is hard vs soft real time?

What is the boot process of a CPU?

What do you do for board bring up?

What are different memory sections used for (code, data, bss, etc.)?

What is a TLB?

What is the difference between big and little endian?

What is the difference between 32 and 64 bit processors?

What happens if a null pointer is dereferenced?


This is an excellent book explaining the wonders of Xerox PARC and what they wrought for us all. It also explains succinctly why and how Xerox failed to monetize all of the innovations created within. (Their sales force didn't know how to sell something without a lease and a per-imprint charge (where's the click), and management didn't really understand why what PARC created was important or how to monetize it. Also, the people at PARC had some measure of trouble knowing how to commercialize anything.)

I read the book at a 17 year old shortly after it came out, and found it very very compelling.

https://www.amazon.com/Dealers-Lightning-Xerox-PARC-Computer...

Also, here is a thread about the book with Alan Kay - https://news.ycombinator.com/item?id=22379275

Another thread with Albert Cory is here - https://news.ycombinator.com/item?id=31626413


It might be worth mentioning a famous abdication which caused a lot of consternation, albeit in another game. I love this story but may have gotten some details wrong.

Marion Tinsley was world checkers champion from 1955-1958, then took a break, then again from 1975-1991, when he resigned in protest (at age 64). He was utterly dominant; indeed it is hard to think of a competitor in all of history more dominant over his sport or game than Tinsley.

In 1990 Tinsley decided to play Chinook, the best checkers computer program in the world. Chinook had placed second at the US Nationals so it had the right to enter the world championships, but the US and British checkers federations refused to allow it.

So Tinsley resigned his title. Tinsley then played Chinook in an unofficial match (which he won).

This power play really stuck it to the federations: nobody wanted to be named the new world champion knowing Tinsley was fully capable of crushing them. Eventually everyone came to an agreement to let Tinsley be the "champion emeritus".

Tinsley played Chinook four years later, at age 68, still probably the best player in the world. But in the middle of the match he complained of stomach pains and withdrew after only six games (of 20), all drawn. Tinsley's pains were real: he later died of pancreatic cancer.


I tried this approach a number of times some decade ago (about other languages / functional programming) and it didn't payoff. Countless of presentations, workshops, discussions and nothing.

The business didn't care about nothing but hiring basic js developers and throwing them at the issue.

Nowadays I don't waste my energy trying to change clients, I'm just collecting a paycheck and going along with whatever bs the leaders think is good.

My stress levels and happiness levels are way better. If a company has leaders who are open to change they'll hire you with that in mind, if not, they can just keep rotting with the other dinosaurs.


I managed to land a well paying job with good work life balance by changing my approach to job seeking. Here's what I did.

1. I tracked all incoming offers in a spreadsheet with a column for salary and equity 2. I responded to every incoming lead on LinkedIn with 'what is the salary band for this role?' and 'how did you find my profile? What did you like about it?'

This allowed me to build a distribution of jobs available to me, and then I only ever took calls with the top 1% of those offers.

I must've spoken to 150 recruiters on chat, but I only interviewed for 6 companies and secured 4 offers.

I kept iterating on my LinkedIn based on the feedback from the initial chat interaction and very quickly I was getting really good leads.

I put in about 100h work over a year to get to that point. I still, 3 years later, regularly get offers with >200k GBP base compensation now.

EDIT: I forgot to add a key factor. When the recruiter responds with a salary that is below the top 1% you reply: 'Thank you, but I am currently only able to consider salaries with a base comp of at least X, please get back in touch with me if you find something in that range." - X being your current estimate of the top 1-5% of the distribution.


I was the EM for Reddit's Growth team around this time. I am responsible for / contributed to a few features like the current signup flow, AMP pages, push notifications, email digests, app download interstitials, etc.

There was a new product lead who joined with many good ideas, but some of them were dark patterns that I heavily protested. After a few months of this, it was obvious that I was going to be reigned in or let go[0]; I immediately transferred to a different org.

Now let me explain the other side of the story. 4 years later, Reddit's DAU, MAU, and revenue have all grown at ridiculous rates[1]. Yes, power users complain—and still continue using the site—but the casual user does not. These dark patterns have been normalized on other websites.

These practices are done because it works.

_____

0: They changed it so I would report to the product lead, which is odd for an EM to report into a product chain and the only instance within the company ever.

1: Many friends are startup founders and I've been at a few startups myself—a byproduct of being in the Bay Area—and Reddit's growth numbers are impressive. As a former employee, I am quite happy about my equity growth.


Some other WebRTC file transfer options:

* https://wormhole.app/ (my recent fave, by creator of WebTorrent, holds for 24h, https://instant.io by same)

* https://file.pizza/ (p2p, nothing stored)

* https://webwormhole.io/ (same, but has a cli)

* https://www.sharedrop.io/ (same, does qr codes)

* https://justbeamit.com/ (same, expires in 10 minutes)

* https://send.vis.ee (hosted version of this code)

* https://send.tresorit.com/ (not p2p, 5 GB limit, encrypted)

I track these tools here: https://href.cool/Web/Participate/


This partially might be more of a what's old is new again, but here's what I use:

- 100% server side rendered

- Progressively enhanced (fully works without JS, but having JS enabled makes it nicer)

- In select places where I need SPA-like snappiness I use a ~100 line long DOM diffing algorithm (I request full HTML through AJAX and diff it into the current page; if the user has no JS enabled then the page just refreshes normally)

- Running on a single, cheap VPS; no Docker, no Kubernetes, no serverless

- No SQL database; I just keep everything in memory in native data structures and flush to disk periodically; I have a big swap file set up so that I can keep a working set bigger than the RAM

- Written in Rust, so it's fast; I can support tens of thousands of connections per second and thousands concurrent users on my cheap VPS


The only working datetime solution is JSR310.

It has separate types for

• LocalTime (milliseconds after midnight)

• LocalDate (julian day),

• LocalDateTime (julian day and milliseconds after midnight),

• Instant (nanoseconds since EPOCH),

• ZonedDateTime (which is a point in time with a timezone, and exposes both the localdatetime and the instant APIs)

All of these types have a reason to exist, and definitely shouldn't be mixed together (like python does).

• If I program an alarm clock, I'll want to use LocalTime. Even if DST starts/ends, you still wanna get woken up at 8am.

• My birthday is a LocalDate. It usually has no time information, and usually isn't depending on a timezone. An anniversary is the same.

• The moment when a loggable event happened is an Instant. The event doesn't care about timezones, only the exact time it happened.

• A calendar event is a ZonedDateTime: the meeting will happen at 10am CET, regardless of which timezone I'm in at that point.

All these types describe different concepts, and they shouldn't be mixed together. Every language should adopt JSR310. Yes, it's relatively complicated, but it's extremely precise and accurate.

And you can convert them all!

•LocalDate + LocalTime becomes LocalDateTime

• LocalDateTime.atZone(ZoneId or ZoneOffset) becomes ZonedDateTime

• Instant.atZone(ZoneId or ZoneOffset) becomes ZonedDateTime

• ZonedDateTime.toInstant() or ZonedDateTime.toLocalDateTime() exposes local datetime and instant.

• LocalDate can easilybe converted to JapaneseDate, HebrewDate, ArabicDate.


> despite the constant “plant native species” drumbeat from wildlife advocates, hawks don’t really appear to prefer them

Raptors might not have a preference, but pollinators do, and in the US that counts for a lot. Planting native species gives native pollinators a better chance against their more generalist invasive cousins, the European honey bee (A. mellifera) and paper wasp (P. dominula).

It's a good idea to do that, too, since there are a lot of species which native pollinators can pollinate, but invasive pollinators can't, which means these plants rely on native pollinators to reproduce. More than that, some native insects are closely enough coevolved with native plants that, in the absence of the latter, the former fail to thrive or die out entirely - monarch butterflies, for example, are struggling for this very reason.

Audubon's native plant finder is a good place to start - the email address is optional, all it requires is your ZIP code. https://www.audubon.org/native-plants

That said, being from Audubon, it's focused around serving bird species, rather than insects. For insects specifically, look to the Xerces Society, which is a conservation society parallel to Audubon but interested in invertebrates: https://xerces.org/publications/plant-lists


  >Magpies are amazing...
Corvids in general are.

When out walking one night a few years back, I was lucky enough to find a baby jackdaw on the ground that must have fallen from its nest. It was completely cold and not moving. I picked it up and was about to discard it again, thinking it was dead, when I noticed its claw twitch slightly. So I cupped it in my hands to warm it and took it home with me and gradually nursed it back to health.

It stayed with me for about a year or more and even came on a couple of camping holidays round Ireland and Wales with me. I became quite a tourist attraction, as I'd be walking along a beach or in some countryside and suddenly this bird would appear as if from nowhere and land on my shoulder. passers by would be gobsmacked and ask to take a photo of the crazy bird man.

As the jackdaw got older, it got more independent and would go flying off for longer and longer periods until, one day it flew off to join another group of jackdaws in a park and never came back.

One of my coolest memories ever was one night me and the missus had gone out to dinner. The jackdaw had flown off somewhere, earlier in the day and not come back. When we returned home around midnight we found it fast asleep in its cage in the living room. It had come home, found us not there and let itself in through the cat-flap and went to bed, all by itself. Even though it had always been 'free' in the sense it never had a door on its cage and was free to fly off wherever and whenever it wanted, somehow that incident really touched me as it was like the bird was telling me that it considered our house its home too.

Absolutely amazing creatures and so intelligent. I read once that corvids have similar amounts of neurons in their brains to small monkeys but the folding of the corvid brain is more complex, so those neurons fit into a smaller brain volume. After having the privilege of spending that amount of time with one 'close up' I can certainly believe it.

https://i.imgur.com/qOAN2ro.png

https://i.imgur.com/PO06LII.jpg


Funny Saudi Arabia + fossil footprints story:

Back in the 90s I was in saudi arabia when a national geographic story came out about some fossil footprints. Because of the size/spacing of the prints it was evident that two proto-humans, one smaller, were walking together while perhaps holding hands. So the cover art was two hairy proto-humans, one male and one female, naked, walking hand in hand away from the viewer. Needless to say this was an issue for the saudi censors, who at that time would ink over magazine covers by hand.

By censoring anything you suggest that these are people, not animals, and thereby acknowledge evolution. Do you censor the female? The male? Both? On store shelves I saw every interpretation. My favorite was the one that ignored the nakedness, censored only the hand holding.


Numerous other ideas exist for alien life, but most of them have their shortcomings. It all boils down to chemical reactions and physics.

Imagine a universe of only helium. No valence electrons would be readily available, so chances are you are not going to see helium molecules. Lithium, sure, as a metal. Continue examining various smaller (and more plentiful elements). Fluorine? Well, only one slot available, so you can make molecules with two atoms, but no chains. If you have two slots open, you can make a chain, but little else. Although try making a chain of oxygen -- even the three-link ozone is not particularly stable. Carbon can have four different bonds going at once, which is pretty crazy, and so you want something with three or four slots available.

But then you say, well, silicon could have four. And it could ... but for the fact that it is so huge by comparison to carbon (that whole other "electron shell") that it rarely has analogues to organic (carbon-based) compounds. Also, it doesn't like to do much until you get it fairly hot. So you climb back up a row and it looks like carbon, nitrogen, boron ... those are going to do your heavy lifting when you need multiple bonds, with hydrogen, oxygen, and the halogens or alkali metals somewhere on the outside. Hence carbon chauvinism. Carbon is something like the fourth most common element in the universe after all.

Then you start talking about solvents -- all of this stuff has to slosh around in something after all, your chemistry experiments take place in liquids -- and the field is a bit wider but dang, water has some crazy properties that make it quite a catch when it comes to solvents.

You've got temperature ranges: down in the single digits of Kelvin you're not going to have much chemistry happening, and up in the thousands of Kelvins even iron boils and then again, no more structure.

Once you start looking for these various "sweet spots" it all comes down to finding a place where you can have liquids (your solvent), solids (for structure), and gases (even if they are dissolved in liquids). Combine that with the more common elements (especially those that are friendly to complex chemistry) and you have something not entirely un-Earthlike.

There's tons of Wikipedia articles on it, but ... the restrictions of chemistry are the bulk of the culprit, I'm afraid.


There's a workaround. If you use the iOS app in combination with a desktop client, then it is possible to back up messages, assuming they have been synced to the computer.

On Windows:

1. Download DB Browser for SQLite https://sqlitebrowser.org/

2. Unpack it and run DB Browser for SQLCipher.exe.

3. Open database, select %APPDATA%\Signal\sql\db.sqlite.

4. In the following dialog, select Raw key type and enter the encryption key stored in %APPDATA%\Signal\config.json into Password field (prefix it with 0x).

5. Now you can work with the database, including exporting its contents to unencrypted SQLite, CSV and JSON.

The process should be similar on other platforms.


Are there any good resources for people interested in how multi-player networking/state management works?

You should probably disregard this advice. Instead:

[Late addition:

* Do not use passwords as API authentication. The user of an API is a computer program, not a human. Issue single-purpose random credentials for API access.]

* Make sure that your API is accessible only over HTTPS; test the API endpoint to ensure requests aren't honored over unencrypted HTTP.

* Use the simplest API authentication mechanism that (a) works and (b) you understand. You should probably degrade the capabilities of your API before you try to adopt an authentication system that you don't completely, fully, absolutely grok.

This means, if you don't need delegation right away (for instance, if you don't have 3rd party applications making calls to your API on behalf of your users), don't bother with anything like OAuth.

Contrary to the implications in this article, HTTP Basic Auth is not less secure than OAuth if your endpoints all require HTTPS. If you allow HTTP calls to an API, you have bigger problems than your auth token scheme.

Semantic mismatches between API endpoints and web UI endpoints (ie, semantic differences between API auth and cookie-based authentication) are a classic, pervasive, hard- to- eradicate source of serious security flaws. Don't make things any more complicated than they need to be.

[Late edit: I didn't think I needed to make the first point, but I clearly did need to. Sorry.]


As far as I know from my thesis on organized crime, Yakuza is a different breed say than Hell's Angels, Mafia and Vor V Zakone (Russian "Mafia", although I use the word mafia here tentatively because with the exception of providing illegal goods and services they have nothing in common).

The difference is yakuza is accepted as a semi-legal entity in the minds of the people.

Historically first yakuza (which were proto-yakuza, like nobody used the term yet) protected the city against ronin (masterless) samurais who came to loot the city. (Kaplan & Dubro, p.12) In addition to this they carry a Robin Hood-esque theme and one of the well known histories about them involves Chobei Banzuiin who, supposedly, repaired the roads and walls in Tokyo and opened up a casino.

But the word yakuza appears after a century more or less. Their origins involve traveling gamblers and street sellers. Even the word itself, yakuza, is a term for losing hand (ya-ku-sa, cards of 8-9-3)

Another term that's important, and unique if I may say, in Yakuza is the relation of oyabun-kobun. Oyabun acts as a father figure and kobun is the child figure. Kobun provides service and commitment to the Oyabun with no questions or hesitation. and Oyabun protects and helps the Kobun.

Everybody knows about the tattoos so I'll pass this.

Yakuza formalized in the beginning of 1960s with the help of Yoshio Kodama. He was charged with creating a spy network in China and given the rank of Admiral for his war effort even though he was a criminal.

If you want to read more about this, these were the books I've used in my Thesis on this section

Amaruso D. Gangster Incorporated. Glencoe:Free Press

Kaplan, D, Dubro A. (2003) Yakuza: Japan's Criminal Underworld. California: University of California Press

Lyman M. & Potter, G. (2009) Organized Crime, New Jersey: Prentice Hall


Years ago, a friend of mine was in med school, and headed off for a semester in the rainforest of Ecuador, performing basic medicine and stuff for people who rarely got to the city to see a doctor. He called me up, on a Sunday afternoon, with this question:

"Our dentist in the group just realized she doesn't have a source of suction, you know, like the vacuum that slurps saliva out of the way during a procedure. We're in Houston and our flight leaves in 6 hours. Any solution needs to work off-grid for a month. Got any ideas?"

I thought for a moment, and said "Hit an auto parts store. Get a brake-bleeder kit. This has a hand-pump vacuum with a clear collection jar. Aim for one with a glass jar if possible, since it'll be easier to clean. Should set you back about thirty bucks."

And we didn't speak again for a few months. When he was stateside again, he said the brake bleeder kit had worked so well and was so simple to operate, they'd often just hand it to the patient. Not only did this free up a physician, it also gave the patient something to do during what's often a nervous and fidgety time, and may have thus decreased the need for sedation in some procedures.

Sometimes it really is that simple. He had numerous stories of doctors in hospitals picking the brains of janitors -- they called it a "facilities consult" -- to see if they could MacGuyver a solution to a problem that the medical industry hadn't packaged yet. PTFE plumber's tape apparently comes in a medical grade too, but sometimes you need to toss around ideas with some other hands-on maker-fixer sort of people before you figure out how to apply it.


> the overwhelming majority of people can not learn mathematics properly from a textbook.

While you are right, a related issue is that most maths textbooks are atrocious at most aspects that aren't writing pages of equations. There is almost nobody sitting at the 3-way intersection of great mathematician, great writer and great educator who can then write great textbooks.

I've found books with terms like "History" and "Philosophy" in the title are much better places to learn about mathmatics; combined with wikipedia for formulas and details. Any book with excercises but no solutions or historical context has turned out to be basically useless to me, even as a reference (wikipedia is usually better for simple stuff).

I've got something like 4 books on statistics on my shelf at the moment. The only one that I've actually manged to read and learn something from has been Chatterjee's Philosophy of Statistics, because it talks about what techniques were developed in context of which problem, failed alternative approaches, explains what was confusing to some of the greatest minds in the history of statistics, etc. This has been vastly more useful in setting up a framework for what the world of statistics looks like that I can attach a whole bunch of proofs and suchlike too. It has been enlightening in a way that textbooks can't really manage.


After wandering around in Germany, coming home late etc my kid was shocked when we put him in a US school 6 year ago (i.e. post smartphone). It wasn't just the unstructured time, but the range of things kids are allowed to do. Amusingly/sadly he said things like "people here haven't heard of freedom".

We had neighbors with a kid precisely the same age as him, but the kids were never around, instead being driven from place to place.

(BTW it's pretty common to complain about the quality of US education too but in this case it was actually OK, especially when compared to the notorious Berlin schools, and he decided on a US undergraduate education which I think was a good decision.)


Howdy! I work in cleantech, and I guess it's that time again for a what-can-you-do-about-it post :)

To start, here's my favorite climate change joke: "They say we won't act until it's too late... Luckily, it's too late!"

==So what can you do about it?==

The biggest thing that is most relevant to the HN audience is that you can work at a new energy technology company! Our industries are out of the R&D stage and are currently focused on scale and growth[1], and we need as many smart people as we can get. There are lots of companies hiring software engineers.

==How do I find a job fighting climate change?==

I'd recommend browsing the exhibitor and speaker lists from the most recent conference in each sector (linked below). Check out the companies that interest you and see if they are hiring.

    * Energy Storage[2][3]
    * Solar[4][5]
    * Wind[6]
    * Nuclear[7]
    * Electric Utilities[8][9]
    * Electric vehicles[10]
Also, if you're in the SF bay area, I'd recommend subscribing to my Bay Area Energy Events Calendar[11]. Just start showing up to events and you'll probably find a job really quickly.

[1]: https://techcrunch.com/2017/01/22/energy-is-the-new-new-inte...

[2]: http://www.esnaexpo.com/

[3]: https://www.greentechmedia.com/events/live/u.s.-energy-stora...

[4]: https://www.intersolar.us/

[5]: http://www.solarpowerinternational.com/

[6]: http://www.windpowerexpo.org/

[7]: https://www.nei.org/Conferences

[8]: http://www.distributech.com/index.html

[9]: https://www.greentechmedia.com/events/live/grid-edge-world-f...

[10]: http://tec.ieee.org/

[11]: https://bayareaenergyevents.com/


A video of someone actually building and typing on one of these: https://www.youtube.com/watch?v=xIDs8tq5Pa4

I don't know where to start with writing an emulator. Any ideas?

I'm a PhD student, and one of the things you quickly become aware of is the fire-hose of new science that is published daily. The discovery/prioritisation problem is being "solved" by publishers recommending other articles (published by them) on their website, or sites like ResearchGate (basically Facebook for academics and researchers) doing the same with similarly obscure algorithms.

I started a side project that pulls in RSS feeds from various academic publishers and uses a simple regression analysis based on tiles and abstracts to recommend you papers. I've become busy with my PhD but if anyone is interested, it's on github:

https://github.com/tompccs/scoopy


Sounds like those backend services needed better security too. It seems orthogonal to whether you have 3 different API surfaces (one for web, one for mobile app, one for backend servers), or the same for all. At Google, gRPC allowed us to move from the former to the latter.

Gatsbyjs (reactjs based static site generator) is a very good free alternative. It has a plugin which allows you to use WordPress as a headless CMS to create/update content and another plugin which allows to push your the WordPress content to Github Pages (Gitlab or other static site hosting services):

https://github.com/gatsbyjs/gatsby/tree/master/examples/usin...


After reading this, I just started experimentally sending all calls to voicemail. Here's how I set it up; it should work with GSM phone carriers:

- Dial the below number. It'll show a bunch of information, including your voicemail number. Remember/copy the number.

    *#67#
- Create a new contact. I put "Phone Off" in the company name field. Use the below number as its phone number, replacing the "X"s with the number from the first step, including country code. Calling this contact will tell the network to forward all calls to voicemail without the phone ringing.

    *21*+XXXXXXXXXXX#
- Create another new contact. I put "Phone On" in the company name field. Enter the phone number below. Calling it will cancel call forwarding.

    ##21#
I added both of these contacts to my favorites and can tap them to enable/disable calls. Right now, I'm only planning to turn off forwarding when I'm actively expecting a call. It turns out that my phone puts an indicator in the status bar when forwarding is turned on, which is cool. Let's see how it goes.

I changed my primary work goal 2 years ago. Now I try to minimize stress as the most important goal of the work day. I redefined my job; it now is to solve problems in the lowest stressful way. In other words, my employer is not paying me to kill myself.

I walk 10 mins every 1 to 2 hours and use that time to review. I try to find ways to solve problems in ways that are more fun, easier, and effective. So to me a 10 min break is a work requirement. Solving a stressful problem and not reducing the stress first is wrong. It isn't just something I do for my health, it is the way people are supposed to work because it produces much better solutions.

After 50 mins working on something very difficult my mind gets so mucked up. Often I discover a simpler solution during the break and end up getting my work done much faster.

Sometimes stress can peak and when that happens I just take a nap until it dissipates. Usually just 30 mins but there are times when it can take an hour or more. Again, I view the nap as doing work because often I wake up with a simpler solution that also has much less stress. If I can't find one, then I escalate the issue. Again, it isn't my job to absorb stress to the point where it degrades my effectiveness.

Please note, I don't work on production system being used by 100s of millions of users. I've done it; it was fun; it is not possible to reduce stress in that work so it is not worth the effort. I now make 2x as much and have almost no stress.


BTW, can anyone please suggest a good online compiler course for creating your own programming language with labs/exams/certs? I can find pretty good courses for almost anything but not for compilers... Something that would focus on handling grammar (LALR, LL, CYK etc), ASTs, semantics, types, code-completion, imperative/OOP/functional/logical/self-modifying constructs etc. or even NLP-to-AST conversion...

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

Search: