576 comments

[ 5.0 ms ] story [ 330 ms ] thread
Wow, that would be incredibly devastating if you had to take it over again. not everyone is able to devote weeks of their lives to these things.
This is the latest in a string of incidents where critical software systems, facing new pressure due to the pandemic, are catastrophically failing their users. I think what's happened in the past is that most public-facing software systems either a) were not really critical (because people had the alternative of doing things in-person), or b) (as in the case of all the ancient COBOL systems underpinning the US gov) had been made reliable over the years through sheer brute force as opposed to principled engineering. But in the latter case, as we saw with New Jersey's unemployment system, that "reliability" was fragile and contingent on the current state of affairs, and had no hope of withstanding a sudden shift in usage patterns.

Now we have various organizations - governmental and otherwise - hastily setting up online versions of essential services and it seems like every single one of them breaks on arrival.

We need some sort of standard for software engineering quality. I don't think this is an academic question anymore. Real people's lives are being impacted every day now by shoddy software, and with the current crisis they often have no alternative. Software that you or I could probably have executed better, but that the people who were hired to do it either a) couldn't, or b) didn't bother. It's nearly impossible for non-technical decision makers in these orgs to evaluate the quality of the systems they've hired people to build. We need quality assurance at an institutional level.

If not governmental, maybe an organization around this could be made by developers themselves. Not the "certified for $technology" certifications we have now, but a certification of fundamental software engineering skills and principles. A certification you can lose if you do something colossally irresponsible. At the end of the day, this dilution of quality is having a negative impact on our job field, so it concerns all of us. It leads to technical debt, micro-management, excessively rigid deadlines and requirements, which we all have to deal with. All of these are either symptoms of or coping mechanisms for management's inability to evaluate engineering quality.

> who were hired to do it either a) couldn't, or b) didn't bother

Or c) told the decision makers that it would take longer than a few hours to do and were told not to "waste" any time on it.

Regardless, there's this contentious relationship between decision makers and engineers because the former can't properly evaluate the work of the latter. Because of this, they either a) let bad engineers get away with stuff they shouldn't, or b) over-compensate and refuse to trust good engineers. It's a lose-lose.
We keep making a bunch of products where protocols and existing software would do just fine, while hitting fewer edge cases.

Know what would be better than the ten goddamn apps and the iPad and shit they're using for our kid's school? Mailed (or emailed) worksheet packets with guidance, recorded lessons on Youtube. Mail back the worksheets, have the food-delivering schoolbuses pick them up, drop them off at the school every week or so, or just do photos-to-PDF on a phone and email them. Or they could just give each kid workbooks and textbooks like they did when I was in school but that's out of fashion now for no reason. eyeroll

Several logins to manage. Apps that erase your work if you hit the wrong thing. Weird interfaces. Jank galore. Just use the fucking basics. You don't need a custom app for every single thing. Email exists. Use it.

> Several logins to manage. Apps that erase your work if you hit the wrong thing. Weird interfaces. Jank galore. Just use the fucking basics. You don't need a custom app for every single thing. Email exists. Use it.

Yeah, but if you do that, how will you funnel money from the school system into private companies?

> Mail back the worksheets, have the food-delivering schoolbuses pick them up, drop them off at the school every week or so, or just do photos-to-PDF on a phone and email them. Or they could just give each kid workbooks and textbooks like they did when I was in school but that's out of fashion now for no reason. eyeroll

I'm a college teacher and my wife is a high school teacher. Education is much more complicated than eyeroll suggests.

For one thing, teachers would not accept physical papers in the present state of the disease. Even if a district says papers are OK after they have sat for three days (or whatever), that means that (1) they get picked up delivered to some repository (2) they would sit there for days (3) the teachers come and get them (delivering to the teachers would mean more decontamination time) (4) they take a day or two to grade. So assignments on Monday might be ready the following Monday? Then the teacher writes an email, "John you did the wrong page. Please resubmit." It is just not workable. (On my assignments there was something like a 10% confusion rate, for instance where someone did 1-10 odd instead of 1-10. I sympathise. It is a confusing time.)

I did photos to PDF. After two or three weeks of back and forth with my students we got so that most of them would reliably send legible one-PDF-per-assignments. Again, life is more complicated than, "Any moron can do this."

Finally, email is not a panacea. Having a hundred students emailing their assignments is an invitation for disaster. I was able to go through the college's system (we use Canvas) so it kept track of who sent what and when they sent it. As this article points out any large system has issues, but these systems exist for a reason. I and my students had issues and just had to work around them. With patience and good will we figured it out.

That's what happens a lot in education. People have all kinds of life situations, there are all kinds of tech and comfort with tech, etc. It is complicated.

Folks who are not teachers but are interested in some of the issues could check out the last dozen or so epsidoes of Mr Barton's Maths Podcast http://www.mrbartonmaths.com/podcast/ which are about teaching from home for primary and secondary teachers. Really good stuff.

> I'm a college teacher and my wife is a high school teacher. Education is much more complicated than eyeroll suggests.

Wife's a middle school teacher and ~40-50% of the other people in my social circle (not via her & her colleagues, oddly enough) are teachers, too. What they've done here (this state, post NCLB) is get rid of comprehensive curriculums with prepared material (workbooks, sheet packets, textbooks) and now districts and teachers all come up with this stuff themselves, which is clearly wasteful—why have a committee at the state-level do this once when every goddamn district can hire a couple new people to handle curriculum and rope teachers into those same committees, because they don't already have so many friggin' meetings they're starting to overlap?—so yes, hard eyeroll at the trend away from textbook + workbook as a foundation for (middle grade and lower, at least) classes. The state could have made their own such resources several times over for the waste the current system has produced, if they didn't trust a company to provide it (as was usually the case in the past). The whiplash-inducing pointless policy shifts in education, usually implemented by what sure appear to be given their observed behavior certifiable morons, is tiresome and harmful to educators and families alike (we have both perspectives).

Now there are CDC suggestions that kids should have their own resources next year, but gee, we just switched away from textbooks + workbooks, which would have been great, to a mess of shared "learning centers" and junk like that (oh and got rid of all the indoor-recess toys in the kindergarten classrooms statewide to make room for those). It's pure fad-chasing, well-intentioned at best and the school admin version of résumé-driven-development at worst (and it's often the latter). When they accidentally stumble on an idea that might be good they fail to implement it correctly (i.e. they can't even follow simple directions or understand how games or human systems work, these highly-paid jokes of PhDs that run the schools). Very frustrating.

Maybe your schools are doing a better job than ours but there's no possible way the tech support load & assignment screw-up rate here isn't a bigger hassle here than if it were on regular ol' paper, including the effort of shuffling that around and disinfecting it, and I think they've actually done a decent job given the tools they're being told to use (webshit and apps) and the time they had to prepare. Hell they could probably buy some kind of UV disinfectant chamber for submitted papers for what they spend on all these stupid apps every year, stick a drop-box just inside the door of the meal-delivery schoolbuses and outside the school, and call it good.

What I know for sure: the only part of this where it felt like my kid was almost getting the kind of education they would in the classroom without a ton of extra effort on our parts, and it felt like we understood what they needed and what needed to be done about 100% of the time, was the first couple weeks when we did have organized packets of paper instructions and assignments they sent home before spring break just in case there were closures (they didn't yet know it'd be the whole rest of the school year, of course). And with the paper we didn't have to deal with "this login isn't working" and "I hit the wrong thing and now my work I just did is gone" and "what the fuck, I, the adult and a software professional, can't even find this thing they say is at the other end of this link (or where in the app this thing is supposed to be, or whatever)", and so on, and so on.

That's for the younger kids. For the older ones, drop-off rates have been... high. Many of those kids weren't even attempting the majority of assigned work, if they were doing any of it, by a week or two into this. Ve...

yeah my 6 y/o hates remembering passwords. Fear of getting her password wrong almost made her afraid to use computers at all
Time to set up a family 1password, or if you're up for teaching your family, keepass.
Not on school-owned devices :-/

(but for something like school app/site passwords, though best practice it may not be, "written on a sheet of paper, kept in a drawer" is in fact totally fine)

Sounds like the school owned device needs to come pre-installed with a password manager then, at least for school related activities.

> though best practice it may not be, "written on a sheet of paper, kept in a drawer" is in fact totally fine

This works, until you have to bring the paper to school where your kids friends will inevitably find the paper and login and mess with their stuff (source: I was that friend)

Oh, yeah, paper should probably be stored with your liquor and only pulled out when needed (or with your guns if you're that sort, I guess). Otherwise siblings will pull some pranks.
yes it's easier at home to have this stuff on the fridge for reference (also she can just ask me to login for her) but at actual school it was a real problem
I don't know.. I don't think we can do better than we are already. At least not at anything close to current cost.

In the case described in the article it's arguable whether the testing software was even the culprit.

I think you're correct in your assessment that top-down bureaucracies really struggle with software but I don't think the solution is to inject a top-down bureaucratic gatekeeper in the path of every software career.
I'm only talking about creating a certification, not enforcing which orgs do and don't use it. A lot of software isn't important enough for such a thing, but a lot of it is. The point is that even when decision-makers do want software to be highly reliable, they have nothing but very blunt instruments for attempting to enforce that, because they're working in the dark.
The same technologically incompetent leaders who manage failed software projects are going to be the ones to write these standards/certifications.

The real problem is a lack of technologically competent leadership. Many of the skills required to excel at technology do not overlap with the skills required to be a good leader. Then, both technology and leadership are difficult skills to train and develop individually. And lastly, the few people who are competent technological leaders would rather work for big tech where they will get paid so much more and would not have to fight with technologically incompetent leadership to set up good standards.

> We need some sort of standard for software engineering quality. I don't think this is an academic question anymore. Real people's lives are being impacted every day now by shoddy software, and with the current crisis they often have no alternative. Software that you or I could probably have executed better, but that the people who were hired to do it either a) couldn't, or b) didn't bother. It's nearly impossible for non-technical decision makers in these orgs to evaluate the quality of the systems they've hired people to build. We need quality assurance at an institutional level.

Even if you were to put this in place today (which I don't necessarily agree with) you would still need bean-counters to sign off on paying for replacement services for their sweat, tears and duct tape solution. A good half of the electorate and the politicians, give or take, whip up into a frenzy if a bureaucrat so much as looks at a dollar bill the wrong way, so I doubt this would gain any traction.

New sweat, tears and duct tape solutions are being created every day. Let's start by focusing on the ones coming down the pipe.
Which would still face the same problem: the government would rather pay multiple times for crappy software at a lower price than one big bill for quality software the first time.
That's not a problem unique to governments, although the consequences in that realm tend to be worse.
Or you can pay one big bill and still get crappy software.

It's difficult to evaluate the quality of software development contractors.

What matters to the bean counters is if it can be done without expensing something new, everything else be damned. Unless you can get a clear, popular government mandate to spend money to make things more efficient, this is not a palatable solution.

Given how large refactors tend to go in general, this also doesn't necessarily lead to good outcomes; even with a relatively technocratic administration led by Mike Bloomberg (relative to comparable mayors, at least), upgrading NYC's 911 system massively spun out of control: https://www.nydailynews.com/new-york/911-overhaul-2b-disaste...

18F released a pretty good guide about these topics but I can't shake the feeling that many organizations aren't willing to learn these lessons. https://github.com/18F/technology-budgeting/blob/master/hand...
Guidelines are well and good, but they aren't really helpful when the people who care about them can't enforce them and vice-versa. What we need is accountability when it comes to the engineers who work on systems that are critical to large swaths of society.
You think this was an engineering decision? These failing systems were probably contracted to a politically connected company that subcontracted to lowest bidder. Not only that, but that usually these systems were created with COBOL means that it was likely created a very long time ago and minimally updated as laws/requirements changed to be compliant but thats it.

Thats not the fault of the engineer(s). A surge in traffic in the 80s or whenever it was initially created very well may have been able to be handled as designed and its normal traffic in modern pre-COVID times was the equivalent of a constant "surge" when initially designed. It was already on life support and needed a rewrite 10 years ago. Some software engineering certification/quality board wouldn't account for 30 year old systems design and population. Those are political and budget/prioritization issues. It would be a near equivalent of a bridge that was built then ignored for 50 years collapsing when a modern 18 wheeler drives over it.

All the new systems getting spun up ASAP are just quick hacks to try and get some way of addressing the problem. They are bound to be full of failures by the nature of the rapid development cycle and current crisis. In a situation like this, a quality board like proposed would be granting exceptions left and right because theoretically, something is better than nothing.

> These failing systems were probably contracted to a politically connected company that subcontracted to lowest bidder.

And what if that government body established a policy that all contractors had to be certified engineers who hadn't lost their certification due to past negligence? Suddenly there's a much higher floor for "lowest bidder".

If the software engineers have the legal capability a current professional engineer certification does to tell the project manager 'no', that might work. Its still less about engineering capability, and more about leverage and protection against retaliation for pushing back on bad ideas/timelines. Even in traditional engineering disciplines, not everyone working on the project is a certified professional engineer, in fact they are usually the minority
Good engineering can't undo bad management/process. Project management is what we really should work on to improve software quality
> But in the latter case, as we saw with New Jersey's unemployment system, that "reliability" was fragile and contingent on the current state of affairs, and had no hope of withstanding a sudden shift in usage patterns.

"Reliable" and "Can survive a sudden shift in usage patterns" are extremely different things.

I think you have the causality backward. Engineering is about trade-offs. No quality guild will be able to wave those away. As long as the primary pressure is "get something that is functional enough at minimum time and cost" you're gonna have this.

(Software is particularly complicated because engineers, not just managers, have poor understanding of system quality and of each other's contribution quality. There's a combination of "it's not that complicated" complexity-blindness to business requirements and trade-offs that have to be traced through deep call stacks and across networks. We build things like chaos monkey - to prove resilience by seeing how hard it is to break the thing - because we don't have cost-effect techniques for actually understanding the system well enough short of operating it.)

They specify they support PNG and JPEG, the two most common format. Why is it their fault that Apple made HEVC the default?
Considering the market share of iPhone in this demographic, it's inexcusable not to correct for this — even if you disagree with Apple's decision on this.
Its their fault that the system did not reject the file, show any actionable error message or allow users to try again. Its also their fault for saying "take the test again in a few weeks" instead of "we fucked up, send us the file again today.
Missing HEIC support (and Apple support in general) is not an issue of quality; it's an issue of "knowing your customers". I doubt there could be any certification body for that.
It suggests that they didn't even bother to try the app on an iPhone, which is what probably half of their target users reach for when they need to take photos. That belies a significant degree of laziness and/or incompetence.
There is no "app". There's a website, from what I understand. Not everything needs to be tested on mobile. In their place I'd have left an option to upload non-supported formats "just in case" to leave a trail, without guarantee of acceptance; but this is not something I'd have expected them to do.

I'm also wondering how many iPhone users have that .heic setting at its default value, as opposed to having switched to .jpg.

I was using "app" in the broad sense.

> Not everything needs to be tested on mobile

It does when it requires taking and uploading a photo in the year 2020. Especially when its target users are high school kids. What adult is going to use anything other than their phone to take an off-handed photo to upload somewhere these days? Much less a child who probably almost never uses a traditional computer.

>>> I doubt there could be any certification body for that.

Plot twist: There is. It's a standard clause in software procurement contracts, especially for government.

"The application must be supported and tested on browsers with at least 10% market share, as defined by the yearly Gartner report"

Replace browser with device or what is relevant for the project.

> Missing HEIC support (and Apple support in general) is not an issue of quality; it's an issue of "knowing your customers".

The test portal "not responding" when receiving an unexpected file format is a quality issue. Not making it clear to the user that the upload has failed before it is too late is another quality issue.

You're right about that; I missed it. It should be transparent about invalid input, and this indeed is a non-brainer to include in a test suite or QA process.
(comment deleted)
I just wish these large organizations would be held accountable for failing to perform the single task we rely on them to do. The College Board has one job -- to administer exams. Experian has one job -- to keep financial data. But when they screw up this single job in a fundamental way, nothing seems to happen to them.
> If not governmental, maybe an organization around this could be made by developers themselves.

These exist. The ACM and IEEE CS are best-known, but there are also various national bodies (ACS in Australia, BCS in the UK etc).

> Not the "certified for $technology" certifications we have now, but a certification of fundamental software engineering skills and principles.

The IEEE Computer Society has such a thing, maintained in various forms since about 2002[0]. The ACM and IEEE CS also publish a software engineering curriculum that they are prepared to recognise[1]. They also have a jointly-published Code of Ethics[2].

I sincerely agree with you that our profession is mostly a disaster area. But one thing other professions have that we lack is (1) fairly worked-out fundamental theoretical bases, or at least long experience to draw on, and (2) legal enforcement of standards.

[0] https://www.computer.org/education/certifications

[1] https://www.acm.org/education/curricula-recommendations

[2] https://ethics.acm.org/code-of-ethics/software-engineering-c...

> But one thing other professions have that we lack is (1) fairly worked-out fundamental theoretical bases, or at least long experience to draw on, and (2) legal enforcement of standards.

A world with (2) without (1) would be pretty miserable.

Trying to do this today wouldn't be enforcement of standards, it would be "pray you got it right."

We could build standards for building more-robust software, but every piece of software would become vastly more expensive. We would need massive improvements in tools to avoid that.

And then there's the whole security angle... Is it a failing to have your software be impervious to attackers? To what degree? You wouldn't expect most bridges to withstand a determined attacker...

I think you're being a bit unfair to the unemployment systems: expected RPS is absolutely a design requirement when creating a large computer system. My entire job is easily described as "it's conceptually very easy, but it's really hard when you and a few million of your closest friends try to do it at once".

Unemployment systems typically don't see spikes like this, it's not terribly surprising that some didn't handle demand well outside of the expected range.

> We need some sort of standard for software engineering quality.

I contend we need defined SLAs because ultimately that's what matters.

Create the software in Visual Basic or Rust, I don't care. But it needs to work. Define SLAs with consequenses and the rest will sort itself out.

I have to agree. Adding lawyers to the process will definitely make things better.
It's because the software industry doesn't respect experience. This issue is the kind of thing an experienced engineer with years of building past systems would notice. And they would know how to talk to management so things are done properly.

But how are experienced engineers treated? Like shit. As soon as we get older and have families to support, we get leetcoded out of positions since we can't keep up with months of studying for basically a mental twitch reflex test. That's what it's become, interviewers will consider you a lesser engineer if you fail to vomit out the rote memorized solution a few minutes slower than another candidate. After all, time to write the solution is an "objective" measure right? So the interview process is now "objective", what a joke.

And if an experienced engineer dares to recommend that hey maybe we shouldn't use the latest fad tech that just got announced on a HN post? They will be ridiculed and laughed as lazy, not "keeping up with technology", called a bunch of COBOL dinosaurs holding everyone back. For simply daring to say, hey maybe this latest new technology has tradeoffs that don't fit for us and we should stick to what we have since it has a better balance of tradeoffs. Nope, nobody cares about that, stupid dumb old engineer, stop getting in our way, need to make our resumes look good.

And the industry itself? Encourages constant job hopping, so nobody even gets experience maintaining a system for a long time. All those shitty decisions made? Don't care, off to another company.

And within a company? Constant indirect and direct pressure to go to management. Why aren't you a engineering manager? Oh you want to be a principal? Well here's the ridiculous requirements for that, still want it? What's the difference between a principal and senior anyways? Actually why do we even need seniors, let's just get more juniors. Management doesn't know the value of experience, they just want lower costs. And the engineers themselves seem to be saying experience is worthless, so everyone's in agreement right?

We are failing to build good software systems because it requires experience to know how to do it. And this industry does not value experience.

> It's because the software industry doesn't respect experience

Untrue.

They go and found their own companies.

Silicon valley literally started off with a engineer-manager who left Shockley Semiconductor Laboratory in 1957 to found Fairchild Semiconductor, because William Shockley, while a brilliant academic, was authoritarian and just sucked at managing people.

On the other hand, if the point you are making, is that the software industry simply has to respect experience because a lot of blood, sweat, tears and divorces were weathered by these engineers as they got manipulated and brainwashed - no.

Yes, it sucks that these engineers got manipulated and brainwashed but now they have the experience to detect manipulation and brainwashing and the divorces and health issues were the price they paid to gain this experience.

In summary - the best way to get the value you deserve is to start your own thing. Otherwise, complain all one wants but they will get the minimum someone else can get away with giving.

Everyone wants what is best for them, even your manager and the company they work for, which includes paying as little as possible for the labor they get.

The difference is called profit.

I thought iOS was supposed to convert HEIC images to JPEG automatically behind-the-scenes in any file transfer situation where HEIC isn't supported. The article itself even says:

> iPhones convert HEICs to JPEGs automatically when they’re attached to emails in the Mail app

I'm just curious technically why the same didn't happen with the testing portal? If you have a webpage that accepts image uploads, is iOS Safari not smart enough to do the same conversion?

Or was the portal programmed badly or in a non-standard way that that couldn't happen? Or is there a way to do it that the developers ignored?

Just curious for the technical details of who's more to blame here -- Apple not providing enough backwards compatibility, or the testing portal being designed poorly.

Because blaming students for not following obscure instructions to change their phone's overall configuration is not the right path. A national testing portal ought to support the default image format taken by the world's most popular phone, period.

Probably not. If I Airdrop photos taken on my phone to my Macbook they arrive in HEIC format. I have to use an external tool (iMazing HEIC Converter) to manually convert them for a bunch of places.
I've experienced that with AirDrop too, but that's because the iPhone knows the Mac can view them.

Also you don't need an external tool -- Preview will convert HEIC to JPEG for you relatively instantly, even in batch. (Though I really do wish the phone would ask first if you want to convert, when Airdropping.)

I'll try Preview next time instead, thanks! iMazing works fine for the actual functionality but has some sort of bug where it won't re-open if I closed it without force quitting it. Minor but annoying.
That's likely an issue with iMazing not properly handling apple's saved ui state mechanism. You could try checking if holding the option key reveals a "quit and close all windows" option in the app's eponymous menu item, or press and hold the Shift key while opening the app to forget previous UI state.

If you don't care for apps to remember their previous windows and ui state, you can disable this mechanism in the settings app: https://support.apple.com/en-ca/HT204005#appresume

(comment deleted)
Tried a standard input tag with the proper accept attribute

  <input type="file" accept="image/jpeg,image/png" />
Selected a HEIC file from Photos in Safari, the selected image was automatically converted to JPEG.

Ten bucks says College Board programmer(s) failed to do the most basic and standard filtering.

Edit: Like a sibling comment said, the accept attribute actually isn't necessary; even PNG images (e.g. screenshots) from Photos are converted to JPEG automatically. This is true on both macOS and iOS Safari (latest). To be clear, on macOS you need to select from Photos instead of the filesystem for this to take effect.

In case anyone's interested, source code you can use to test for yourself (a Flask app):

app.py:

  import flask
  
  
  app = flask.Flask(__name__)
  
  
  @app.route("/", methods=["GET", "POST"])
  def index():
      if flask.request.method == "POST":
          image = flask.request.files["image"]
          return f"uploaded {image.filename!r} ({image.mimetype})"
      return flask.render_template("index.html")
templates/index.html:

  <html>
    <head>
      <meta charset="utf-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1" />
    </head>
    <body>
      <form method="post" enctype="multipart/form-data">
        <input name="image" type="file" required />
        <input type="submit" />
      </form>
    </body>
  </html>
Wow, I didn't know browsers even supported automatic image format conversion (this is pretty impressive IMO). Terrible that their programmers didn't specify that tag attribute.
I don't believe that's what's happening here. The accept attribute just filters what files show up in the file picker. And iOS devices will take an extra step, and on the operating system side convert HEIC files to JPEG.
Thanks for that explanation, I was wondering how it worked.
"Be strict in what you send; be liberal in what you accept" seems a relevant maxim here, but I wonder if it's reasonable to assume given the utter ubiquity of PNG and JPEG that of course that's what other people would be using?
Sure, and turns out you don't even need the accept attribute (see edit). They're doing something funny.
If you're going to make an assumption, that one is definitely understandable.

However, taking a step back, you should have enough representative test cases (QA snaps a photo with iPhones, tries to upload) that whether assumptions are reasonable doesn't enter into it because you aren't making them.

> Ten bucks says College Board programmer(s) failed to do the most basic and standard filtering.

Why is it a failure of the college board to put "accept="image/jpeg"", instead of iOS which failed to default to the more standardized jpeg format when HEIC was not specified?

HEIC is a newer format which fewer systems support. iOS / Safari should default to JPEG in this case.

The comment was edited to show that iOS does in fact do this.

But even if it did send HEIC, if you're going to fail to handle "any" format, then you better specify the one you can handle. By the same token, why shouldn't my computer convert every .docx to PDF, or some other "more universal" format?

Instead of specifying the requirement programmatically, they spent their time sending out tweets and writing help docs.

> Instead of specifying the requirement programmatically, they spent their time sending out tweets and writing help docs.

Point of order: separate people, with separate/independent/concurrent job responsibilities. It very likely wasn't the programmers tweeting and writing docs. (Heck, I expect that the College Board doesn't even retain any full-time programmers, only contracts with firms for projects.)

Separate people, yes, and we should not blame the people sending out the tweets. But we can hold the organziation they belong to responsible.

It's the same as if Apple shipped me an empty box instead of my iPad Pro. Of course I can't blame the customer support person who takes my call, and I shouldn't be rude to them. But I would still blame Apple the corporation for such a thing, had it happened.

1. input type=file can be used to upload any file format (or any non-format, for that matter). If you want specific file formats, you make your intention clear.

2. Please try to read the entire comment. iOS does default to JPEG when uploading, the accept attribute isn't needed.

Generally I agree with your point but this isn't your uncle's homemade public photo gallery. These are people's lives on the line. These kids have no say in whether they think they should take these exams. And because of that yes it is absolutely College Board's responsibility to

1. Correctly label their expected stream types. 2. Test all of the most popular devices before having something this broken in production.

What about a kid that's using a cheap android tablet from aliexpress? Are you arguing that the company nobody's ever heard of is at fault for not programming their tablet to use the correct image format? I agree that they should probably be using JPEG but that doesn't mean College Board is off the hook for making it easy for a user to not be able to use their product for something this important.

Not being able to accept common image formats is a failure of the programmers, not Apple, which is looking to use more modern image formats that have better compression and quality.

It really bothers me when programmers make excuses for laziness or shoddy work that results in user's being harmed. Start caring about your users.

The iPhone is the most popular phone model in the United States. This is on the College Board. It takes very little work to make this work properly, which ANY BASIC QA PROCESS WOULD HAVE CAUGHT.

Check the actual source code: https://news.ycombinator.com/item?id=23261598

I don't think the failure is with the accept type. I think the failure is with the bespoke JavaScript checking the filenames. That puts the failure on the College Board, not Apple.

When you are accepting photos that will be taken from a phone, why wouldn’t you test to make sure that your site worked with the default settings for a large (if not largest) proportion of your users? If you are the College Board, it seems irresponsible to not have tested this better. Or at least saved the data to attempt to convert later (which it doesn’t seem like they did either).

And if they really needed to control the file formats this much, they should have written this functionality into an app (for iOS and Android) and handled taking the picture themselves.

They really screwed things up for a bunch of kids here.

Because a lack of an accept attribute on the file-input element has a defined meaning in HTML, and that meaning is accept="⋆/⋆".

Which, in turn, means that the form isn't putting any constraint on what's being uploaded at all, and so there's no reason to think that the form is asking for an image in the first place. At that point, it's asking for a file. Any file. And so it has the semantics of taking whatever file you provide it as-is, with no transformation necessary. Just like when a client requests `Cache-Control: no-transform` from a server. It wants the thing on the other side sent to it as-is.

And, it's important to support those semantics (and that particular implicit meaning for leaving out the `accept` attribute), because such "as-is" uploads have many use-cases. The form might be e.g. a computer-forensics or antivirus-signature portal, that wants an evidence file; or the interface to a hex editor or decompiler, that expects a raw binary with arbitrary extension in unknown format; or the SCP component of an old web SSH terminal emulator. All these existed on the web, and used <input type="form">, before the `accept` attribute was introduced. So "not using the `accept` attribute" has to retain semantics that are backward-compatible with that legacy.

If I wanted to upload raw photos from my camera to a generic file storage site and they all got magically converted to jpeg because the browser thought that was the best image format, I’d be pretty pissed off. Browsers should follow standards.
Imagine trying to upload a heic file to (say) Amazon s3 through their web UI and having it converted to JPEG.
Turns out I overlooked some details in the article. Some students (after the issue was known) airdropped photos to their computers and attempted to rename .heic to .png/.jpeg to bypass the extension check (who would have guessed extensions don't have to correspond to file types), they went through but were rejected a day later. The article isn't clear on what exactly was happening before, but I suppose students were trying to submit airdropped .heic directly?

In any case, sounds like absolutely horrid QA and communications of what's accepted (and of course, very bad idea not supporting the format in the first place when half your test takers are taking pictures in that format).

(A bit more context on my original comment: I thought they had some working system where test takers could upload photos directly from their phones — e.g., scan a QR code to open a page with a unique ID with an image upload form. Turns out that's too much to ask; their process is "get the image from your camera to your test-taking device whichever way you can think of, not our problem." Not surprisingly that's not a very foolproof process.)

If they were submitted in time, but then rejected a day later, it seems like those cases can be resolved by some manual work by collegeboard to convert them
> If you have a webpage that accepts image uploads, is iOS Safari not smart enough to do the same conversion?

AIUI, Mobile Safari always re-encodes the image. However, if you transfer the image to a device that supports HEIC (e.g., recent macOS) then you'll find out that (desktop) Safari never re-encodes an image when uploading a file.

> A national testing portal ought to support the default image format taken by the world's most popular phone, period.

What if it can't because the format is proprietary and Apple wants to charge for its use? As I understand it, MS and Google have to pay licensing fees to enable support for it in Windows 10 and Android.

Support it by performing client-side conversion to JPEG. The device obviously already has the license.
Have you seen what the College Board charges for AP testing? I think it's a cost of doing business and they can afford to pay a reasonable licensing fee to process the test results. If they can't, increase the test cost by another $5.
You're thinking of HEVC (video encoding, like h.265): https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding#P...

HEIC (image encoding) is available without royalties: https://en.wikipedia.org/wiki/High_Efficiency_Image_File_For...

Regardless, in this case, as others noted, iOS would have just converted to jpg if College Board was using a standard image upload form.

> When containing images and image sequences encoded in a particular format (e.g. HEVC or AVC) its use becomes subject to the licensing of patents on the coding format.
I'm not sure what you're trying to say with that quote? As I mentioned, HEVC is subject to licensing costs. If you try to wrap your HEVC video content in an HEIC container, you don't suddenly get to skip paying the original licensing costs.
He's trying to remark the fact that HEIC = HEIF(HEVC) => non-free. See my other reply to your first comment. Note that HEVC doesn't necessarily mean video. It can be used to compress still images, as it's the case of Apple devices.
> HEIC (image encoding) is available without royalties

Ah, ok, thanks!

>HEIC (image encoding) is available without royalties

As stated by that Wikipedia article, HEIF is the royalty-free container. HEIC means the content is encoded with HEVC, which makes it not free.

Historically, Safari always converted to JPEG and I don't think that required something like setting the accept attribute (e.g. <input type="file" accept="image/jpeg">). It's not clear whether they're using something like the JavaScript blob APIs to get the file contents without some implicit conversion.
Would it be correct for iOS Safari to quietly reencode to jpeg when a HEIC file is uploaded via a webform? How would Safari know that the site's backend didn't want an HEIC file?

I agree the HEIC thing is very confusing (having set up my parents' phones recently), but I can't see how Apple is to blame. For starters, the College Board could've done a much better job emphasizing this step for iOS users in its instructions page. But for me, the overriding factor that places blame squarely on the College Board is this from the article:

> Senior Dave Spencer took a demo test before his Calculus AB exam to make sure he understood the process for uploading photos. He Airdropped an iPhone image of his responses to his Mac and tried to convert it by renaming the HEIC file to PNG. Changing a file’s extension does not guarantee that it will be converted, but Spencer was still able to submit the demo test with no problem.

> Spencer used the same process on the real exam and thought it went through, but he received an email the next day saying the files were corrupted and that he needed to retake the test.

So it seems that students had access to a demo before test day. If I'm reading the story right:

- During the demo, Dave's phone produced a HEIC file

- The demo upload initially failed. So Dave renamed the file extension to PNG.

- Dave uploaded the PNG (in name only), and the demo did not return an error.

- Dave assumed, quite understandably, that the renaming trick would work on test day too.

So the onus in the College Board here: they provided a demo in which the photo upload function appears to have been stubbed (e.g. "if 'PNG|JPG|JPEG' is filename, print "Success"), giving students and teachers false assurance that photo uploads would work on test day.

Does the HTTP "accept" tag play a role here?

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Ac...

I don't follow. How does the "Accept" header factor in here?
Rule of least astonishment would be that the file is converted unless the accept header lists the heif file. At least by the expectations Apple set up, which don’t match up with standards.
That's a header the client sends to a server to indicate which formats it would like in the response to it's requests, and not relevant to the problem.
> they provided a demo in which the photo upload function appears to have been stubbed (e.g. "if 'PNG|JPG|JPEG' is filename, print "Success"), giving students and teachers false assurance that photo uploads would work on test day.

I don't think it was exactly that it was stubbed out, per se; I would guess it was that the whole "backend" process involved either a human or an async batch process opening the file; and so in both the demo and prod environments, the upload of a file can succeed while the parsing of said file can fail (much later on, after the test is completed, during the grading phase.)

Yeah, I agree with you that the production app likely had an async process, i.e. queuing submissions and processing them first-come-first-serve, which would help explain why Dave didn't get the failure email until well into the next day. Seems safe to assume there was no process for (good) input validation upon upload.

And now that I reread the passage about Dave, I realize it's not necessarily true that Dave tried to upload HEIC, then got an error message, which led him to then rename the file. But he may have actually read the instructions about PNG/JPG being required, then thought he could just rename his file, then uploaded it as his first and only upload to the demo app. And whether the demo app actually did the upload, it apparently didn't do the parsing (I still think that was stubbed out; I can imagine an engineer thinking it'd save a headache if they disabled the parsing module for the demo server)

So they did have a dress rehearsal, it just wasn't high fidelity, and on perhaps the most critical part of the process.
Yes there was a demo, but it didn't actually submit anything at all. It just mocked through what the exam would look like with timers.

The demo is still up and you can still look at it

FWIW, as is the norm, my experience is that it works brilliantly --as long as you stay within apple defaults.

As soon as I stray from golden path - text using anything but Apple MEssages, email using anything but apple mail, post using anything but safari, use/process with anything but Apple Photos - HEIC has been an absolute positive pain in my keister ;-(

Other people may have more luck; note that my work iPhone is an isolated island - my other devices are either Android, or Windows/Linux - which probably explains my troubles to a large degree. Apple's selling point has always been the well-integrated ecosystem so I understand I'm an outlier.

Which is why IOS should default to sending JPG or PNG to/between any non-bespoke Apple product until such a time that HEIC is universally common. That should be transparent to both the end-user as well as the receiving end.

One can moan about the test site not being more robust/careful but it is Apple/Samsung that are using the new, non-standard format and expecting others to accomodate in short order.

The article reads to me like the people who had problems sent the images from the phone to their computer, which may not trigger the automatic conversion? One air dropped it to the computer and renamed it PNG, another renamed it JPEG, but they were probably HEIC files with the wrong file extension.
I believe those students had received noticed to use png/jpeg, and their solution was to change the file extensions. The website accepted them without issue, but these students later received emails telling that their photo was corrupt. The other, unaware students tried to upload the HEIC directly from their phones and the website stopped responding causing their test time to expire.
Ah gotcha, I think you're right. Sheesh.
Wow, I have been using iOS (and keeping it up to date) and macOS and Photos.app and uploading images to sites regularly for quite some time and this is the first time I’ve ever even heard of HEIC. Whatever they are doing has been beyond seamless for me.
> The College Board is now allowing test-takers who have issues submitting their tests to email them instead

Crazy there wasn’t an email to reach out teachers before. Any exam I passed with a computer or online component always had a way to contact the prof in case something goes wrong.

> Due to the photo’s size, the conversion took over five minutes.

This seems unlikely. What is the largest possible size phone photo coupled with the slowest reasonable Windows computer and Internet connection? There's just not that much data or processing involved in converting a 12 megapixel image.

Someone at the College Board just needs to write a few lines of code to convert HEIC images to JPEG, instead of forcing thousands (if not more) students to retake the test.

On Ubuntu, you can:

        sudo apt-get install libheif-examples
        heif-convert infile.heif outfile.jpg
Based on the article, it sounds like the College Board did actually receive the test files from these students. The students were emailed that the files were "corrupted". So in all honesty, this is just a matter of them actually just converting the files they've received then (or using an image viewer that can handled HEIC.)
^ This. College Board messed up severely on this issue.
It seems pretty clear that there are at least some cases in which the test was dropped / failed entirely because of the issue, including the case that The Verge leads with:

> Nick Bryner, a high school senior in Los Angeles, had just completed his AP English Literature and Composition test last week. But when he snapped a photo of a written answer with his iPhone and attempted to upload it to the testing portal, it stopped responding.

> The website got stuck on the loading screen until Bryner’s time ran out. Bryner failed the test. He’s retaking it in a few weeks.

In this case it seems unlikely that the issue is correctable after the fact by the College Board.

> Changing a file’s extension does not guarantee that it will be converted, but Spencer was still able to submit the demo test with no problem.

In what situations does the file format auto convert when you change the extension?

It's a naive extension filter then passed off to a well implemented image conversion routine that the programmer just invoked in their script.

So you need to do some little dance to get around it. You can probably run full blown postscript programs on their server if you simply name it .jpg.

College board is a $1 billion/year "not for profit" with a million dollar CEO, there's no excuse for this.

Sure but they're expressly not a $1 billion/year software company. They are a pen-and-paper company that because of the pandemic had to build something quickly with little institutional experience.
Digital literacy from an organization in charge of a standardized test for 6,000 colleges including Princeton, Harvard and MIT isn't too much to ask for in 2020.
Popular image manipulation libraries work with raw bytes and they identify the encoding from the first few bytes of headers. When a software work with common libraries, there is a good chance that it can deal indifferently with all the formats the library can understand (JPG, PNG, GIF, etc...)

A file explorer or website may filter by extensions, preventing to submit formats that are actually supported. A workaround is to rename the extension and hope it is supposed anyway.

Didn't work in this case. They tried and the picture was corrupted. It doesn't support the new apple encoding.

Here's the relevant frontend source code for the file upload picker, if anyone's wondering (webpack://src/components/exam/submissions/FileInput.js):

  <input
            type="file"
            ref={inputRef}
            name="fileupload"
            disabled={disabled}
            accept={EXTENSIONS[type]}
            data-cb-element="no-cb"
            onChange={async e => {
              const [file] = Object.keys(e.target.files).map(key => e.target.files[key])
              const fileSizeInMb = file.size/(CONVERSION_BASE*CONVERSION_BASE)
              const fileSizeInKb = file.size/CONVERSION_BASE
              const split = file.name.split('.')
              const fileType = split[split.length-1].toLowerCase()
              const extensions = EXTENSIONS[type].split(', ')
              const isAllowedExtension = extensions.includes(`.${fileType}`)
              const alreadyExists = files.find(f => f.name === file.name && f.size === file.size && f.lastModified === file.lastModified)
              let error

              if (alreadyExists)
                error = { title: 'You have already uploaded a file with the same name.', details: 'Please attach a different file.' }
              else if (!isAllowedExtension)
                error = { title: 'This file type is not acceptable.', details: 'Please check the requirements, save your file in one of the accepted formats, and resubmit.' }
              else if (fileSizeInKb <= minSize)
                error = { title: 'Your file is too small.', details: 'Please check the file-size requirements, save a larger version, and resubmit.' }
              else if (fileSizeInMb > maxSize)
                error = { title: 'Your file is too big.', details: 'Please check the file-size requirements, save a smaller version, and resubmit. ' }
            
              if (error)
                await setError(<><strong>{error.title}</strong> {error.details}</>)
              else {
                await updateFiles(file)
                setError(null)
              }

              inputRef.current.value = null
            }}
          />
The EXTENSIONS variable is defined here:

  export const EXTENSIONS = {
    [TYPE_DOC]: '.txt, .doc, .docx, .pdf, .odt',
    [TYPE_PHOTO]: '.png, .jpg, .jpeg',
    [TYPE_AUDIO]: '.m4a, .mp3, .wav, .ogg'
  }
So do we know yet why iOS wasn't auto-converting the HEIC images? Is it because they didn't use mime types in the `accept` attribute?
That's my guess, looking at how they made the accept attribute.
I wondered that, too, but when I googled around for how to do that properly, I didn't see anything saying it matters.
A lot of the people with issues appear to have airdropped the photo to their computer (which doesn't trigger the auto-conversion path), and then uploaded it from there (possibly using a non-Safari browser, which wouldn't do any conversion).
I'm trying to square this with the fact people pointed out downthread, which is that iPhones will automatically convert HEIC images to jpeg from an HTML input form. Perhaps it's the `isAllowedExtension` check? If `e.target.files` is the actual file names on disk (and not whatever temporary file the browser made out of the HEIC file), that would cause a problem.
Apparently somebody claims to have been able to change the extension and submit the picture, but got "file corrupted" later:

"Senior Dave Spencer took a demo test before his Calculus AB exam to make sure he understood the process for uploading photos. He Airdropped an iPhone image of his responses to his Mac and tried to convert it by renaming the HEIC file to PNG. Changing a file’s extension does not guarantee that it will be converted, but Spencer was still able to submit the demo test with no problem.

Spencer used the same process on the real exam and thought it went through, but he received an email the next day saying the files were corrupted and that he needed to retake the test."

That anecdote is inline with my explanation: the student manually changed the file extension on disk, then uploaded that. That would pass all of the checks, but it would still be in the wrong format, as manually changing the file extension does not cause a conversion to take place on disk, and that probably prevents the automatic conversion of HEIC to jpeg the iPhone itself does on such input fields.
all the checks - a proper check would be reading the contents and parsing the image.
Yes, but that's not what the written code does.
Anyone who says that young people are better with computers these days needs to keep this paragraph on file.

I can’t really blame the college board for this kind of mistake. Like would he assume that taking a .docx and renaming it to .pdf converts it?

On the other hand, I think there's an argument to be made software should ignore file extensions whenever possible. Is really that hard for the backend to check if the file starts with "\xFF\xD8\xFF\xE0\0\x10JFIF\0\1" or "\x89PNG\r\n\x1A\n"? That would have caught this problem.
Yes, just hardcode what is hopefully the magic bytes for the formats we expect, what could possibly go wrong /s

The biggest joke here is that this wouldn't have helped the students either. I don't think any of them will pass the "there is a minute left on the timer and the website tells you your picture isn't JPEG or PNG" challenge.

I did some more research and it looks like I got the one for JPEG wrong, so maybe you have a point.
As someone who started their career in QA and volunteered with IT support for non-technical organizations, this is one of the first test cases I would have thought to try.

Never trust user input!

Frontend validation can never be trusted. It’s only good for giving faster feedback for a nicer user experience. You should always have backend validation.

I’ve seen people do some weird stuff before because the majority of users don’t really understand much about file types. Users rename file extension all of the time thinking it’ll magically convert a file into something that can be opened by their program of choice.

This is just poor QA by the College Board.

I think the issue is that accept is specified only with extensions rather than mime types.
I wondered that, too, but I couldn't find any HTML documentation that blessed one form as superior to the other. And I would be surprised if Apple automatically converted images for "accept=image/jpg" but not "accept=.jpg".
Huh. So, according to the other comments, if they'd set the `accepts` on their form to MIME types instead of extensions, the browser would have converted the file to a JPG automatically.
Haha, the fact that we are code reviewing this on HN is amazing. OK, the issue is "accept" isn't formatted as "image/jpeg, image/png", it's a list of file extensions. Which apparently wasn't enough to trigger iPhone's auto-conversion, and they just decided there wasn't a tech fix. You can totally see why -- they just never tried the mime-types.
I can't comment on the technical challenges here but I sure can express sympathy with the students and teachers. I used to teach AP Chemistry, a very challenging course, like all APs I guess. My first reaction was they're still giving the exams? The security around the exams is usually so tight.

Well, I always told my students that even if you didn't do well on the spring AP exam at least you got credit for the course (AP students got a gpa bump at my school), learned a lot of wonderful chemistry, and you got a good taste of what a college course is like.

> and you got a good taste of what a college course is like.

I did not take the AP chemistry exam and did not take any college level chemistry. I did take two years worth of AP English and earned college credits taking those exams. I also minored in English in college.

Overall, I found my college level English classes to be significantly less challenging than my high school AP classes. The AP classes were grueling but also worthwhile. Each week we wrote one to two essays in class following old AP prompts. Leading up to the exam we were writing three essays a week. In addition, we covered about three times the amount of literature that regular English classes at the same grade level covered while also having required summer reading and book reports due at the beginning of the school year.

The classes killed my interest in reading fiction and I have probably read less fiction in the last 15 years than I did during those two classes. On the other hand, I was surprised by how poor some of my peer's writing skills were when I started taking 300 and 400 level English classes in college. I was thankful for the AP classes when I saw how far behind some were.

I'm not the greatest writer. However, those classes, and the excellent teachers who taught them, gave me the ability to write. Before those classes I struggled to write the very few essays I was required to write. Afterwards, I churned out essays with ease while my peers struggled to meet the minimum essay length. The experience was one of my most important educational experiences.

Who doesn't test their upload forms with common flows like uploading an iPhone photo?

Sounds to be like the college board contracted this out to the lowest bidder.

The burden of testing is enormous and nobody wants to pay for it. I know plenty of companies that barely test at all. All except the Googles of the world miss stuff regularly.
Irony here is that College Board's core business is testing.
Ironically, the service the College Board is selling ... is itself testing, just of a different kind.
Honestly this is the most stupid part. And I don't think College Board (or whoever made the site) didn't do any testing -- if that's the case the site should be way more broken. It's probably a problem of setting non-realistic test cases.
"Our system broke, you're screwed now, sorry" is never an acceptable answer. Do they really not have anyone who knows how to get stuff done?

1. Take the files and figure out what to do with them so they can be read. This isn't a hard problem.

2. Ask everyone affected to email you the photo or a new photo of the documents. We'll just take it on trust that you do so honestly because there's no way you would've seen this coming.

The articles seems to indicate that the upload crashed, so they probably don't have the files
Which is why GP proposed giving students the opportunity to email the files separately.
This is college board we are talking about. I guess parents will just have to pay for another exam and hope its graded fairly.
>"Our system broke, you're screwed now, sorry" is never an acceptable answer.

That's not what happened at all. The college board admitted their fault and are letting students take the test again. Even without that, they mentioned in their FAQ that JPEGs and PNGs are the only file types acceptable and even sent out a tweet (which should have been an email) a week before especially for iPhone users to let them know how to take pictures as JPEGs.

I agree with the people blaming the board for not having a standard image input field that lets the OS know when to convert images to JPEG but that is their only fault and I wouldn't have thought of that as a bug deal if not for this issue. While I'm all for open source media formats replacing what we have, HEIC certainly isn't big enough to be considered as among standard input options. Also, isn't Apple themselves infamous for not supporting certain formats throughout their devices?

If they had enough time to warn people ahead of time, they had plenty of time to push a fix to their system for this. We are literally talking about adding support for one more image format.

Emails, tweets, texts are no excuse for broken products. The iPhone is the best selling model in the United States. It is on College Board to support its default image format.

Good product design is owning your users' success. It is not sending people workaround emails.

The bare minimum would have to be to do a warning before every single AP test about this and giving students a few minutes to change their default image format. Sending a tweet (!!!) out does not count as doing any work.

This is a failure. An abysmal failure.

Have to agree with this guy here.. if you are doing Q/A testing and you notice that an iphone doesn't work by default, you have a problem.
People used to say the same thing about Internet Explorer
What's your point?

If you are developing an application/website and it doesn't work with 50% of your market share- then you are a dumbass for not implementing it.

ESPECIALLY for an AP EXAM with consequences.

This isn't like "oh no, 50% can't reach our site about cat videos". This is an EXAM.

Honestly cannot believe people on here defending them not adding simple image support for 50% of the testers...

The point is that we have all seen what happens when we start letting a single company dictate formats. Because the next step is "i can't believe those lazy fucking programmers can't support heic2" or whatever magical bullshit they come up with after abandoning heic1.

And it you want to talk about incompetence, I'd say pushing a format that is almost guaranteed to be incompatible with the millions of existing backends out there is profoundly stupid.

>...a single company dictate formats.

It's an ISO standard. Samsung phones use it as well.

HEIC isn't simple, and isn't common.

Apple should convert to JPG or PNG when exporting the image to anywhere anytime.

The same problem happens with webp images too - totally unusable almost everywhere, even in photoshop.

Apple wants to reduce storage space photos take up. Fine - but they should convert back to a standard format when exporting the image to be used on some other system.

With that said, it seems the issue is from students that didn't upload the image from their phone (where Apple correctly converts to JPG), but rather transferred the image to their computer, then uploaded into the AP Exam.

If that's true, then this is absolutely on Apple. Why would they export in a format that literally nobody else supports. What are these people supposed to do with a folder full of HEIC formatted photos, that can't be uploaded anywhere else, edited with any program, or opened even opened on some Operating Systems?

Apple should assume nobody else uses HEIC because... well, nobody else uses HEIC.

Nothing starts common, you have to start somewhere, and it is an ISO standard format.
A file format, used by one company, isn't going to change the world.

JPG and PNG are here to stay. Love it or hate it... they are the lowest common denominator for image formats.

File formats change fast. It was not too long ago PNG was the newcomer, and people were touting how much better it was than GIF for non-photographs (alpha transparency, better compression, etc.). It has been successful, and now almost all applications support it. Same thing with moving from AVI to the MPEG formats in video.

New formats are a good thing, and fast adoption of them is good for users.

>used by one company

Samsung have started changing over as well, it's the default on their latest phones.

And they were correct. If more than 10% of the population is using it, it should be supported, particularly if you are providing a service that can affect people heavily (like AP test submission).
Perhaps it's the iPhone that's broken then.

HEIC isn't exactly a commonly used, or widely accepted image format outside of Apple's world.

The question is, is it the exam developers task to produce software that works in the world as it is or the world as they would like it to be?

If the latter this is a roaring success.

Just a guess, but it seems like you work in theoretical lala land and never have to deliver something that works.

I'm not saying you are wrong- sure you can argue that it's the iPhone that is broken, from a non-standard format. However, if you are designing an app that needs pictures to be taken and about 45% of your customers (the students) can't just take a picture without going through some conversion while on a time sensitive test- then you majorly fucked up.

End of the day this is on the AP designers for not adding a format which 45% of their base will use by default.

Scanners almost universally output in TIFF, and need to be converted to JPG or something more universally accepted. Nobody complains.

Some scanners even will do the conversion to JPG for you, because they know nobody accepts TIFF files.

If Apple does it, then everyone has to accept it?

And why? Because images are large and Apple's trying to reduce the size on the phone? How about giving everyone more than 5GB of iCloud storage in 2020? Google gives you 10-15GB for free, and costs half as much for more storage.

For premium-priced devices, this is absurd.

Well I could turn that around and say if you develop a phone and the image format it exports to is not accepted by 99% of websites maybe then you majorly fucked up.
But the phone does the right thing when told to do the right thing. If the input tag has a proper accepts attribute set the iPhone will transparently and automatically transcode a HEIC image to JPEG.

A file input tag with no accepts attribute when you're expecting a particular type of file is broken. Would Android phones be "majorly fucked up" if they stored images as WebP by default?

While I kind of agree with the sentiment, I'm also totally done with the notion of "Apple decides to have their own unique format every 2 years, and makes the change in a backwards incompatible way, so now the world needs to kowtow to them, despite Apple dragging their feet in many areas of standardization."

Seriously, fuck Apple. It took legal changes in the EU to force them to the "Just f'ing support USB-C like the rest of the world instead of making half your money selling dongles".

HEIC was developed by the Moving Picture Experts Group as an open standard.

Apple was early in supporting the standard. Windows, Android, others have followed. More to come.

When venting one's spleen, it's best to be at least a tiny bit correct.

You're correct, I shouldn't have said their own unique format.

Still, what matters is the reality of the situation. They could have easily made it so that uploading or transferring images, especially to websites, uses a standard format that 99.9% of websites support, instead of one that virtually noone supports (yet).

And at the same time that Apple rushes to support this new standard without providing a good backwards compatible experience, they've been dragging their feet for YEARS on Safari support for progressive web app features that would let devs build truly feature-comparable web apps without being beholden to the App Store walled garden.

> They could have easily made it so that uploading or transferring images, especially to websites, uses a standard format that 99.9% of websites support

They do.

>HEIC was developed by the Moving Picture Experts Group as an open standard.

It’s hard to call something an “open standard” if anyone who wishes to use it needs to license patents from nokia.

(https://en.m.wikipedia.org/wiki/High_Efficiency_Image_File_F... under “licensing”)

And MPEG (through MPEG-LA) has long been known to be fairly active in litigating (or facilitating litigation) of the patents they administer.
> It’s hard to call something an “open standard” if anyone who wishes to use it needs to license patents from nokia.

If something needs a licence, it isn't open. I mean, it literally doesn't meet the definition of open.

What's more, if the standard was open, then that would be great, but adopting it so soon and setting it to be the default is woefully shortsighted.

I find it really surreal that this format is named "high efficiency image file format" when it makes no guarantees, no claims, and harbors no aspirations about efficiency. It's an encoding-agnostic container format!
It's funny because the Lighting connector has been around since 2012, when Android phones were largely using Micro USB, with an awkward flirtation with the wide USB3 connector. Now they're standardizing on USB-C, so if you were upgrading frequently you may have needed 3 cables in the past 8 years.

Before then iPhones used the 30-pin connector, backwards compatible with 5-year-old iPod accessories. At that time other manufactures seemed to be shipping different barrel-plug chargers and proprietary cables for every model.

So that's 2 connectors introduced over a span of 18 years supported by dozens of product models that sold billions of units. Cables have been available from third parties for most of that time. The only dongles that might apply are 30-pin to Lightning or USB-A to USB-C.

The 30-pin's raison d'être was to provide features you couldn't get out of USB, like analog audio and video out. And Lightning was a much better designed connector than Micro USB due to being reversible, which informed the design of the Type C connector.

I'd agree that the Mac now has a dongle problem, but it's precisely _because_ it switched to USB-C, as you suggested.

This is misguided. The problem is not how quickly one format or the other iterates. The problem is forcing your users to endure a closed, licensed format.

A USB accessory will work on any device, but a lightning accessory only works on an iPhone, to nobody's benefit but Apple. Apple's hate of standards is anti-consumer, and that's why the EU ruled against them.

What particularly ircs me is that Apple has acknowledged that USB-C is the superior plug by going all in on their laptops. But they can't let go of all the money they make selling licenses for third party cables on iPhones.

> The problem is forcing your users to endure a closed, licensed format.

Lightning was a huge win for consumers because it was years ahead of the incompetently designed clusterfuck that micro-USB was.

> Apple's hate of standards is anti-consumer, and that's why the EU ruled against them.

Apple’s “hate of standards” is in part the reason the USB-C ecosystem exists today. They contributed quite a bit to its development.

The EU ruled against Apple because the EU is full of bureaucratic idiots that care more about looking good than actually knowing what they’re doing. The circlejerk that the EU is always correct needs to end.

If the EU ruling happened a few years ago we’d never have had Lightning and we’d have been stuck with the piece of shit known as micro-USB. Thankfully, Apple was allowed to innovate independently as any remotely reasonable government would allow, and created a connector that would later inspire USB-C.

> What particularly ircs me is that Apple has acknowledged that USB-C is the superior plug by going all in on their laptops. But they can't let go of all the money they make selling licenses for third party cables on iPhones.

Catch-22; if they change the cable people like you complain that they’re trying to obsolete accessories, and if they don’t change the cable people like you complain that they’re trying to profiteer off of accessories.

Please learn what you are talking about, on even a basic level, before blaming Apple.

You're wrong about USB-C, too, so please learn about that, too.

And lastly, you're hilariously wrong about revenue from dongles, so again, learn the basics before hurling accusations, not after (or, in your case, never).

HEIC isn't supported in a lot of places. It's mainly (only?) Apple that uses it with iOS devices.

Perhaps Apple should make it easier or automatic to convert into a format that's universally usable.

Bet the same thing would have happened with webp images too.

JPG and PNG are like the FAT32 format of images. Always accepted, everywhere.

> Perhaps Apple should make it easier or automatic to convert into a format that's universally usable.

Further down this thread you’ll see that the board have messed up and they aren’t accepting images they should due to poor implementation.

“ oefrha 1 hour ago [–]

Tried a standard input tag with the proper accept attribute <input type="file" accept="image/jpeg,image/png" /> Selected a HEIC file from Photos in Safari, the selected image was automatically converted to JPEG”

I'd posit that Apple ought to assume the worst (ie nothing but JPEG and PNG is supported) if no format is specified. That's how we've built most of the web, to ensure backwards compatibility and avoid these kinds of problems.

That said, come on College Board. Fix your crap. What a stupid bug.

If no format is specified, then the presumption would be that the website wants a raw octet stream, and that adulterating it would be the last thing a client device should do, because it knows nothing about what the website's going to do to the result.
Do you have any idea what that approach would do to bandwidth and latency?
Er... what?

By "raw octet stream", I meant that the client should upload a file named X made of opaque bytes 0xABCD, as a file named X made of opaque bytes 0xABCD; rather than assuming a higher-level intent on the server's part to acquire some abstract document, where the client would be able to better serve that request by transforming its file to a different file-format.

I didn't mean that e.g. the client should avoid using Transfer-Encoding compression during the HTTP POST request, or anything like that. (That is, after all, a fact about the wire representation of the request; it doesn't affect the file received on the server end.)

Or, to put that another way, an <input type="file"> with no `accept`, is to the client, as `Cache-Control: no-transform` is to the server: an expressed desire to get some specific data that exists the other end sent over "as it is", rather than to get something customized to the peer's needs.

My apologies. I misread your intent.

I thought you were suggesting that images should be sent as raw octets for the image, rather than picking a compression format. But that raw data is extremely large, and therefore would have horrible impacts on bandwidth and latency.

That said, you're right. Trying to be clever about what people are sending results in a lot of hidden complexity and bugs of various forms.

Okay, but the contents of that raw occlet stream will be a file in some format. The iPhone isn't like a traditional computer—the user picks an image from a library of images, and the type of image is abstracted away. Yes, it so happens that modern iPhones store images on disk as HEIC, but since this isn't user-visible it amounts to an implementation detail.

Since the user didn't specify a format, and the website didn't specify a format, the iPhone needs to guess something. Seems to me it should guess the format that's most likely to work, not the one only a tiny number of devices support.

But the website did specify a format. Like I said in my sibling comment, a lack of an `accept` attribute (which is the same as saying `accept="⋆/⋆"`) has a conventional meaning from a plethora of legacy use-cases; and that meaning is:

"Give me the underlying data, just as it is. You may or may not understand what it is, but I'm asking you to pretend that you don't, because I definitely don't understand what it is. I'm acting as a courier on behalf of a recipient who wants whatever you give me. All they told me was to get it from you. Please don't try to guess why they want it, or to prepare it for them in some way. Their motivations are beyond our understanding. They just want it. They want what you have, the way you currently have it. Do as little to it as possible, because anything you do may be counter-productive to their unknowable designs."

This is, for one thing, the use-case of file-sharing websites. If you upload something to e.g. MEGA, or WeTransfer, you're doing that in order for something further to happen to it on the other side. The other side may or may not have wanted the file in its original format, but that question is up to them, not up to the sender. The job of a "dumb pipe" file-transfer service, is to take what it's given, and losslessly pass it on to the recipient, so that further steps can happen. And, as such, it's also a responsibility of a file-transfer service to ask the User-Agent to also send the file on to it losslessly, because in this case the User-Agent is also acting as part of the "dumb pipe" transfer process.

Let me put it this way: if my photos were not saving correctly, and someone at Apple asked me to file a Radar ticket and attach such a mis-encoded photo to the ticket... how would the Radar web-app express the intent of "I want the stupid mis-encoded file that you-the-device are using to store what you think is a Photos photo"? Well, our legacy convention is that it would express that intent through `accept="⋆/⋆"`. (Or a lack of an `accept` header at all.)

Note that this is different from an `accept` attribute like "image/⋆". In that case, we know something—we know that the recipient we're acting as courier has the intent to use the uploaded file as an image—so both the mis-encoded file, and maybe HEIC files, are probably bad candidates. One should be filtered out as an upload candidate; the other should maybe be transcoded (just like a RAW camera file would be.)

I agree with it, at least for a few years.
As I understood the article, the problem did not arise when uploading the picture directly from the phone, but in cases in which the picture was first transferred to a computer (via Airdrop was explicitly mentioned, but could probably also have been a cable connection) and then uploaded from the computer. Whatever conversion the browser on the iPhone (or Safari on macOS, because there are other browsers on computers as well) does or does not do is irrelevant in such a situation.
My understanding from the article was that both types of problems happened.
You know, I thought that about FAT32. But apparently neither Windows nor Mac OS X can see a FAT32 partition on an SD card if it's not the primary partition (at, least, not in an obvious way).
Don't think that's exclusive to FAT32. For quite a while Windows just straight up ignored anything but the first partition on removeable media.
Windows and macOS do that in order to hide EFI system partitions, I believe. (Not that they should have to; MBR and GPT both define a specific tag to mark a partition as being an EFI partition. But so many partitioning tools don't bother to use that tag—or to adhere to any other standard that could be used to identify an EFI partition—that OSes are stuck with a very bad/loose heuristic.)

They may also get some other benefits from this bad/loose heuristic, e.g. hiding Linux's common FAT32 /boot partition; OEMs' "backup" and "BIOS update" partitions; OS Recovery partitions from unknown (and therefore unpredictable-in-approach) OSes; etc.

What the consumer OSes really need is a bit in each MBR/GPT partition's bitflags, that has a meaning equivalent to one of those "no user-serviceable parts inside" stickers. I think it's too late to fit that bit into either standard, sadly.

I disagree. Bowing down to the whims and fancies of corporations is how we got into this situation (in terms of media formats) in the first place. According to wikipedia, HEIC isn't even supported in any browser natively, clearly rolling it out this soon was a bad idea.
Open competition among standards is the way adoption has mostly happened at least since the VHS/Betamax days. Otherwise it’s decision by committee and/or fiat which can sometimes be a net benefit but more often than not standardizes on a cumbersome standard that is not a good fit for any one application.
Media format support will always be a chicken and egg problem. You got to start somewhere.

Apple's approach of automatically converting images at the edges is the right way to go. It does require your software to be explicit about what media formats it understands. This is where the College Board failed.

>Media format support will always be a chicken and egg problem. You got to start somewhere.

Funny thing to say in support of Apple. Maybe they should support WEBPs/WEBMs instead?

Their approach to supporting the new formats is actually quite easy to work with and properly defined input tags will just automagically trigger file conversions on the iOS side.

I also really dislike Apple's usual "my way or the highway approach" (it's causing my nephews serious issues since some of their remote learning tools use flash which Apple refuses to support) but in this case they are using the right approach to make it a smooth transition.

> it's causing my nephews serious issues since some of their remote learning tools use flash which Apple refuses to support

That's really not Apple's problem. Flash Player is dead. Adobe has declared that all support for the plugin will end in December 2020, and every major web browser has indicated that they intend to discontinue support for the plugin in advance of that date. Some desktop browsers (including Chrome and Firefox) have already disabled Flash content by default, and the Flash plugin for Android was discontinued in 2012.

As a developer I'm totally onboard with Flash having died a while back - and these tools educational suites really shouldn't have anything to do with Flash... All that said, when Apple killed Flash they did it unilaterally and really did break a lot of existing systems, if this pandemic was happening a decade ago I'd absolutely be on an Apple hate train since the sudden drop of support forced people to scramble.

At this point though, Flash is known to be dead and buried and folks that haven't migrated off of it have made their own beds[1].

1. ...And unfortunately caused a lot of headache for quite a few parents with multiple children that are trying to let all their children learn concurrently on different devices they have around the house.

> when Apple killed Flash they did it unilaterally and really did break a lot of existing systems

What are you referring to when you say "when Apple killed Flash"?

The big outcry was back when Apple made it clear that they would never add Flash support to iOS. But that support never existed in the first place -- one can hardly "kill" something which was never alive.

Desktop Safari still supports Flash, for now. It's off by default (with a "click to enable" icon), but that's no different from how it's handled in other browsers. All signs indicate that they intend to remove Flash support with the next major release, but that just puts them on the same track as everyone else.

Refusing to support the tech on your platform is killing it. iOS's big selling point, initially, was as a consumption device - a phone with a browser. Deploying your browser without flash was removing some expected support from the norm expected of a browser at that time.

And yea - I agree that flash is dead at this point and I'm quite happy it's gone. Apple actually contributed significantly to the death of flash based advertisements and there is nothing in the world I hated more than those.

The parent comment said they sent a tweet a week before, and they had something in their faq but it doesn't say how long before that was done.

Generally, when I've worked at places that were not startups a week to get something pushed in to fix something was not reliably enough time.

I didn't see in the article anything about how long they have been aware of the problem, perhaps they became aware of the problem just before the testing was scheduled to start. I guess that is a problem with their QA system, but at any rate I can think of lots of ways that they could have a problem for a week (or even longer really), not be able to fix it in their particular system, and have to notify people.

Of course I agree they did a lousy job of notifying people.

Yeah, I'm not surprised, since corporations like this are more concerned with making sure the Business Impact Assessment was routed in compliance with Standard Operating Procedures, establishing the Quality Verification Steering Committee to discuss possible impact to critical systems, and getting sign-offs from Validation Specialists and Risk Analysts.

Ask me how I know.

> The iPhone is the best selling model in the United States.

To clarify: It has the best selling model, but it is not the most used mobile OS among US mobile phone users.

iOS's market share in the US is 61.25% according to [1].

[1] https://gs.statcounter.com/os-market-share/mobile/united-sta...

StatCounter shows the number of folks who visit sites with StatCounter on it.

Fun fact: iOS users generally do more browsing, so this has a tendency to skew stats like StatCounter.

Similarly NetMarketShare shows Android at over 70%, since they are more business website heavy. This stat is just as flawed as StatCounter's is.
> If they had enough time to warn people ahead of time, they had plenty of time to push a fix to their system for this

At the very least, a message that appeared at the time that one attempted to upload the image with instructions on how to fix the problem on the spot. How hard could that have possibly been?

Quite hard? I mean shame on them for letting this bug through in the first place but I'd be pretty horrified if someone at CB tried to hot-fix this problem out.

This isn't a small agile organization, it's enormous and may not have any route to get a patch out in less than a week due to QA requirements. (That isn't to say such slow deployment processes are good, but they do exist and may be contractually required)

Who said anything about a hot fix? They knew about the problem well ahead of time.
Anything less than 2 fiscal quarters is a hot fix for these people.
> adding support for one more image format

I seem to remember that HEIC is quite patent-encumbered. Could this possibly cost them a lot or be more complicated than you seem to imply?

> If they had enough time to warn people ahead of time, they had plenty of time to push a fix to their system for this

Yeah, no. Absolutely not. All of the testing for their platform would have to be redone, and if a bug is found, then what?

You can argue that they should have done a better job notifying users, but to argue that "of course they had time to push a fix in the week before the most important testing period" is just nonsensical.

ImageMagick supports HEIC to JPG conversion. It would take at most a few hours to hack together an interim solution.
(comment deleted)
That support depends on installing or building native libraries (mainly libheif I think) which is not trivial or may be that something developers can't do due to security reasons, also it's different for each platform.
IIRC, you have to use special flags when you compile from source to get HEIC support. And just because it's available doesn't mean you can legally use it. For example, the HEIF container's reference implementation is pretty explicit about not allowing commercial use [0]. The MPEG consortium lists over 7000 patents on their webpage for HEIC[1]. Making sure that you're bit infringing on those patents and/or working out a license deal with the patent cartel is a nontrivial amount of work.

[0]: https://github.com/nokiatech/heif/blob/master/LICENSE.TXT

[1]: https://www.mpegla.com/wp-content/uploads/hevc-att1.pdf

The software is open source, but (legal) usage requires a patent license from MPEG-LA for the H.265 compression (HEIC is just single-frame HEVC).
I don't think you would be comfortable pushing this few-hours-hack to a system of such high importance. A mistake, be it stupid or complex, could break far more than the issue at hand does. And you would be at fault. Would you like to receive the response of all the students then? Would you really dare to risk this scenario?
I don't think it would have been possible to push a fix that quickly. Verification and sign off on these sorts of systems would require weeks or months to push changes.
Even more strange is that when the file failed to parse after uploading, they just threw out the files instead of keeping them to analyze later.

If they still had the uploads they could go back and convert them properly and apologize for the delay.

It's just bad engineering all around. Even if there was a less glaringly obvious bug that caused parsing to fail, how would they debug that parsing bug without a sample file?

I mean it's not that odd when you think about how software is typically written. The parsing logic probably threw an exception that was never handled and just pops everything uploaded off the stack by default.
I'm not sure how you typically write software, but I don't consider it typical for software that opens a file and encounters unexpected input to throw an exception and then delete the file.

If an exception is thrown and not caught, the software should stop doing anything.

As I said, the file data was likely popped off the stack automatically, no need to write any extra code.
In your model, what's happening to the data in the file system?
In the scenario I'm describing nothing is ever written to disk. The uploaded image data is streamed into memory directly from the socket and is processed in situ, when an exception occurs the stack unwinds and deallocates the memory storing the image data.

Writing extra code to delete a file in a catch block doesn't seem like something someone trying to account for failure scenarios would do, it's much more likely that the data was living in memory and no thought was put into failure scenarios in that part of the code.

But it is incredibly unlikely that web uploads are piped directly into custom software rather than just being written as files which are processed later. That would be an extreme amount of extra work for no benefit at all.
Tomcat gives you a http request object where you can just grab the input stream object and pass it to pretty much every library that processes files because opening a file just gives you a fileinputstream so adding general support for inputstreams is much easier than actually adding support that only works on files.
It's not at all unlikely, this is the default behavior for various setups, e.g. nodejs with express which is primarily a streams based system where you'd have to do extra work to write to disk.
Uploads are often initially stored in a temp directory before they are validated and moved to wherever they are meant to be stored, and the default behavior in PHP, for example, is to delete uploads that are not moved or renamed at the end of the request.
It was never on the file system (kept in RAM) or it was in some temporary folder where files get deleted when an upload request has finished processing the file to prevent DOS attacks. Automatically keeping uploaded files sounds like a really really bad idea.
> The iPhone is the best selling model in the United States.

That's an interesting (and slightly misleading) way to present that statistic. Apple has the best selling models, but does not have the majority of the market by operating system, which is what matters here. It's close, but Android is still supposed to have over 51% of the US market.[1] (If the graph itself is occluded, see the summary below it).

> It is on College Board to support its default image format.

It's a minority platform. It's only a slight minority, but it is one. If you want to make a case that they should support any default format for a platform over a certain percentage of usage (or "almost half"), that's fine, but you can't rely on the obvious argument that it's the dominant platform and thus should be supported, because it isn't the dominant platform.

Edit: Whoops, forgot to include citation

1: https://www.statista.com/statistics/266572/market-share-held...

Oh yes, let’s update our tested and working system, a week before live? Don’t be stupid.

There were probably no dev changes for the entire month before hand.

> even sent out a tweet (which should have been an email) a week before

This problem seems like it could easily have been fixed in under a week.

(comment deleted)
These tests take a not insignificant amount of time and stress to do, especially on top of this SiP situation. Not to mention they cost the students money.

Communicating these issues only over twitter is also not at all acceptable. Plenty of people don't use or rarely use twitter, such that it should not be considered the primary communication channel.

So while yes, College Board is allowing students to retake the tests, anyone affected should be refunded at least partially, if not fully, for having their time wasted. College Board should have had their backend reject invalid formats, not just hang. The result of attempting to upload an invalid format image should have been a 'whoops, please use a different format', but that's not what happened.

This isn't just the College Board. You wouldn't believe how many schools and educators out there now just assume you have a Twitter and Facebook feed and check it regularly. Email and phone calls are completely out of the picture now.
> letting students take the test again.

Yeah, that still fits "our system broke, you're screwed now, sorry".

They have the submissions, the submissions can be easily converted to their target format. That's what they should do instead of asking students to take the test again.

Or maybe they simply delete any accepted[1] submission that they deem corrupted, in which case I have nothing more to say.

[1] Quote:

> Spencer used the same process on the real exam and thought it went through, but he received an email the next day saying the files were corrupted and that he needed to retake the test.

Spencer's file might be on the server but it sounds like their servers flat out refused to accept any files that looked like HEICs - so they never even got them on the server.

That's a stupid decision, especially when the submission window is timed - fiddling with file formats should never be a task you need to do inside of the testing window.

> The website got stuck on the loading screen until Bryner’s time ran out.

If I am to write a system that accepts user uploads, verifying the uploaded file and giving proper error message on failure would've been the first thing come to mind. In this case, per the article, the system was stuck. This is simply unacceptable.

Is it really so tough to shove an HEIC-to-JPEG converter in their pipeline?
Seriously, it's not. It's an attribute setting on the file input field. The iPhone will do the conversion itself, it just needs to actually be told what to convert to, rather than having to guess.
(comment deleted)
Taking the test again is a horrible solution. How is that ok?
Yeah, what a weird "solution" to be okay with. Wonder if they'd be as okay with repeating a workday because their hours weren't logged due to a system error.
> letting the students take the test again

Maybe you're not aware of how much time, energy, stress, etc go into taking these tests.

Imagine if your university lost its records of your undergraduate degree and offered to fix the problem by letting you earn your 4 year degree over again. I think you'd agree that wasn't an acceptable solution.

This situation is not that order of magnitude, but it's similar perhaps to taking an entire college course. My wife works with high school kids and they are losing their minds over this, and I think they are justified.

The FAQ and tweet are clearly the wrong way to communicate such vital information. Neither are required instructions for students. The FAQ is explicitly labeled as being for educators, not students. Neither explains the consequences of doing it wrong and make it sound like something minor such as having to choose a different option if it doesn't work. If I was serious about something like an exam, I'd read all the actual rules and ignore the "important tips" for a "smooth experience" or other crap that's always excessive and usually useless anyway.

It sounds like either they actually didn't know it would crash so badly or they were too embarrassed to admit having such a serious bug but wanted to quietly steer people away from encountering it without them knowing they dodged a bullet. If the latter, then the College Board was acting maliciously to protect their reputation which is really bad.

Even without that, they mentioned in their FAQ that JPEGs and PNGs are the only file types acceptable

That's like telling people what brand of pencil they are allowed to use to mark paper. It's not germane to the test and improperly shifts the burden to the student when the technology to automatically screen already exists.

It might be like saying the students are only allowed to mark their answers in blue ink or black and no other colour rather than saying it's a particular brand.
Everyone can look at a pen stroke and identify the color.

Can you say the same about a photo and identifying the file format?

(comment deleted)
I'd imagine it's worse now, but I was sweating blood during my AP tests 8 and 9 years ago.

If I were told by College Board that they messed up, they couldn't verify what I did, and that I'd have to take the tests again, I'd be livid. I would feel incredibly screwed.

On top of a pandemic, new test guidelines, classes going remote (and the associated growing pains), studying for the test, and some extra stress-studying because some classes inevitably were taught ineffectively at the start of remote courses, now some people have to take the test all over again? That's a lot for a most people but especially high schoolers

To be realistic, that is an acceptable answer if the person being screwed lacks alternatives and negotiating power.

You mean "I don't want 'you"re screwed, sorry' to be an acceptable answer" and I get that, but I'm committed to using honest language about this because thats we you train ourselves to be wary and give these situations the respect they deserve.

No, it's not acceptable. They might be able to get away with it, but that doesn't make it okay.
Far too many technology decisions and implementations in post-secondaries are made by academic/bureaucrats who have no expertise or background in technology.

It's honestly one of the biggest conundrums facing academia.

Year by year, incoming students generally have a higher base level of digital literacy than their instructors, because academic institutions did not prioritize developing those skills 10-20 years ago and the proof is showing in the pandemic pudding.

> Far too many technology decisions and implementations in post-secondaries are made by academic/bureaucrats who have no expertise or background in technology.

Many people who are very knowledgable in technology (the SV bubble is rather an exception) are very conservative in terms of it. Don't confuse good programmers with "technology hipsters".

I'm not talking about programmers at all - rather the technology strategy and policy designers and implementers that come before them.

My background includes software dev in and around online education for almost 20y in both industry and academic.

Totally outside bubbles and following groupthink :)

The conservatism from technologists that you speak of.. in part comes from the politics at post secondaries and the resistance towards adopting technology.

There's no shortage of understanding in most institutions of the problems and how to solve them, only the political will, and leadership who cares.

I don't know what academic institutions you're talking about (it means university in my book), but in non of the academic institutions I worked for did the academics have anything to do with IT decision making (except for maybe filling out a survey). Which is unfortunate because then we wouldn't have to deal with stupid IT people coming from large businesses and thinking that universities are just the same as any business. To give you examples of some of the stupidity I have seen from university IT (and yes they are almost completely recruited from other large businesses): operating system researchers not given admin rights, every semester break reimaging the lab pc and never checking that the special drivers and software for the lab equipment is installed correctly (solution: have the professors/academics check every lab PC before semester starts, great thing to check 200 PCs one week before the beginning of the lectures where you have lots of other things to do), no ability to share calendars with outside people because security (suggested workaround just sync to Google on you phone and use that, I kidd you not). Generally, only buy Microsoft (or some other huge proprietary vendor) tech which can never be adjusted to the needs of the academics actually working with it.

TLDR there is lots of things wrong with It in academia, but academics making the decisions is not one of them. Also, generally most universities I know about were reasonably well prepared for online courses and it worked largely seemlessly.

(comment deleted)
One might also ask why in 2020 your taking an exam and then photographing it.

Some of those with problems actually had real computers as well.

it may be way write physics, math calculation with pen and paper than trying to type that in the computer.
The example given was an English paper
The college board is a pretty badly managed technology and testing monopoly (duopoly). e.g. retrieval of scores in past years for the SAT was gated by region, but if you got on a VPN you could get your scores from unreleased regions. I had a niece provide their credentials to a sketchy website that in the end delivered scores "early", but there was a talk about online security afterwards with the parents and the neice.

I do have some mixed sympathy for having to set up a whole new online testing scheme for the tests due to Covid, but their approach was so odd. Students were also instructed to compose text answers outside the test pages, and copy and paste them into answer boxes. An odd & ugly solution, but it points to at least some thought about trying to mitigate unreliabilities.

> ... We'll just take it on trust that you do so honestly because there's no way you would've seen this coming. ...

I see where you're going here, and I want to agree, but you aren't reckoning with the incentives for cheating on the AP.

My kid is taking the "AP World" test today. One of her classmates was asked to sit by a different student to coach them at their computer during the test, because the test is done remotely this year rather than in person.

I'm afraid that if you give N people an option like this, a fraction will exploit it.

They would have a server log of who tried on time to submit it and had server errors. Those people could not have foreseen this... so we can accept their late submissions
While it sounds like the College Board may be at fault for some of the issues, like the test timing out when HEIC images were sent or the initial communication of the issue, I wouldn't be so quick to place all of the blame on them. Part of the problem is how we more-or-less glorify an ignorance of technology. This can be seen in both students trying to change the file type by changing the file extension and JPEG being referred to as a "most compatible" rather than by name in the settings.

EDIT: the comment about "most compatible" was based upon information from the article, rather than access to an iPhone. I have since looked it up, and JPEG is mentioned underneat the option.

I am saying this because people need to have a degree of understanding of technology in order to have some control over it, even though I recognize that some people will construe such statements as being elitist. That depth of knowledge does not even have to be particularly deep. In this case, understanding that photos may be represented in different ways by the computer and that you have to ensure that the recipient can accept that representation is important. After all, this is not the only case where they will run into this issue. It is a big part of the reason why businesses settle upon some form of standard for the exchange of data, may that be through common business practices or a standardization body.

> JPEG being referred to as a "most compatible" rather than by name in the settings.

The settings do explicitly mention JPEG though:

> Most Compatible will always use JPEG/H.264...

Ironically the person from the article who attempted converting the HEIC files to JPG by renaming them was taking a Computer Science test.
Computer literacy is not one of the topics covered by high school computer science.
I have to teach an entire lesson about downloading a file, finding it in the downloads folder, and unzipping it.

Apple did a good job abstracting away the file system.

Exactly. Simple tech literacy was missing in the 1% of students that failed this test through their HEIC submissions. Even though I acknowledge the panic of a weird circumstance during an important test, editing the extension in file explorer is just too far from logical.

Apps are becoming so streamlined and gesture intuitive that children and young adults might actually be regressing in their tech competence while increasing their reliance on it. This is akin to cars packed with electronics, easing use while decreasing DIY repairs and understanding. This decreases our right to repair as a consequence of ease.

Many children will not navigate the antiquated forums and php sites that taught me problem-solving and a degree of independence. I'm not sure what will replace this lost experience for them.

I guess I joined the tech admin / helpdesk fields as a way of putting my money where my mouth is, like buying calls on these services' growing necessity.

> Apps are becoming so streamlined and gesture intuitive that children and young adults might actually be regressing in their tech competence while increasing their reliance on it.

This is truer than you might imagine.

I recently had to explain to a 16-year-old intern that their phone is a computer. And that "apps" are recipes for that "computer". And that humans made all those recipes sitting on the phone.

This was clearly a quite shocking revelation. It wasn't a hard conceptual leap, but the "app abstraction" is so total that it completely cognitively blocked the idea that their desktop computer and their phone are effectively the exact same thing.

Of course, at that point, the obvious questions started: "So, I could run <desktop program> on my phone? Why can't I do <deskptop action> on my phone?" etc. Eventually heading to the inevitable "Why do the phone manufacturers prevent you from doing something you want to do that the phone is perfectly capable of?"

>Simple tech literacy was missing in the 1% of students that failed this test through their HEIC submissions. Even though I acknowledge the panic of a weird circumstance during an important test, editing the extension in file explorer is just too far from logical.

I don't think this is a fair statement. Image file formats are something that very few people need to think about these days. As another commenter pointed out, why wouldn't changing the extension trigger the OS to convert the file? It was worth a try.

Not everyone needs to be an expert in everything.

> why wouldn't changing the extension trigger the OS to convert the file?

If you change the extension on any operating system and then open it in the image viewer, it does appear to work. It doesn't as image viewers do not trust the file extension and ignore it, but there is no indication of that to the average user.

> image viewers do not trust the file extension and ignore it

Not all of them; for instance, if I rename a .jpg to a .png exension and try to open it with Gnome's EOG, it presents an error saying "Not a PNG file", instead of showing the image.

A behaviour which I'm quite fond of, as it allows me to fix the file extensions. I generally don't like relying on the file extension for information, but it helps me keep my media collection clean in this case. It'd be ideal if it displayed the image anyway, while also displaying a warning message that says the extension doesn't match the actual file type.
>After all, this is not the only case where they will run into this issue.

The AP exam is taken by high school kids. This very likely is the first time they have run into this issue. Blaming them for not knowing how to deal with it isn't "elitist", it just lacks empathy.

It's also elitist for Apple to change the default file format to one that's patent encumbered and not compatible with basically any other software aside from their own.
Making the test user-friendly and to fail elegantly is the College Board’s job. That this issue occurred in the first place shows a complete and utter lack of any competent QA whatsoever, any competent programming, and any competent risk management.

The blame is 99% in the CollegeBoard’s hand. It is completely unacceptable for them to fail in this manner. If you are an institution that holds so much power over students’ lives, failures like these must be punished severely, but instead, the Board is getting off with just making the students re-take the exam when they are coming off of their most prepared state.

The College Board is an absurd monopoly. Students have no other option than to pay them egregious fees for taking/sending tests. Of course it's going to be run poorly.
Yup, there is no incentive for the College Board to improve because they know they have every students’ future by the balls. What are the kids going to do, protest or abstain? Good luck getting into a good college!
FWIW, if you airdrop files from phone to desktop, they come as HEIC, and it isn't always easy to convert them once you've got an HEIC file in my filesystem instead of my app.
So if you need more time to cram just upload with this image format
(comment deleted)
Ugh, as someone who took a number of AP exams back in the day, the idea of completing the entire exam and then having to redo it weeks later because of something like this is just painful. I think I agree with the sentiment that these students should be allowed to re-submit their existing answers, despite the obvious concern about cheating.
I am 100% on the side of the school. Unlike with JPEG, everybody who wants to work with HEIC should pay licence fees. Also, HEIC is like 50x more complex than JPEG.

I hope the world will never get to a point, where each phone brand stores photos in their own format, and you need a special software from the phone manufacturer to view the photos (that is what we have now with raw photography formats, and what we used to have in the past with phone chargers).

Okay so JPEG for the rest of eternity then?
I recall the shift from jpeg to png as a web default. Many sites would not accept one or the other. Eventually, png became more and more popular and "won." The same can happen with other formats, but it takes time. Any any site/org/company that deals with these uploads or displaying the images needs to be clear on what they can do and error out early when they can't do it. I recall "sorry, you tried to upload a png file, we only support jpeg" messages with links to details about the difference and how to convert them. And mime inspection worked back then too, so changing the extension was not good enough.
(comment deleted)
Of course not. But if we are talking about replacing JPG, two things are necessary: a new format should not be restricted by patents and licence fees, and such movement has to be coordinated with all other "players" in the industry. Apple did not do any of it.
But that isn’t true about HEIC. There isn’t a license fee.
HEIC is based on H.265, so there is a whole separate organization dedicated licensing and litigating its patents.
I've never even heard of HEIC before, I'd probably make the same mistake.
Soon to be listed on College Board software dev requirements: Minimum 5 years experience with the HEIC image format
JPEG is like 50x more complex than PPM, but we eventually moved off that standard as well due to storage size and feature limitations. Plus, it's being adopted by both iPhone and Android--it's not like it's a proprietary format specific only to Apple.

Not to mention HEIF/HEIC images take up a fraction of the space of equivalent quality JPEGs, which is significant if you're a shutterbug who fills up their phone with photos.

Maybe we should have some standards with very simple formats that are "universal" and should be supported everywhere to solve this kind of problems, even if they are not ideal.

I understand the pros of complex formats, but then we end with things like browsers that are many million lines long. It might not seem too bad, but in my opinion that detracts not just from open source, but also making computing accessible, universal and usable for everyone.

There are many "smart" ways in creating JPGs. JPG compressors improved in recent years. If you have a HEIC image, it can usually be saved as JPG with the same quality, which is larger by only 10 - 15%. The term "fraction" is a complete nonsense.

Also, you can switch your camera settings in the iOS to save a JPG instead.

Windows, macOS, iOS and Android all support it though.
But no browsers do [1]. For an OS that does its best to hide file types & extensions from the user, it's absurd to not have robust file type conversions when moving/sharing files between apps.

[1] https://caniuse.com/#feat=heif

"Wants to work with" doesn't apply here. This is what the phone does by default, so it's not a conscious choice of the user. Also, if the college had written the `accepts` field on their form correctly it would have been converted to JPG automatically when they uploaded it.
Frankly I think the root cause of this is making technology so obfuscated in the name of making it easy that people are working with files who have no idea what a file format is. It's as if someone who did paperwork all day couldn't tell the difference between printer paper, construction paper, and plastic transparencies because they only ever encountered them in the appropriate contexts.
Clearly needs to be solved and fast, and I have huge sympathy for those affected.

However to me the more interesting point is why anyone would want to submit a handwritten script when they could type it. Not to sound like an old foggey, but in my day the only people who got to type were dyslexic and it gave them a huge advantage (no doubt why so many parents were having their children tested). Even if you could write fast, why take the chance that your exam efforts could be rejected based on a marker not being able to read your writing. Add to that the ability to compose text far more easily when typing and for those with a modest amount of practice the dramatically faster rate of output and it seems really strange that everyone doesn't type them and they just avoid this problem entirely.

My first thought was students who don't have access to a computer outside of school. It seems like these students are taking the exam from their phones:

> But the testing portal doesn’t support the default format on iOS devices and some newer Android phones, HEIC files.

Some tests require symbols (like greek letters), which aren’t easy to type by default. Also, people have been practicing all year by handwriting responses (since we didn’t know it would be online, obviously) - so a handwritten option is accommodating that.
I see, so typing entries is purely a Covid-19 reaction? Sorry, hadn't appreciated that earlier.

Definitely feels like something to keep after things go back to closer to how they were.

Some of the exams (like biology) no longer require calculations this year--instead of doing the calculation, you just explain how you would do it. This has been confusing for a lot of students, but it solves the "special input methods" problem.
Right, but Biology isn't the only AP exam that requires calculations. Dealing with integrals for AP Calculus is much more of a pain.
This brings back horrible memories of the janky-ass software we used in calculus for our exams. It took probably 10x longer to answer a question with the GUI because of the symbols and half the time they'd be marked wrong because the system couldn't handle equivalent variations of the correct answer.

I doubt things are much better today. This was probably the "low-tech" solution to a decade+ of dealing with the above problem.

AP stat/ AP Chem/ AP Phys etc are about math formulae and explaining the calculation. I do not want my kids to learn TeX or figure out word formula editor just before the AP exams.
This brings up an interesting point: how come math input is so difficult on a computer? Even TeX seems like an awful solution for this.
Ask a Chinese or Japanese friend why typing is hard.
It's not though. You just type out the pronunciation and pick from a list if there are multiple. I'm actually surprised we don't have something like that for standard math input.
Chinese friend: "If you use pinyin not at all. There are other ways such as stroke based, I have never learned it."

This matches my prediction. Typing Japanese isn't hard either (and I'm just a beginning learner) -- typing ha in JP mode gives は, or if you're only in JP mode the typical layout assigns that to qwerty 'f'. Like Chinese, IME drop-down selection works well for kanji.

It's not though? $x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$. If you have a visualizer hooked up while you're typing, even easier.

And then there's Mathematica.

I mean you essentially need to learn a pseudo language on top of math to be able to do that. The barrier to entry compared to writing pen and paper is much higher, and math is hard enough for a vast number of Americans.
The context here isn't the average American, but a high school student taking an AP test involving writing math -- where scoring well counts for the same credit as having passed the equivalent entry level course(s) in college.

Besides, math is already pseudo language on top of pseudo language. Learning notation is part of math, I'll concede learning to type an expression on a computer is a different notation than writing it with pen, but if you can't learn that, why learn math? Each domain does its own thing too and isn't even necessarily consistent. Guy Steele gave a great talk a few years ago on "Computer Science Metanotation", and that's just one area of math: https://www.youtube.com/watch?v=dCuZkaaou0Q (Edit: And to conclude here, learning to read and write with some notation tends to be easy, it's learning what the math actually means that is the hard part.)

>but if you can't learn that, why learn math?

You can say this, but you won't like the response. The response is probably "okay" and they just won't learn math. I don't think the world is better off when that happens. It's not a question of whether people are capable of doing this, it's a question of whether this is worthwhile.

What you wrote is almost unreadable to me in the text itself. The only reason I got it is because I recognized the formula from sqrt(b^2 - 4ac).

x = (-b +- sqrt(b^2 - 4ac)) / (2a)

This, however is somewhat readable. Requiring me to use TeX or Mathematica is what I would consider difficult. Whenever I actually need to write math they won't be available. I'd have more luck using custom emojis as math symbols in most cases.

Ok, how long do you think it'd take to get somewhat comfortable with reading/writing such things? Would it really be "so difficult"? You can also write what you wrote in TeX too, it just won't look as nice in the output and might mislead a reader into thinking a multiplication of s, q, r, t is happening as well as wondering what's going on with the "+-". ± is a symbol too you know.. On Linux it's just compose key then + then -. (Edit: while I'm mentioning it, the compose key is great. Could write it as x = (-b ± √(b² - 4ac))/(2a) -- with √ being compose then v then /, and ² being compose then ^ then 2.)

You can also write that in Mathematica, and it will look nice + understand that sqrt() is the square root function, though I think it will interpret the "+-" as "-".

Under what conditions are you writing math on a computer where you don't have proper tools to do it? (Mathematica isn't the only one, and even if you're using a programming language like Python you can write almost exactly what you wrote by adjusting/clarifying the operators.) Where possibly the most math-written-with-computer happens is MathOverflow, and hey, they use TeX extensively. And when you ask a question, they show a preview below so you can make sure your math is formatted in a readable way too and not just in the easiest way to type.

>Under what conditions are you writing math on a computer where you don't have proper tools to do it?

Chat applications. From IRCs and MSNs to Skypes, Telegrams and Discords. Other places would be comment sections such as these. They're never going to have built in TeX or any other such support.

Does the compose key work on different keyboard layouts?

> Does the compose key work on different keyboard layouts?

Yup, switching to Dvorak and the sequence is the same (. then [ on qwerty). There also seems to be an ibus mode for it in ibus-table-others, along with a mode that tries to map LaTeX to unicode symbols, but I haven't tried either.

As for your other remark, I remember back in the day using the Gaim-LaTeX plugin to communicate LaTeX with people over MSN/AIM/IRC/etc... If you had the plugin, it would auto-render LaTeX for you. I also think there may have been a plugin that would send the other party an image instead so you could still share if they didn't have it. I haven't used anything like it in a long time as my need to communicate or have communicated formatted math to people over IM is pretty much 0 these days, but perhaps https://sourceforge.net/projects/pidgin-latex/ still works. But also on IRC, many rooms have bots that accept programs to eval and print, typically used for math calculations, and then you just use the syntax of the language instead of LaTeX.

For Skype, Telegram, Discord, comment hosts like HN or Discus or blog software, that's a failing on them for not implementing a very well-known standard (TeX)...

But you can still share raw TeX strings, especially since almost everyone at least implements some sort of blockquote or monotext formatting system where it's possible to bypass markdown et al. rules turning 345 into nonsense. And while you may have found it difficult to read the equation I posted earlier, I'd be really surprised if it took you a long time to get comfortable enough to read it and other arbitrary equations around whatever level of math you have in their raw TeX form (especially if the poster bothered to format it a bit more nicely with whitespace, which I didn't do). It's kind of like getting used to reading regexes, but even easier.

I guess maybe you could try to convince me it's more difficult to pick up (even for a high schooler) than I think, perhaps since I've just been used to it for so long and the last time I saw someone pick it up was in college? And of course this is only talking about writing math with the purpose of displaying it nicely in the end, actually calculating will tend to involve another syntax yet again but I don't think those are typically bad either... Perhaps raw Python can be terrible if you're trying to do symbolic math, but then why wouldn't you be using a system explicitly for that or even in Python use SymPy (and I'm just now remembering there's that whole Jupyter ecosystem that I'm sure has support for SymPy and rendering nice looking math with LaTeX). I've enjoyed Maxima, which even in a terminal does a good job with ASCII graphics http://maxima.sourceforge.net/i/maximacl.png but of course there's a graphical front end.

I got a bit off topic but as a last resort to communicating math over such channels, you can go to sites like https://www.codecogs.com/latex/eqneditor.php?lang=en-en and write out your math (it even has some buttons to help if you don't yet know the TeX-isms) and share a link to the output like https://latex.codecogs.com/png.download?%5Cdpi%7B120%7D%20%5... Slack even downloads and displays it for you in-chat.

(It's also worth pointing out that Discord has an ok-ish Pidgin connector... and even my ghetto home-grown blog has had LaTeX support for posts and...

I was about to write math exam using latex

It'd be one of the biggest mistakes because I'd need like 2 hours more to write it.

I was running out of time HARD despite being somewhat experienced with it

I would have preferred taking AP stats/physics/CS/Calculus with a computer, and that was over a decade ago. (AP French also used cassette tapes to record yourself with. Looks like they transitioned to the modern digital age in 2017, but I'm sure every year before then they had a sizable number of students with blank tape or broken tape submissions.)

I had already taught myself the basic TeX for math formulas before I took any AP test that could have used it, I even set up a PHP portal to do simple chemical equation balancing that would use LaTeX behind the scenes and spit out PNGs. There are nice JS libraries to do everything client-side now, so in any online portal it could be seamlessly mixed in with a reference and live-preview right next to it. All I'm saying is it's really not hard -- you can learn what you need in under an hour -- and if you step back and think about the type of student taking these tests they're also the type of student likely to pursue these subjects in college, so they're likely going to have to learn much more of LaTeX eventually anyway.

Where neither plain text nor LaTeX help much is when you really need to draw something out. I'd say mouse drawings are better than nothing, but you can also just remove questions/scoring that rely on display of such. Nothing stops a student from drawing privately on their own paper -- indeed as I recall a lot of the questions from some of those AP tests were exactly like that: do your work on paper you throw out after, because the answer is multiple choice.

It's really most surprising that they didn't go with a fully online test (which means no manual submission of purely offline artifacts) and haven't been preparing for such at all over the years...

Failing a test because the upload used the wrong image format is the 2020 version of failing a test because you used the wrong type of pencil to fill in the Scantron bubbles.
> Basically, only Apple (and, more recently, Samsung) use the HEIC format — most other websites and platforms don’t support it. Even popular Silicon Valley-based services, such as Slack, don’t treat HEICs the same way as standard JPEGs.

This is the key part. Many in the software industry still believes that the start-up mindset of break things move fast applies to us. The economy depends on software, governments depend on software, education depends on software, lives depend on software ... but we treat software as a toy where a new fancy image format is a reasonable change to make because our platform gets a little more fancy and for sure a little less compatible to lock-in users.

I am all for regulation, and it is coming, as the software industry has shown to be an immature risk-taking mess. But, it can be a more bearable amount of regulation if we exercise some level of self-constraint on how we break each new release of software.

If we keep blaming traditional business (education, accounting, grocery stores, etc.) for not "updating fast enough" to new trends, they are going to justly react to our demands on their thin margin profits and ask the government to stop us. When you do not know if your business will survive another month, to have to invest non-stop in new software without any tangible benefit is an unreasonable demand.

Software has become too important the past twenty years. It is time that as a industry we realize that and act accordingly.

You're suggesting bureaucratic "software" works better?

I don't put as much faith in that as you.

> You're suggesting bureaucratic "software" works better?

It works for building regulations, for electric regulations, for food safety regulations, for all the rest of industries actually. If anything we see people dying because that regulations are not enforced or are removed after lobbying.

So, software is not going to be "better" but more reliable and a less costly foundation for the rest of business and industries. So, software is going to be better for the end users even if it is worse for us to develop.

Do you think that all the students that are now worried of failing are thinking "at least I got HEIC images in my phone". They do not care, and why should they?

Regulations are a trade off. How deep and or even intrusive future regulation are going to be depends on how much misalignment there is between Apple/Google/Facebook business models and everyone else needs and wants. Each time that the Internet is broken and costs people time and money, the fingers are going to point to our industry.

lol "works"

Regulate software and you will kill it.

One has to wonder how Salesforce ever got their huge glass building in the SF skyline, what with all the regulations preventing anything from working.

Engineering is all about working within constraints. Too many people in software just want to do everything their way, oftentimes what they see as the easiest and quickest way, without worrying about how it affects other people.

Your salesforce example is so comically bad I don't know whether to laugh or to cry. The immense amount of regulation in the city makes it almost impossible for the now unicorn startups, such as Stripe, to find office space inside SF. Those companies were in the process of moving out of the city (or now, going full remote). That same regulation makes it incredibly difficult to build housing. Your intentions are noble, but your outcome is bizarre. Instead of asking "Why is Apple inventing formats", why not ask "Why didn't College Board test their platform on the largest mobile platform in the US?". HEIC has been around for 3 years and would have been the default on any updated phone as old as the iPhone 5S.
> If anything we see people dying because that regulations are not enforced or are removed after lobbying.

I want to push back on this point a little bit. People die as a result of regulations too, it's just less visible. Here's a very recent example. FDA regulations prevent other labs from creating their own COVID-19 tests, but the CDC tests didn't work. This delay probably lead to people not being diagnosed (and thus not receiving appropriate care), as well as much more spread throughout the US.

Another example would be the FDA approval process for drugs. A drug not being approved probably leads to some people dying, since it may have worked well for them. Zoning regulations in SF probably fall on the definitively net-negative side.

Now, my point here is not that we should remove all regulations. A bad drug being approved would lead to deaths too. Rather, I'm trying to make the point that restricting something has a cost, just like not restricting will have a cost.

I'm not sure where you got that impression. I think the parent was saying that software is extremely crucial now, and technology companies can't continue this trend of randomly breaking traditions for the sake of moving forward.

Software is critical to the function of society. And society can't afford to keep up with the rate of emerging technological trends, it's just not possible. Technology companies have to continue to support interoperability with the lowest common denominator systems.

This is significantly worse than Apple ending Flash support. At least that was announced well ahead of time and was major, major news. This migration to a new default image format is a blindsiding. Three years is not really an appropriate time window for such a transition.

> Software is critical to the function of society. And society can't afford to keep up with the rate of emerging technological trends, it's just not possible.

You expressed it better than myself. :)

Plus the backend doesn't move fast. The .net framework only got a json serializer recently. I am not holding my breath for system.drawing to handle HEIC!
> The .net framework only got a json serializer recently.

What do you mean by recently? I am not a .net user, but this seems quite basic.

gp is probably thinking of system.text.json which was only added to .net core in version 3, which less than a year old. But it's not been high priority to add because of a very well established open source project called JSON.net that has been around for ages.

However the full framework has had a different JSON serialiser (DataContractJsonSerialiser) since v3.5 in 2007.

Early when JSON was new, people were using the JavaScript parser included in .NET to get the values. Then Microsoft build a small JSON parser for their ASP.NET library. But then James Newton-King build JSON.NET and Microsoft eventually switched a lot of their libraries over to it because it was just very good. It could do a lot of stuff very fast with a nice API.

Last year Microsoft introduced a new and more efficient way to allocate memory natively into .NET Core 2.0 (Span<T>). Since JSON.NET is still used by .NET Framework that doesn't support the new API, Microsoft created System.Text.Json that includes a new JSON parser that utilizes it. The first Microsoft project to use the new parser by default was ASP.NET Core 3.0.

(comment deleted)
He probably means in the standard library? According to git NewtonSoft.JSON (the defacto standard) has been around since the 2007.
DataContractJsonSerialiser has been around since .net 3.5 which is 2007, so 13 years. And I think the open source JSON.net has been around for longer, but I can't find a version history right now.
NewtonSoft JSON (an open source library included in official sample projects until Microsoft made their own) was first released in 2006, AFAIK.
The .net framework only got a json serializer recently.

If by "recently", you mean more than a decade ago...Unless you are specifically referring to the web portion of .net (i.e., core or asp.net) and not the framework as a whole.

I don't feel like Apple adopting a new format inherently means they're moving fast and breaking things. The work on HEIF started in 2012, and Apple has used it since 2017. 8 years isn't exactly a breakneck speed.

First off, they do a good job of converting it to a JPG when necessary. They've thought about backwards compatibility.

Secondly, if we didn't move forward, we'd never see any innovation. HEIF is smaller and allows for cool features like Live Photo.

Lastly, iOS is the second most popular phone operating system on the planet, and evidently they're asking students to take a picture of their answers with their phone. Is it not reasonable to expect the College Board to test it?

JPEG2000 is... 20 years old and almost no one outside of specialized applications uses it either.

"Innovation" is about the last thing you want in an interchange format. Old and boring works every time.

(Opinion of someone who maintains legacy software and has suffered from far too many breaking changes.)

Someone needs to be the first to push it. In this case, Apple is probably the #1 or #2 generator of photographs on the planet, and it's a lot easier to make something happen quickly when the format is supported in that way.
HEIC is heavily patented. If it was apple's intent to push a new image format for everyone, they chose just about the worst one. It's much more likely they decided to trade off interoperability for lock-in and reduced file size.
HEIF (H.265) is heavily patented, so 8 years is way too soon. We need to wait 20 years for the format to be freely usable.
Hopefully they change to AVIF soon. Apple has always been the one to hold back free file formats in the past though.
Uploading images from my iPhone to Google Drive results in HEIC files that I have to manually convert as well.
I fault Apple for being too heavy-handed with making HEIC the default photo file format when even in recent versions of MacOS like Sierra, the Finder app doesn't know what the heck a HEIC file is! Apple hasn't released an update patch to fix either, unless you consider upgrading MacOS to Mojave an update patch!
Yeah, that is weird that OSX can't deal with HEIC well.
What regulation would have prevented this bug?
"The state should have protected me from Live Photos" is the weirdest take I've seen in a while.

A regulatory regime for this space would have been focused on protecting the livelihoods of 24-hour photo labs.

What saddens me the most is to see those kids who grew up with a smartphone in their hand trying to convert a picture by renaming it. It is a problematic form of computer illiteracy.
> What saddens me the most is to see those kids who grew up with a smartphone in their hand trying to convert a picture by renaming it

Why shouldn't that work? I think it would be pretty great if changing the file extension popped up a helper that asked me if I wanted to convert from HEIC to JPG?

Really, no-one should have to think about file formats when they're trying to do something that has nothing intrinsically to do with file formats.

Seems more like a failure of software engineering, to me.

Maybe for common formats, but that assumes the file was correctly named to start with. It also assumes there's a trivial or reasonable conversion between formats. What happens if I rename a CAD file to MP3?

The failure of engineering was clearly with the test authors - they should have been validating their inputs.

> What happens if I rename a CAD file to MP3?

"This kind of file is for a [computer-aided design system]. It is not an [MP3 music] file and so it cannot be used by [music playing software]. Would you still like to rename the file?"

People who grew up with cars still frequently can’t change oil or change flat tires.

A huge chunk of people will always do the minimum for basic usage and never dig deeper.

It gives the appearance of working on Windows. If you change the file extension of a picture, you can still open it, so it may come from that experience.
It works pretty much everywhere. None of the major OS’s trust the extension for images.
I want to caveat this a bit. The OS does trust the extension of any file (at least MacOS/Windows). If you change a .png to a .docx, the OS will launch the handler associated with .docx files. If you change a .png to a .jpg, the OS will launch the handler for .jpg files. Chances are that program is the same for .jpg as it would have been for .png. When that program launches, reads the file, it probably looks at the file signature and then appropriately parses the rest of the image data.

Arguably, the user has been trained to think that renaming between image format converts between the two because of the image processing program correctly parsing and displaying the image, rather than displaying a message that the user opened a .jpg file but it was really a .png.

There are lots of website and apps where renaming the file is the best solution for an enduser, because of systems that are the counter part of this that limit the option on the frontend but allow it on the backend. There’s no reason why any system should care about a file’s extension type. It’s meaningless.
Yeah, I was going to add that Verge seems confused on this point too.

> Senior Dave Spencer took a demo test before his Calculus AB exam to make sure he understood the process for uploading photos. He Airdropped an iPhone image of his responses to his Mac and tried to convert it by renaming the HEIC file to PNG. Changing a file’s extension does not guarantee that it will be converted, but Spencer was still able to submit the demo test with no problem.

> Spencer used the same process on the real exam and thought it went through, but he received an email the next day saying the files were corrupted and that he needed to retake the test. The College Board’s tweet went out just a few hours before Spencer’s scheduled exam; he doesn’t have a Twitter account and didn’t see it.

Obviously changing the file extension just bypassed the filtering that allows the demo test to be submitted. It's just checking that the extension is in a whitelist. There's no "does not guarantee that it will be converted" about this and The Verge's reporting is misleading on that score, IMO. Changing the extension simply does not affect the problem, it just means you're lying to the website about the format of the image.

Here you go college board, this one is for free:

    heif-convert -q 95 "$i" "$i.jpg"
I think this year is going to have to be written off in terms of secondary education.

These AP tests, which are already probably one of the few objective competence-based exams, are going to be not trustworthy given all these issues. While probably not being grossly cheated on under this new format by huge numbers of students, it just is not believable that they're producing results fairly comparable with controlled testing environments.

Add to that the asinine notion to move everyone to Pass/Fail (or even "all-As", ala Berkeley) out of equity reasons, and this year is just an exercise in social promotion -- it's for sure not an exercise in effective education. I'm sure this will just add to the calls to toss out all tests (SAT, ACT, AP, etc), and just move to having your own teachers assess you on whether you're ready for college (no unintended consequences there, I'm sure!).

I think you’re confusing credentials with education.

While education may also be in a questionable state this year, it is a different issue than not being able to submit the answers on an exam.

The problem is that we already don’t care about the learning, just the credentials. Everyone making these accommodations is doing so because they know that there’s no point on holding students back when it doesn’t help anyone to do so. Certainly not the students, but also not the school systems, the colleges, the future employers, and not even society generally.