skysight-inc/HackerNews huggingface dataset:
I spent the weekend researching, implementing, etc. air filtration as one of those affected by the CA fires. It was worth it!

The first step for me was getting a device to measure particles in the air. The air quality index (AQI) is an aggregate score that is made up of contributions from several harmful components. Of these, the quantity (weight/volume) of small particles (<2.5um) is often the large contributor. This is called the PM2.5.

Directly measuring PM2.5 is very hard, requiring a device that eliminates the larger particles from the air (typically a cyclonic separator it seems) combined with some way of capturing and weighing of the very small quantity of remaining particles (we're talking ug/m^3).

Many home air quality sensors instead measure the count/volume of particles larger than 2.5 um and call that the "2.5um measurement". You can see the problem. I bought a laser particle counted called Dylos DC1100 Pro. The Dylos measures particles counts larger than 2.5um as is common, but also counts particles larger than 0.5um. Of these two numbers, the 2.5 count is only vaguely correlated with the actual PM2.5 measure, but the 0.5um count is highly correlated.

A bit of internet research (it seems many people have used the Dylos meter in various projects) and I was able to construct a scale to correlate 0.5um+ counts to PM2.5, and therefore AQI. (0.005*count~=ug/m^3)

OK, all that done, to the filtration. First, I installed 3M 1550 MPR furnace filters (~MERV11). The "1550" is a measure invented by 3M 'MicroParticleRating' (or something) and is supposed to speak to how well the filters remove small particles. However these furnace filters don't really knock down very small particle counts in once pass. Sure enough, putting the particle meter at an air duct, the large (2.5+) particle count was way down, but the small particle count was only down a little bit (15-25%?) from the ambient air. Net effect is that after running for several days my house numbers are about 1/3 of the outside air counts.

I also bought a BlueAir HEPA filter for my bedrooms. HEPA is supposed to be 99+% effective for particles 0.3um and up. This filter is in a whole different league. The particle counter placed on top of the filter returns near-zero small particle counts and does a much better job eliminating smells. The room they were in got down to 1/10 of outside levels.

Overall I'm glad I got both types of filters, we are sleeping better, and the meter was very helpful to understand what was going on.
> I've often wondered why people would conduct attacks if the attacks don't actually end up doing anything.

Here's one good reason: to test their tooling and botnet. If you've been hitting smaller targets and taking them offline reliably, you might not even max out the bandwidth of your botnet. You have to have something that can handle the traffic to measure how high you can go. Even if not, you might just want to continue testing. It's going to be important if you're selling DDOSes.
https://www.youtube.com/watch?v=y2___qaG_9Q

https://www.youtube.com/watch?v=QTLn3goa3A8
The Most Annoying Website – JSConf US 2018 [video]
Yes. I set that up at work and the core dumps of release binaries became infinitely easier to debug. One thing I noticed with gcc and optimised release binaries is that the debug information gets incredibly large the more you optimise. With -Os and a handful of binaries totaling about 50MB, you can end up with a Gigabyte of debug information. That quickly filled up our build server drives.
It is surprising that the insurance industry isn't regulated.
Excellent page.
In a way--my question boils down to why this was written in the first place. Engaging with literary criticism is an invitation to perpetuate literary criticism :P
You're exaggerating :) underwear wasn't that problematic to find in early-1960s USSR.

As for spending billions on vanity project, the manned flights have reasons other than political. Check here - http://www.lettersofnote.com/2012/08/why-explore-space.html .
The author was maybe the best engineer I've had the pleasure to work with directly in my 13 years in the industry. What a treat to read her internal thoughts on the job. Highly recommend her other posts on e.g. measuring performance of engineers https://anaulin.org/blog/why-do-we-have-performance-evaluati...
If Oracle gets its way, code smells will be copyrightable as well.
World's Worst Salt Shaker
What other cities offer this or have foundations that offer this. The article has no mention of said cities. Can anyone help elucidate?
> “The general go-to clean room/industrial filter stack is Prefilter(F5 Bag)->HEPA->Activated Carbon.”

yup, i bought a blueair 211+ (https://www.blueair.com/us/blue/blue-pure-211/1695.html), that has exactly those filter elements in a nice (if bigger than expected) package. this model was recommended by both consumer reports and the wirecutter (until recently, cynically thinking they didn’t pay wirecutter’s “endorsement fees”). it’s effectively eliminated my constant coughing, sneezing and runny noses before i got it.
It's an unfortunate fact of life: You don't know what you don't know ;-) Especially as a programmer, you have to have the attitude that there is no shame in not knowing, or not being able to do things. 30 years or so in this industry and there are lots of things I'm not good at. In fact, as I spend more time, I discover more and more things that I don't know at all.

I've used this analogy before. When you first start, imagine that you are standing on the ground. There are lots and lots of things you can see. There is a lot to learn. Eventually, you get pretty good at everything you can see. But as you get better, hopefully you start travelling upwards. It broadens your horizons and you can see more.

Often this is an unsettling feeling. You think, "I've worked so hard, and there is still more???" Some people give up, "I'm fine doing what I was doing. This other stuff isn't necessary!" However, this will lead to an early exit from this career. Being a programmer is about always learning and always expanding. Things change so fast and you have to keep up.

As you learn more, you keep travelling upwards, expanding your view even more. It's amazing because when you thought there was a lot when you started, as you move upwards, the amount of new stuff you can see starts to accelerate. It's easy to get overwhelmed. Don't worry, though. Just pick stuff you are interested in. Don't rush. You have plenty of time. However, don't stop either.

Eventually, you will get so high that the earth is just a round ball. For a long time nothing will seem to change. You'll probably think, "I've learned everything! I'm amazing!". And then you will run across the moon. "Woah... I know nothing". That's what it's like when you start to get more senior. You keep expanding your view, but things don't seem to change, until you see some new island of stuff that you never really imagined before. Again, it's easy to give up and to think, "I'm a senior developer and I'm world class in X. What do I need with the moon?" But that's a trap. It's the easiest way to ensure that you are seen as the strange old doofus in the corner using crappy, ancient techniques. Learning, learning, learning every day for the rest of your life. That's what being a programmer is.

I hope that helps!
Do you have any recommendations for breathable rain gear? I basically can't use my rain gear unless its below 40 degrees, because I'll be drenched in sweat. I'd rather just change into dry clothes when I get there.

I also second the fenders, if you live somewhere that isn't California, you need fenders if you're going to ride. A seatpost mounted fender is better than nothing, but full coverage fenders with a mudflap will keep your shoes and face dry.
A very common compiler architecture for functional languages is to use a combinatory language (dataflow like graphs) as the IR, and have a more usable frontend language that has variables and binders.
smells like burnt money
If you really think it's unfair then you would have moved to Indiana to downward adjust your salary. Sounds like posturing to me.
There's actually several features here that could radically change the way I structure certain types of code -- notably async streams and default implementations, in addition to nullable reference types -- and it will be hard not too look at the older methods as legacy.

These changes will have a comparable effect to what LINQ, generics, lambdas and async/await all did, and when you look at code that was created prior to those features it definitely looks 'legacy' today.
Retail Brokers and Price Improvement
It really depends. A lot of people, myself included, use their free tier service which is excellent for the grand price of zero, however it does not really come with much real DDoS protection. Script kiddies might give up after seeing an IP address belonging to CF, but the more experienced and determined attackers will keep ramping up bandwidth until Cloudflare takes notice and cut you off because you are now more trouble than worth. Free tier breaks only with a little bit of traffic, whereas paid users have some headroom but it is not infinite. From their point of view it's still preferable to lose you as a customer than having every other customer's site lagging because of you.

Apparently even business tier is not immune, Brian Krebs' security blog was DDoS'ed off Akamai after the then-ongoing mitigation cost ended up being far more than they could agree on, and it took him days to find another provider[0].

[0]:https://krebsonsecurity.com/2016/09/the-democratization-of-c...
I built a similar model over the weekend: https://twitter.com/valarauca1/status/1061362369702445056

Used an existing box fan. I had to buy duct tape ($3) and the filter I used one rated for 0.1micron pollen and viruses cost me $17 (rounding up after tax). I cut up a plastic safeway bag to make the seal around it. Seeing as most smoke particles is around 2.5-.5 micron I figured it'd be okay.

I threw this together at about 7am on Saturday after I woke up coughing my lungs out at 6am (I live in the bay area). Just a quick trip down the the Homeless Despot to get the parts and throw it together.

All things consider it works great. The air in my apartment is easy to breath, but if I leave without a respirator (even today) I cough uncontrollably.

---

As of Tuesday evening it has been running for 4 days straight (no overheating). And has started to become noticeably brown. Needless to say I'm thankful for it.
> On Apple’s devices, whether it be an iPhone or an iPad Pro, I believe that the pages always span 16kB and that this cannot be easily reconfigured.

This is correct, and has been true since the A9: https://developer.apple.com/library/archive/documentation/Pe...
Right-click on the drive -> Properties -> General.

Disk Clean-up.

Clean-up System Files.

Windows Update Clean-up (and Temporary Windows installation files).

Ok. Ok.

Enjoy.
In the bay area, it's still possible to ride to work for a significant distance without a shower.

I used to have a 12 mile commute that took nearly an hour - It's almost always cool in the morning, and I'd ride slow for the last mile or so to minimize sweating, then change into my regular clothes at the office. No shower or wipedown required. On the way home I'd typically just wear my regular clothes.

I don't know how you're ruining your pants, but if it's bike grease or getting your pant legs sucked into the chain, a simple ankle strap will let you avoid that. By using a drive wax lube (I use White Lightning, but there are others), that also minimizes the dirt transfer if your pant leg does brush against the chain or chainring.
Is something like phased array lidar useful? The wavelength is so small I could see how the interference patterns might not be useful
80% of all software is glueing frameworks together to do CRUD. There's an art to do that right as well, especially very large systems with lots of legacy. Readability, SOLID, safety. It's not something everybody has a talent for.

But it doesn't need particular deep CS knowledge. There are people that program for 30 years, get paid six figure salaries and "never needed that shit". And they're really good at their jobs. But sometimes (less often than it's required to pass for an interview) you're really expected to dig that deep because you need to solve problems that existing frameworks and libraries don't handle.

Background: learning basic CS stuff after 20 years of programming professionally. You will never learn it on the job.
Well, different people have different taste buds, how are you going to make sure there is a universally agreed representation, of taste?
Security should be the default. I don't think it will cost much more to make them secure relative to what medical hardware already costs; adding encryption to the microprocessor in a state-of-the-art implant isn't going to be a hefty line item on that particular BOM.

Think of it this way--any life-critical machine should have at least some consideration payed to security during design. Even non life-critical machines need security, so is it acceptable when we entirely ignore it in the whole field of medicine? If we leave it that that way, then yes, be utterly certain that it will be exploited somewhere by somebody. All information security paranoia is proven correct on a long enough timeline.

Ask any infosec professional--does _____ system really need security? The answer is going to be yes, regardless of what's in the blank. We've learned this many times with many devices which we used to think nobody would ever bother to tamper with or that couldn't be made to do anyone harm. Every time our hubris brightly illustrated and we finally realize that yes, every networked device has the potential to be crucial to somebody and it all needs at least some consideration toward security.
I just started working remote - I have a separate office, but it's not 100% for work (I have a 3D printer and other fun distractions in the room). I was a bit concerned at first with having a clear separation and that it being a "work" space would ruin it's appeal during off hours, or I'd be tempted to play when I should be working. I found that not to be a concern by only doing work on my work computer and only doing everything else (except personal email and light browsing) on my personal computer. I have a docking station and plug in one or the other to set my context. This seems to work well, but only time will tell if it's sustainable for me.
Thank you to everyone who has replied to my rant.

I felt of low value for not being able to provide immediate help for most of the problems that she's being taught to work on.

Some of the examples (since some of you were asking for them):
https://github.com/cs50/docs/blob/master/_pages/2018/x/psets...

https://github.com/cs50/docs/blob/master/_pages/2018/x/psets...

I realise that I may have written my original post a little hastily as I was feeling quite strong about having inadequate knowledge to solve these problems.

You've all been super nice to me, and I can understand where you are all coming from.

Again, thank you.

As an aside, the problem that I was stuck on earlier, I managed to solve through a bunch of trial and error, so I'm chalking that one up as a win for tonight.
I'd love to listen, but anchor.fm is yet another closed podcasting platform that doesn't let the listener download the audio.

No thanks, I want to listen my way, not stream it from you.
In that case, why be in the cloud at all? I still think it would be cheaper to have a colo in two geographically dispersed areas on bare metal.
Bitmain co-founder Jihan Wu is no longer on its executive board
IIRC their revenue last year was 6 figures. That's very impressive growth for a somewhat crowded space.
>No, it isn't. How can you prove consumer harm if there's more choice at lower prices?

I'm not sure if you're being deliberately obtuse or really don't understand. To be extremely clear, the important comparison would be the market as it is vs a hypothetical one where Google didn't abuse it's position. Comparing now to what was 13 years ago is meaningless in the tech world.

>There are plenty of other vendors to choose from. Did you miss all the "we switched from Google Maps to XXX" posts on Hacker News?

There's really not. At best there's plenty of vendors reselling Open Street Map. And they don't really match Google Maps. Which is why they have a tiny market share compared to Google Maps.
Ask HN: Heroku at scale?
Ive been a huge fan of Heroku since I first used it a few years back. Its amazing how quickly you can get up and running, deploy, add SSL, monitoring etc. The polar opposite of AWS. It has worked for me for a variety of applications, my only issues being their region support as it doesn't match up with where our customers are, adding latency to the app.

However more than one person has mentioned to me that its not a suitable platform to scale and that eventually we will run into issues. I do notice that they have quite a few outages in the past few months, but I have no benchmark really to compare to running say direct on AWS.

Does anyone here have any experience scaling relatively large apps (say dozens of dynos) on Heroku? Or perhaps mission critical apps? Did you run into any issues? Or share these concerns?

As background we are running a B2B business with a few different websites and mobile backends. Various languages/frameworks. There is a transactional component. Relatively low RPS.
Uber has done the hard work of normalizing ride sharing everywhere and giving consumer pricing expectations of rides, just for Google to sweep in with it fixed-cost self driving car ride sharing service to start collecting massive profits. It is going to take a while to spread nationwide but Google will do it eventually, really just a matter of time (not even money for a company as rich as Google). I'm really wondering where Uber goes from here.
I wonder if you can put a filter on both sides of the box fan.
To be fair to "management," having invaluable company contributions that could tank a company were that contributor to no longer be there is a huge risk to all employed there that should be mitigated against.

It would be irresponsible of leaders in that company to make the company overly reliant on any one contributor.

I know I certainly wouldn't want to work somewhere that would implode if a single person left, and for any decent-sized company, I imagine many others would share that sentiment in terms of the risk involved. In fact, while I feel many of my personal contributions are valuable, I'm ALWAYS thinking about how I can automate/document/spread around my efforts so as to provide some resiliency should I get hit by a bus, etc.
Jurisdictions banning fossil fuel cars.

https://en.wikipedia.org/wiki/List_of_countries_banning_foss...
Alphabet is making $8 billion a quarter in profit currently. They'd probably love to have some worthwhile investment to sink that money into.
Okay, I'll give you the "triage" presentation. It's a combination of "where to start" and "what I've actually used in industry."

1) Algorithmic complexity: Study why naively adding to the end of an array or the end of a string results in O(n^2), while doubling the size when you increase the storage results in O(n). That one tidbit has comprised some embarrassingly large fraction of the "consulting" I used to do working for a language/VM vendor.

2) Graph theory. Study BFS and DFS and implement them a few times to do things like solving a maze. Get comfortable with those until you can "run" them in your head when looking at a problem specified on paper containing a graph, and you can see uses/consequences. This will both keep you out of trouble and can be a starting point for further study.

3) Concurrency. Learn about race conditions and deadlock. Figure out some tools and patterns for dealing with them. Use them to write a chat server and figure out how to automatically QA it until you can break it.

4) Transactions. ACID. Read up on why you have ACID transations, and what can go wrong.

That right there is good for some huge percentage of what could really get you into deep trouble.
The language they introduce, Π, is essentially a simple concatenative programming language where all of the primitive combinators happen to be reversible; the graphical depiction is essentially the same as graphical linear algebra¹, which is no coincidence. Concatenative combinator calculus is related to combinatory logic—specifically, it’s a variation that replaces application of combinators with composition, leading to a bunch of nice mathematical properties. Both of these logics have the nice feature that you can syntactically restrict the substructural rules of contraction (dropping), exchange (swapping), and weakening (copying): for example, a well-formed program that doesn’t use the K combinator to drop a value is guaranteed to be linear, i.e., not destroy any information. This isn’t true in ordinary lambda calculus, where you can use a variable zero or many times, so you need additional checks on the uses of a variable to determine whether a function is linear, affine, &c.

I like the theory of concatenative programming languages because they provide an elegant compositional/dataflow-oriented style of programming, have deep connections to linear logic, Hughes’ “arrows”, effects & coeffects, and quantum/reversible computation, while also admitting very efficient implementation on classical hardware.

I’m (very slowly) working on a statically typed low-level concatenative language that’s meant to provide all the nice high-level typed functional language features like higher-order functions, pipeline-style programming, and effects tracked in the types, while requiring no runtime support such as a tracing garbage collector—the ultimate goal is to allow a restricted subset that doesn’t even require a heap allocator, so you could use it to implement e.g. a kernel or device firmware. I hope that concatenative languages find their way to the mainstream as the basis for programming quantum and extremely low-power computing devices (which we will need in order to reduce emissions).

¹ https://graphicallinearalgebra.net/
PhD student here doing neuromorphic computing and running deep learning models on analog hardware. The 'neuromorphic computing" is a vaguely defined term, which can mean anything from developing novel Spiking NN models to the design of hardware capable to run those models (e.g. TrueNorth). Wetware computing is probably even lesser understood area. Neither has much to do with deep learning field, which does not use spiking NN computation.

On the other hand, there are very promising research directions precisely in the intersection of neuroscience and deep learning (e.g. biologically plausible credit assignment problem, learning algorithms of the brain, objective functions in the brain, sensori-motoric integration, etc). It's rare to find a person with solid understanding of both fields, especially in academia.

If I were you I would look at residency programs at big companies (Google Brain, Facebook AI fellowship, etc). Also, there's a company called Numenta which is probably looking for people with your skills (they are trying to reverse engineer neocortex' algorithms). From what I heard, those places give you some freedom to choose your own problems, encourage publishing papers, and provide very bright people as mentors.
In fact IIRC people buy printbait considerably more than they buy actual newspapers.
You're restricting yourself from some opportunities by not knowing CS fundamentals.

Those are very common problems in programming interviews, and in those cases you would be disqualified.

If that bothers you (and the fact that you posted this question indicates to me that it does), then I would recommend taking the opportunity to learn along side your wife. You don't get the degree that way, but at least the knowledge is free. And your wife might like it, as a plus.