HNHacker News
TopNewBestAskShowJobs

pflats

2,152 karma · joined January 25, 2011

I teach mathematics and computer science and physics.

email: ask me

submissionscomments
pflats··on Big Calculator: How Texas Instruments Monopolized Math Class
iPads can use GraphNCalc83[1] and Apple Classroom on a teacher iPad/Mac to restrict students to the app[2]. I'm not sure if there's an android equivalent.

I still find using a touch screen much more frustrating than a calculator with physical buttons, but this is a legit alternative.

[1] https://acornaircraft.com/graphncalc83.html

[2] https://support.apple.com/guide/classroom/manage-app-usage-a...

pflats··on Big Calculator: How Texas Instruments Monopolized Math Class
Many of us do, but resetting the ROM will also wipe out all of the pre-installed "flash" apps that a colleague might want to use. It's a trade-off.

edit: or at least, it used to. Haven't tested in years.

pflats··on The LEGO Group acquires BrickLink
This reminds me:

A few years ago, Jacques Mattheij accidentally won a lot more bulk lego auctions than he meant to. His story of sorting through them with a homemade hopper/camera/ML/computer vision showed up on HN.

It's still a good read today. It begins at:

https://jacquesmattheij.com/sorting-two-metric-tons-of-lego/

pflats··on Every American Car Brand Is on the Bottom Half of CR's Reliability Rankings
But Tesla didn't say "we're new at this and we learned from it". They said it was a "supplier-related issue" that has been "addressed for cars in the field" and "resolved [...] with fundamental design improvements".

Nothing in the statement tells me that there won't be another "supplier-related issue" down the line. There should be controls in place for this.

pflats··on Every American Car Brand Is on the Bottom Half of CR's Reliability Rankings
I felt the opposite. Tesla's answer came across the worst to me, and reads to me with the over-specificity of a student making excuses for why their paper isn't done on time.

> "It was a supplier-related issue".

Passing the buck is really not a great look to start with. It makes the rest of the response seem like a series of excuses.

Tesla chose the supplier. Tesla built and inspected and sold and shipped the car with those parts. This is a Tesla-related issue. The only time Tesla should mention a supplier issue is in response to, "why can't you sell me a car?"

> "[It] did not pose any threat to vehicle safety".

That's good, but this isn't the safety survey.

> "[T]here was a[...] false service alert [... that was fixed] within two weeks of being reported".

I'm not even sure how to react to this one. Bringing my car in to be told "false alarm" is really not reassuring. And two weeks to fix a false alert doesn't help me - I've probably already brought it in for service.

> "This proactive approach to improved reliability is one of the reasons why Tesla is the highest rated car brand among consumers, according to Consumer Reports." (Paraphrased:) Our cars are the safest and best performing, and Model S is #1 in satisfaction.

To me, blaming a supplier for the issues is a terrible way to start, and this is likewise a terrible closing.

"You just fell in the rankings to come in 3rd to last in our reliability survey. Any comments?" "Our cars are the safest and fastest and we have always ranked #1 on your customer satisfaction survey."

Those stats are undeniably good. They also make me think those are the stats the company cares about a lot more than reliability.

pflats··on Congolese doctor discovered Ebola, but didn't get credit until now
I don't think they're particularly hard arguments to make.

Turing is the easiest:

What is a computer? What isn't a computer? If you can't answer that question, you don't have a computer. The Church-Turing thesis is the invention of the computer.

Lovelace and Hopper are notable for paradigm shifts (as much as I hate the term) in what computers "are".

Lovelace invented computers because the essence of the computer is the ability to perform computations, not just calculations:

Lovelace published the first algorithm (Babbage obviously had to have written a few to design an analytical engine) and was the first person imagine computers as more than just a flexible calculator. In particular, she was the first to use a variable to represent anything beyond the intermediate/final step of a calculation: she was computing the 7th term of a series, so she used series/loop indices.

Hopper invented computers because a general-purpose computer is a computation machine with a human-friendly interface. A "smart" lightbulb that runs embedded linux isn't a "computer" (until modified).

Grace Hopper conceived of abstract programming in human-aligned languages, and invented A-0, the first "compiler" (her term; now we'd call it a linker). Before Hopper, computers were only ever programmed directly in machine code; every step of a computer program was a specific operation. Before A-0, we just had computation machines, but no human-centered interface. After A-0, we had computers.

Zuse would be a perfectly excellent 5th name, as would Church, Godel, Herbrand, Bohm, and many others.

pflats··on How to Turn Physics into an Optimization Problem
I'm not sure what the author's target audience is, but:

> But we know from high school physics that a = v' = p''

It would be exceedingly rare to see "p" used as the position variable in high school physics - it's almost exclusively reserved for momentum.

Most high school students do 1D physics with position as "x". Those who go on to study more physics usually use "s" as their displacement function/vector and maybe "r" as a position vector.

(Also, the overwhelming majority of high school physics students never touch calculus-based physics -- only about 50-60 thousand students take the AP Physics C exam each year. 5 times that take AP Physics 1, and even more take non-AP Physics.)

pflats··on Scissors Congruence
Thanks for asking for it, then! :)
pflats··on Scissors Congruence
Generally, in mathematical publishing, when someone refers to a book by the author's name, the title is (essentially) the topic.

Without clicking the link, I'd bet dollars to donuts the book is titled "Hinged Dissections", "Hinged Dissections: A Pivotal Analysis", "Hinged Dissections: Swing Sets", etc.

edit: it's "Hinged Dissections: Swinging and Twisting". I prefer "A Pivotal Analysis".

pflats··on Is Stack Exchange in violation of NY labor law by using volunteer moderators?
I like your point, but I go back and forth on this. Rules are different for non-profits and volunteers, so let's make sure we're focusing on a for-profit function hall, not a local community center.

As far as I can tell, Reddit exerts minimal control over its moderators, and seems to treat them like normal users who happened to get more buttons to press (perhaps by design for this very issue). That seems to me like they're not unpaid employees.

At the same time, I'm reasonably certain that if the moderators of, say the "aww" subreddit, decided as a whole that they were only going to use their moderator powers 5 times a day each, Reddit would step in.

And that brings me back around the other way. Reddit relies on its moderators, for sure.

But is the lack of control they exert over mods the true status quo? Or is the lack of control just because it's convenient?

If I'm running debate club at the function hall and it gets wildly popular, the biggest scene around. I'm sure the owners would be thrilled. If I then decide that anyone who says "um" more once is no longer welcome, I imagine the popularity would wane. The hall might be really cranky about lost concessions. They might try to find someone else to run their own debate club and counter-program mine. They might even cancel my lease and get a new debate club going in the same room. But they're not going to step in and replace me as the moderator of my own debate club.

So... I don't know!

pflats··on Apple Developer Documentation Is Missing
Also, a lot of other languages (Python, Ruby, JS, etc.) can do the same thing with their OR operator:

    b = list.next.to_s || "Reached end of list."
If list.next.to_s is non-nil, then the OR statement is short-circuited and list.next.to_s will be assigned to b. If b is nil and "Reached end of list." is non-nil, then OR statement will return the string literal to be assigned to b instead. Thus,

    a = b || c || 0
would be the equivalent for those languages.

edit: One BIG downside to this I forgot to mention at first: If nil and a false value are both possible for a variable, then this construction can betray you and break your heart.

pflats··on Skin cancer: Half of people surviving advanced melanoma
> That sounds like checkpoint inhibitor immunotherapy.

You are correct. That is because the article is about checkpoint inhibitor immunotherapy (specifically yervoy/ipilimumab and opdivo/nivolumab).

pflats··on Skin cancer: Half of people surviving advanced melanoma
As the article says, this immunotherapy essentially works by turning off some of the immune system's "don't attack your own body" safeties. This frees the immune system to attack the cancer (provided it can identify it).

One big advantage of immunotherapy is that the therapy causes a long-term (permanent? I'm not sure anyone knows; the drugs are less than a decade old) change to the immune system - the body continues to attack the cancer even after the drug treatment has ceased.

If you put these two things together, however, you might see why the side effects can be so bizarre. Your immune system might decide that the liver looked at it funny one day, but then decide that the GI tract is actually the real troublemaker a few days later. And since the immune system change persists post-treatment, so do the side effects.

These side effects can (usually) be controlled with corticosteroids (hydrocortisone/prednisone/etc.), which have an immunosuppressant effect. Of course, long-term corticosteroid use has its own severe side effects (plus severe dependency issues). And if you're suppressing the immune system, then you're suppressing the mechanism that the immunotherapy uses to fight the cancer in the first place. The treatment and the side effects are two sides of the same coin.

pflats··on Go is Google's language, not ours
Go modules is exactly the reference case, but let me expand on that a smidge, because that was when this become crystal-clear to me.

There's one exchange in a blog post linked from the article[1] about dep/modules that I think is illustrative of the entire issue (double >> are quotes in the article from Google/go, single > are commentary from the linked blog author):

>>Although it was a successful experiment, Dep is not the right approach for the next decade of Go development. It has many very serious problems. A few:

>>Dep does not support using multiple major versions of a program in a single build. This alone is a complete showstopper. Go is meant for large-scale work, and in a large-scale program different parts will inevitably need different versions of some isolated dependency.

>Russ [a member of the Go team] has asserted this from day one, and has brought several examples out in evidence, but has simply not convinced the committee that it’s true. Calling it a serious problem, let alone a showstopper, is a significant overstatement. The strongest claim that can be made on this point is that it’s a matter of opinion.

That, to me, is that. Go is Google's language, and Google said that for them, not supporting multiple versions of a dependency was a showstopper. The community read that and saw it as a point for debate, and the author continues to try to debate it in the article.

And that's the issue! It was not a point for debate. Google was being forthright. Google was saying "from day one" it was a literal showstopper, and the community seems to have read it as a figurative showstopper. Who was right in this instance is irrelevant; if the community wants to litigate Google's decisions rather than integrate them into their tools/patches/etc., then the community will not get those things adopted into go.

[1] https://peter.bourgon.org/blog/2018/07/27/a-response-about-d...

pflats··on Unveiling the first-ever image of a black hole [video]
I think you've got a typo here: points should be 0-dimensional.
pflats··on How I'm able to take notes in mathematics lectures using LaTeX and Vim
That's... not true, and not supported by the study you linked.

In the study, there was no measured difference in memory between the two note taking styles; the groups' factual scores were not significantly different in any of the tests.

Where things vary is the non-memory questions: are the notes helping you understand and apply the material better, and how advantageous are they to your studying?

In both of those categories, handwritten notes win out.

Finally, there is no "because"; the authors can only speculate. I am not aware of any studies that can actually purport to say why handwritten notes are better.

pflats··on Report examines origins and nature of 'math anxiety'
The basic times tables are a big sticking point in secondary mathematics. Because polynomial work depends heavily on factorization, students who cannot readily see that 56 = 7 * 8, and then apply their elementary operations skills to say 7 * 8 = (27) (8/2) = (47) (8/4) will struggle more than those that can.

You can develop skills to compensate (e.g., starting with small primes and working up instead) but it's still an extra step in the process.

This does not necessarily affect a student's overall understanding of polynomial functions, but can hang over their head in the actual work with them.

pflats··on Report examines origins and nature of 'math anxiety'
In my experience as a math teacher, there's a lot of sources of math anxiety. There are a few I see the most:

* Stereotype threat.

* High school students thinking "I was good at math in 3rd grade, so I need to be good at math now."/"I was bad at math in 3rd grade, so I will be bad at math now." while not taking into account the differences in the subject and themselves over that time.

* Students never being told that math is actually difficult and requires perseverance, encountering a struggle for the first time in math, and taking it as a personal failing rather than the expected order of things.

pflats··on A Brutal Look at Balanced Parentheses, Computing Machines, and Pushdown Automata
Beyond that, I have taught theory of computation in the past, and I think the rest of the article is a solid writeup. The DPA section might need another pass; that felt the most uneven. Things that jumped out at me:

- If the audience if programmers unfamiliar with automata theory, I am not sure how many would know what a Turing machine, von Neumann machine, or even a program counter is.

- Clarifying what is meant by "internal" and "external" state.

pflats··on A Brutal Look at Balanced Parentheses, Computing Machines, and Pushdown Automata
> Asking someone who hasn’t been recently exposed to computing theory to write a balanced parentheses recognizer is asking them to reinvent the basic research of people like Kleene and von Dyck, extemporaneously. And then write code under the interviewer’s watching eye. That is unlikely to show these candidates in their best light, and the results become very uneven.

> Outside of a special-case like certain CS students, this question is likely to give very inconsistent results, and those results are going to be dominated by a candidate’s recent familiarity with the underlying problem, rather than their coding skills.

> In most cases, that makes for a bad interview question.

This only makes it a bad interview question if the goal of the question is to only hire the candidates that can code the solution.

Otherwise, it can be a very good interview question. How do they go about "reinvent[ing] the basic research of people like Kleene and von Dyck, extemporaneously"? What questions do they ask? What ideas do they come up with? What resources do they say they would consult? Under pressure, how do they behave? If they make a mistake, are they coachable? Do they lash out or double-down on mistakes? If they mention using a language's regex, do they understand the performance tradeoffs of various different features?

There is a lot to see by asking the question beyond just "whether or not candidate X can code a solution".

pflats··on Spotify’s Podcast Aggregation Play
I bet dollars to dimes that they will cover it in a podcast and that podcast will be exclusive to Spotify.

I would predict they keep doing 'Startup' as-is with its focus on other companies, and launch 'Acquisition' (or whatever) as an exclusive with excerpts of it in 'Startup'.

pflats··on Nearly Half of Game Developers Want to Unionize
I also worked for a construction union in the northeast, and our employer sent the worst employee's pay check to the job site via same-day courier to ensure that, once duly compensated, he could be immediately dismissed. The rest of the crew was thrilled to see him go. Construction is dangerous work, and none of us wanted him around.

At the same job, another employee, young apprentice, was found napping. He popped awake and was apologetic. Partied too hard the night before. The foreman sent him on a coffee run to get his head together. He wasn't fired, presumably because the foreman never reported him, and (at least for the rest of that job) it never happened again. Almost 20 years later, he still probably gets shit for it.

Bad employees can coast by in any job, especially hourly ones where the upper management is rarely onsite with the workforce. First dude got fired in short order despite the job protections. Second dude didn't, but (to my knowledge) not because of any union regs.

Anyway, I digress. There is, of course, nothing preventing some union horror story from taking place. There is also nothing preventing even worse labor exploitation from taking place (and we're already at 80+ hour weeks in some cases).

The biggest difference, though, is the labor market itself. The laborers in construction unions are temporary hires for a specific job. At the same time, most construction unions are craft unions with apprenticeships, where each new employee represents a risk/investment to training that person for many years. Nepotism abounds, because if you train a new hire for, say, two years, then they wash out of the program or leave to study engineering, they could have spent that time and energy training someone else.

By contrast, I would expect most gaming unions to look more like a public employees' union. It would represent permanent employees of a company, likely salaried. Not much would change in the hiring process outside contact negotiation. You get the job? Congrats, you can join the union.

pflats··on Nearly Half of Game Developers Want to Unionize
>In the private sector, teachers get paid much better and have the freedom to actually run their classroom in the way they see fit.

While this might be true wherever you are from, it is definitely not universal. Every US state I have lived in has been the opposite.

At a private school, the advantages to teachers are the student base is self-selected and can be expelled, and the school can teach things a public school cannot (often religious).

At a public school, pay, benefits, and job protections are much better.

Being able to "run your classroom the way they see fit" is a school-by-school work culture thing, but a teacher with more job protections would always have more leeway in how they ran their classroom. A teacher working at-will could never truly run their classroom the way they saw fit, because "do X or you're fired" is always a possible ultimatum.

pflats··on Nearly Half of Game Developers Want to Unionize
>If there were a unionization effort that focused on 1) a hard 40-50 hour cap on work hours (or with paid overtime) and 2) enforced profit sharing plans, I could support it.

>The current main unionization effort basically says "things will be better for everyone" on their FAQ. Total bullshit.

What is your familiarity with how a union works? An industry-wide unionization effort cannot effectively state what the future will hold.

When employees decide to try to organize a union within their company, they decide what the issues are. Their task is to convince their coworkers to join the union, so they will be focusing on the pain points unique to their own employment situation. Maybe in one company, it's crunch time, while in another, it's keeping a more consistent labor force despite project sizes changing wildly over time.

The new union will then negotiate a contract on behalf of its members. Each new union will be focusing on different things.

An industry-wide organizational effort that focuses on work hours and profit sharing would not catch the interest employees at a shop with good hours, good pay, but zero job protections and inadequate health coverage (for example).

pflats··on What Made Gödel’s Incompleteness Theorem Hard to Prove
The New Turing Omnibus has a good chapter on the Incompleteness Theorem; it covers the basics in 5 or 6 pages, if memory serves.
pflats··on Pocket Casts acquired by NPR
NPR One was toxic for NPR (the national company) in their internal politics. Smaller local stations fought back against having to promote the app on their broadcasts out of fear it would drive their local listeners away.

http://www.niemanlab.org/2016/03/npr-decides-it-wont-promote...

pflats··on High-Paying Trade Jobs Sit Empty, While High School Grads Line Up for University
>Who considers 55-60k "high paying" especially when the job contains potential life threatening risks and other health issues.

These interviews are with apprentices! They're still in training and they're make $55k+ with benefits.

Depending on the trade, an apprenticeship usually lasts 3-5 years, with pay increasing along the way. By the end you'll be a journeyman, earning probably 50% more per hour. If you're a specialist or a leader (foreman), you'll get more pay on top of that. Call it an average 4 years, that's a six-figure advantage over someone who went to college, assuming they invest nothing and the college student pays in cash.

Being union and hourly also means they will get overtime when the crunch comes. And it will. An executive somewhere will always change their mind and decide they want Y instead of X.

>I wouldn't do much of that dangerous and exhausting work for double that pay range and I would still make less money than I do sitting at a desk now.

Industrial construction work in particular can be hard, but I wouldn't call it exhausting. You get less of a workout than you would in the gym—you need to be able to do it 40 hours a week, after all.

>I can put in <35 hrs a week, run errands during the day, work from home in my underwear, meet friends for long lunches.

Back when I was in an industrial trade, I could show up to work, do my job and that was it. I'd go home with a nice gloss of sweat on me, take a shower, and feel good. I took zero stress home with me. I looked damn good.

Most importantly to me, though, at the end of the job, when I was talking to someone or just reflecting on my own work, I could point to a hotel, an office tower, a bridge, a federal building, and so on, and say, "We built that. I built that." And I did. And it felt good.

pflats··on Microsoft makes AI training courses available to the public
Speaking as a CS educator, I agree, with a caveat:

In my free time, I took the big Coursera course, and it is (was?) also tied into a proprietary toolset, GraphLab. They have "you can also do this in pandas" instructions on lab assignments, but the instruction and tools are aligned to GraphLab. I imagine the vast majority of students will not even consider using pandas.

Graphlab Create has since been open-sourced (as Turi Create) by its new owner, Apple. I didn't have a problem with the setup back then.

Stressing over toolsets is like stressing over your first programming language. It's counterproductive. You will do a lot better by finding a source of instruction you trust and a toolset you can work with, and then actually making something.

Quality instruction vastly outweighs the tradeoffs with learning a new language/api/etc.

From having skimmed the Microsoft course's offering, it looks like it would prepare a good student to understand and apply the algorithms to make models, but not to implement the algorithms themselves (which the Coursera course does do).

Which is fine! I could tell you how to implement elliptic curve cryptography and prove most of the mathematical underpinnings, but I have no intention of ever writing an implementation myself.

pflats··on Wyoming Passes Forward-Thinking Computer Science Education Bill
Not bad.

The best change in real-world implementation is probably going to be letting high school kids take CS for math or science credit. Opens up a lot of options for students.

The next big issue:

"Each school district within the state shall provide educational programs sufficient to meet uniform student content and performance standards at the level established by the state board of education in the following areas of knowledge and skills."

Now the BoE has to establish good CS standards. I don't really love the CSTA standards (my issues with which are beyond the scope of this post) but they're a decent starting point.

http://www.csteachers.org/page/standards

pflats··on How to Study Mathematics (2017)
There's nothing wrong with intuition, but intuition does not write proofs. It can help you write proofs, but you need more than that.

To pick an example:

Intuition is great for understanding the intermediate value theorem. If the temperature was 40 degrees at 8 am, and is 60 degrees at noon, it must have been 50 degrees somewhere in between.

Why, though? How can you guarantee that there will always have to be a time where it was 50 degrees[1]?

[1] provided that temperature is real-valued and temperature change is continuous, the debate of which I'll leave to the science people

← PreviousPage 2 of 14Next →