Hacker News new | past | comments | ask | show | jobs | submit login
Students are failing AP tests because the College Board can’t handle HEIC images (theverge.com)
669 points by danso on May 21, 2020 | hide | past | favorite | 553 comments



A lot of comments are arguing about whether the software should have been modified to accept the HEIC format.

Let's go with "no" for the sake of argument. They probably can't accept an mp3 of me singing my answers, either. But!

If I upload an HEIC, an mp3, a keynote file, or anything else unacceptable... Why doesn't the site provide an immediate "File format not accepted, please upload .gif, .jpg, or .png" message?

According to the article, the software would actually just hang. I think there's room to argue about whether they need to support the default format of an extremely significant platform for students. I think there's room to argue whether they should know enough about INPUT tags to let the browser help with this.

But while we're arguing about those questions, can't we all agree that simply hanging without providing a useful error message, and without giving the student an opportunity to re-upload their image... Is unacceptably poor software design for an institution that holds people's future in their hands?

I don't know about you, but if I were an American college student, I'd now be wondering what else they have kind of slapped together without thinking through graceful error handling?


It does have pretty much exactly that message. The corruption problems came from students seeing that only PNGs/JPGs were allowed, then trying to "convert" the file just by renaming it.

What they're doing is the same as 99% of other sites that expect images. But it's probably fair to expect it to be even more streamlined (i.e: clear conversion instructions) given the circumstances of a time-limited exam.


No, what 99% of sites are doing is

    <input type="file" accept="image/png, image/jpg, image/jpeg" />
If you do that, Safari will convert the HEIC image to a JPEG automatically when you try to upload it.

What they did instead was to poorly reinvent the accept header in Javascript as follows:

    <input
      type="file"
      ...
      onChange={async e => {
        const split = file.name.split('.')
        const fileType = split[split.length-1].toLowerCase()
        const isAllowedExtension = extensions.includes(`.${fileType}`)
      }}
    />
(per https://news.ycombinator.com/item?id=23261598).


That might be part of the problem, though other comments also point out that students were copying file to a computer, then changing file extension, then uploading. Possibly this was as a result of the iOS browser rejecting the file in the first place due to the shoddy input filtering mentioned.

But going a bit bigger picture, the problem is that we still use file extensions to denote file type.


This keeps getting brought up because there was one anecdote in the Verge story about a student who renamed the file on their computer. (Which still shouldn't have caused the test to keel over, but it's at least slightly more understandable.)

However, there were many other reports of students going the more "normal" route of just uploading through their iPhones, which caused the website to outright hang.


> If you do that, Safari will convert the HEIC image to a JPEG automatically when you try to upload it.

That’s quite impressive actually and much more than I would expect from a browser’s <input type=“file”> control.


It's also not what a browser should do.

JPEG conversions will vary in quality and size. On some sites (e.g. a CMS), quality can be sacrified to stay within file size limits.

On other sites, like photo printing services, quality is much more important.

These may be unusual cases, but silent browser assumptions are still an overstep.


There's nothing stopping the user from doing a conversion themselves if they want to (and know how, which is asking a lot).

The server is saying it can't read the other file type, so the alternative is to fail.


There's a medium option: have an alert popup saying

    Convert the image to a format the site accepts (jpg)?

    [ ] Don't show this message again

    [OK] [Cancel]


Anecdotally, yesterday I accidentally learned that my relative clicks OK in any dialog window within 200ms without even attempt to read the message. So the alert you suggest would slightly help 1% of geeks and will annoy 99% of the users.


Compared to the option of not converting, it would help everyone, reducing annoyance.

Also I'm not sure if you can generalize from your one relative to 99% of users.


While it may not be 99%, /r/talesfromtechsupport on reddit has enough instances of this to suggest it is extremely common user behavior.


Just to give credit where it's due here, I don't think I've ever seen a client side form check upload sizes before. I've had many frustrations going through a form upload then refreshing to a page that says "your file was too big".


Most other sites would accept the upload, try to parse it and then return an error message. Its always the sites fault if it just gets stuck


Eh that's not often a good idea. The service should only look at the file header for the mime type and decide based on that if it should even begin to upload.

Mime types can be spoofed and if you read the data blob's mime from its' type, then just an extension rename will fool it. But if you look at the magic numbers you're saving your server's resources and the uploader's time as it doesn't even try to move the file if the mime is not acceptable. No reason not to do it on the client-side first.


> The corruption problems came from students seeing that only PNGs/JPGs were allowed, then trying to "convert" the file just by renaming it.

I mean ... isn't that kind of a classic trick when handing in homework you didn't make? Just rename some file to .doc and claim it got corrupted?


File extensions have terrible usability. People changing the extension expecting something to be fixed is a classic misunderstanding. Many people do this every day, decades into personal computing.


I don't understand why no one is blaming the education system?

How is it possible that students that are being considered for "advanced placement" are not familiar with file formats?

how horrible and backward your education system must be? This belongs to basic literacy in the modern world.

Note we're not speaking about old people who were exposed to files for the first time while they had to balance a family life and other responsibilities.

We're speaking about people that were forced to spend more than half of their lives learning !!!


Because in a world where apps do everything for you and 80% of your use is on a phone and the remaining 20% is either for a once a year use case, you don't need to worry about image formats.

Even as a software engineer, I haven't used a desktop or windows in 5 years. I haven't used TheGimp (or any other non web/app image manipulation software) in 3 years.


that's interesting, so you use an iPad for your day to day programming?

from my experience converting ppt/word to pdf is a common enough use case that I would've assumed the majority of non-tech people run into it.

Latex is also a common case where you run into file extensions.

note I'm not expecting them to understand the difference between extensions, just what they mean and how to google how to convert between them.


They don't learn any critical thinking skills. Memorization != learning.


It should go a bit further than what you're suggesting even. Any half-serious upload of a document or image now, less high stakes than a CB test, generally displays the file you upload for you to verify. Ie, "here's what we have from what you uploaded. Is this ok?"

The college board should have had a list of accepted formats, should have included instructions that they put in the tweet in the upload UI, and should have had an uploaded document verification process. This is solely the responsibility of the CB, and is deceitful at some level, by leading students to believe they were complying when they were not.


Just think, with this level of incompetence here, how much are these tests actually worth?


    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.' }
Or, maybe theverge is just lying or relying on the misconception. If you think renaming your file is the same as converting your file, maybe you are misplaced in the advanced placement program...


It’s amazing to me that so many are blaming Apple. Despite the fact that this site is all about new technology (so ironic!), uploading a photo from an iPhone isn’t exactly an edge case. They should have tested this, and apparently they did enough to send a tweet about it.. as if that’s enough. Clearly the college board dropped the ball in adequately informing people of their not-great workaround, instead of either specifying the accepted types directly in the web page’s input tag (as many have pointed out, and thus would have just worked correctly in the background), or by accepting and converting HEIC files themselves. At minimum, they should have put their suggested settings changes into the webpage itself before you started, and/or given a practice website to make sure it worked correctly.

College board owns this process, and it’s their job to make sure the setup works correctly for all students, including those who might not all be technically inclined.


Using HEIC apparently [1][2] requires a license and is patent encumbered[3], so I actually blame Apple for using a closed format by default.

[1] https://forums.developer.apple.com/thread/97036 [2] https://news.ycombinator.com/item?id=17587923

[2] http://www.hackerfactor.com/blog/index.php?/archives/833-HEI...


First of all, as many others have pointed out by specifying the accepted file formats in the <input> tag, they would avoid HEIC entirely as the phone would simply convert to one of the accepted formats.

It's also not clear to me that this patent license is actually an issue in terms of decoding and converting file formats on the backend. Even if that were the case, I'm certain there is some commercial license software they could purchase to do that for them. This isn't an open-source endeavor, and they charge each student to take the exam.


1. I think both parties are at fault

The testing system for not using the <input> tag appropiately and Apple for using a closed, patent encumbered format as the default when most of their users don't know about software patents.

> It's also not clear to me that this patent license is actually an issue in terms of decoding and converting file formats on the backend.

It's reasonable to assume that it is.

2. Sure, the college could pay, but looking at the broader problem here, saying that colleges should accept closed formats would make it really hard for open source online testing systems to proliferate, and all colleges around the world would have to pay royalties to the HEIC patent holders.

Even if they were to implement an open source decoder, unless you have plenty of lawyers, the legal uncertainty of the situation could be unacceptable to many individuals/institutions.

3. If the format was open in the first place, maybe we would have lots of open source decoders and maybe the library that the testing system developer used would have support for it, and would have transparently worked without the developer knowing about the format.


1. I'm not going to argue about Apple's defaults here. It simply isn't germane when the college board has full control over the inputs and iPhones will make up a significant portion of test takers.

2. I think you don't understand what the College Board is. It's a single organization that administers test. This isn't something each university needs to deal with. They make and administer the test to all college-bound students in the US each year.

3. There are plenty of existing open source decoders, and all major open source graphics programs already accept the format (GraphicConverter, ImageMagick, GIMP), in addition to all the major OSes (Windows, Mac, iOS, Android).


2. In the specific case of the College Board, yes. Keep in mind that maybe the license fee is based on number of institutions and every student would end up indirectly paying for the license.

But also think about independent educational institutions (primary, secondary, higher, etc), think about all schools and colleges in other countries (we're all in a similar situation). All of them would have to find a way to license HEIC, just because Apple decided that they wanted HEIC as their default format.

3. I'd guess that companies that implement HEIC pay for their license.

The legal situation of using open source programs to decode licensed and patent encumbered formats is uncertain to me, and I guess it is to most people, including software engineers and managers.


No other entity other than The College Board receives the raw test. Everyone else only receives the results. The College Board also charges around $100 for each of these tests, so even if they had to support the format (they don’t) they really should easily be able to do so.


Note that many students take many of these tests, even dozens, so $100/test is quite a lot for what is usually a few hours sit down in a big room with a handful of proctors for hundreds of students (i.e., no more expensive to run than a typical university intro-level class final with a professor and some student TAs).


The whole issue is easily circumvented by correctly setting the accepted inputs, which is clearly the responsibility of the webpage owners. Next time, someone uploads JPEG2000 and runs into the same problem. I guess then it’s again someone else who gets the blame?


The license fee is based on the number of devices performing the conversion; each institution gets a number free; it's less than a few dollars per device.


If the iPhone took pictures in webp format, exactly the same thing would have occurred. College board doesn’t accept that either despite it being open.


webp is also possibly patent-encumbered. At least if you ask various members of the MPEG-LA.

The only safe format for photo-like content remains JPEG probably for decades to come


Yes, I was wondering why a recently completed photo upload feature for a web app didn't have this problem -- it's because we specified image/jpeg on the file input, so iPhone auto-converts. Likely a failure within the college board's software engineering processes for not testing this use case and then finding and deploying this fix? https://developer.mozilla.org/en-US/docs/Web/HTML/Element/in...


Some of the issues seems to be because some of these students transferred the HEIC file to their computers then tried to upload them by changing the extension of the file.


Wait. There's a way to get safari to upload HEIF without conversion? All my photos, which are HEIF on my phone, turn into jpeg when I upload them. I've been trying to get the original HEIF off for months.



Dropbox and OneDrive allow you to sync HEIF instead of JPEG.


Only native apps that explicitly opt-in to HEIC support.


Do I really need to explain that if I upload a file to Dropbox or iCloud it's still not on the web site form where I want it?


Google Photos syncs HEIF/HEIC to their cloud.


If you don't use your phone to upload, but transfer the file to your computer, it won't do the conversion.



Patents are separate from copyright, so even an independently developed freely licensed open-source software is illegal to use without a patent license from patent owners.

https://www.hevcadvance.com/pdfnew/LicensorList.pdf


Assuming GP is right about the patents, the College Board would open themselves up to patent suits by using that without a license.


Maybe they should just pay the $5 fee...


So what formats do they accept when they want a video? Theora?


>Using HEIC apparently [1][2] requires a license and is patent encumbered[3]

College board could have added "iPhone HEIC license surcharge" for those users - that would have gotten Apple attention :)


> uploading a photo from an iPhone isn’t exactly an edge case

From what I've heard in articles and other sources, uploading directly from the iPhone works fine. The issue is only when students try to upload an HEIF file from a computer, instead of directly from an iPhone, which requires:

1. The student has an iPhone, which they use to take a picture of their work.

2. The student chooses not to upload directly from their iPhone, and instead wants to use their computer (presumably they're already logged in there).

3. The student's computer is a Mac, and they choose to use AirDrop (or another method that doesn't do conversion) to transfer the file instead of email (or another method that does convert to JPG).

4. The student is using Chrome/Firefox or another browser that doesn't do automatic conversion to JPG.

I would argue that this qualifies as an edge case. Presumably, CollegeBoard did their due diligence testing the basic single-device flows, but didn't cover multi-device flows, or just missed possibilities like AirDrop instead of email for transferring images.

I agree that they should have done a better job informing students; there probably should be more info on the upload page itself.


If your premise was true, then they wouldn't be tweeting this: https://twitter.com/CollegeBoard/status/1263484343084867586/...

Clearly they knew this would be an issue, and could have done multiple mitigations to handle this, including just accepting HEIC files themselves.


That really doesn’t sound like much of an edge case to me. I’m willing to bet it’s a pretty typical workflow that people have if they own Apple devices.


You would be surprised how many students use an iphone and a macbook but are unwilling to use safari (or icloud, photos) because of privacy concerns.

If you stay in the "regular" apple workflow everything is fine: iphone camera -> icloud/photos (airdrop/photos) -> safari. If you deviate at certain points though the workflow breaks down. Whose fault is that?


A (high school) student who's unwilling to use Safari because of privacy concerns but would be ok using Chrome? That sounds like a serious edge case.


Sadly, it's not. I've had lots students who would use the Opera VPN or one of the "free" anti-virus providers VPNs because they got sold (by adds or dumb friends) that it would be safer.

You seriously over-estimate the "tech-savviness" of the average student and that really is part of the issue I'm pointing out here.


I can confirm. The average graduating high school senior or first-year college student is woefully inept at technical tasks. They grew up with tablets and smart phones, but outside the common apps, they aren't any more tech-savvy than anybody else.

Source: I work in tech for higher ed.


For their threat model, they could be right - they could be successfully defending against school network surveillance and/or censorship.


Mobile uploading is often broken or inconvenient. Phone to sync service (such as dropbox or icloud) to desktop with a full functioning browser to upload. This doesn’t seem like an edge case to me. I’d expect uploading directly from a phone to be an edge case. Most people don’t want to waste time filling out forms with a touchscreen when they have a mouse and keyboard handy.


This whole blame game is weird. Could the college board have handled this better or have a better upload mechanism? Sure. Could apple be more clear about the way they are storing and transferring photos? Sure, finder on my macbook actually does worse in handling .heic files than my windows 10 desktop unless I sync using photos.

But if I got this right the upload page stated the accepted file formats, why should they accept anything else? Sure, there are workarounds to handle uploading .heic files and automatic conversion works in certain cases but why should they care? The onus is on the user to ensure his submission is correct.

EDIT: I just tried .heic files on my Surface and had to install an MS store app to actually be able to open .heic files in full resolution.

https://www.microsoft.com/de-de/p/heif-bilderweiterungen/9pm...

EDIT2: I guess for me it boils down to, why should we coddle the applicants? Being able to understand the conditions of a test is not an unreasonable hardship. From that I gathered the website stated the accepted file formats. The uploader source suggests it did refuse certain file formats. There are technical solutions for this/these problem(s) and of course it would be nice if every system would be perfect. But it would also be nice if people would just work within the given constraints of a system.


If I may restate your position: "If a student uploads an image in the wrong format then it is acceptable for their entire test to be invalid and they can retake the entire exam."

Rather I think what is acceptable is HEIC is not accepted by the system, and if a student attempts to submit this format they receive an error saying that only JPG images are allowed.


> If I may restate your position: "If a student uploads an image in the wrong format then it is acceptable for their entire test to be invalid and they can retake the entire exam."

Yes, being able to understand the conditions should maybe be part of passing the test. Like I said, could the upload form have handled this better? Sure, although I have not read enough to understand if this was actually the upload form failing. The OP article claims "Spencer ... tried to convert it by renaming the HEIC file to PNG" which is not how you convert files. Maybe students learning that early on is not a bad thing?


> Yes, being able to understand the conditions should maybe be part of passing the test.

I agree, when It's part of the subject in test. I don't see any reasonable cause for a student to have to know about file types to submit a test, if that test isn't about file types. I don't, for example, expect my doctor to know how to convert an image file because that's not his job.

> The OP article claims "Spencer ... tried to convert it by renaming the HEIC file to PNG" which is not how you convert files.

This highlights the level of knowledge the users of this application have in this area. The developers should have made it Painfully Clear that uploading directly from an iPhone isn't supported.

> Maybe students learning that early on is not a bad thing?

I agree they should learn this stuff, but don't think it should cost them their grade to do so.

Now, I'm not saying that we shouldn't increase public understanding of these "slightly-technical" topics but I think we're a long way off and we can't expect that understanding just yet.


>I agree, when It's part of the subject in test. I don't see any reasonable cause for a student to have to know about file types to submit a test, if that test isn't about file types. I don't, for example, expect my doctor to know how to convert an image file because that's not his job.

Understanding the conditions of your test is part of the test. And your doctor doesn't have to know. His toolchain forces him to use certain programs and settings. If anything is set up wrong, your MRI image is just a worthless CD-R.

>This highlights the level of knowledge the users of this application have in this area. The developers should have made it Painfully Clear that uploading directly from an iPhone isn't supported.

They did. The supported file formats were clearly stated. Your issue here is with apple.

>I agree they should learn this stuff, but don't think it should cost them their grade to do so.

It doesn't. They can retake the test without punishment.

>Now, I'm not saying that we shouldn't increase public understanding of these "slightly-technical" topics but I think we're a long way off and we can't expect that understanding just yet.

I disagree. The sooner people learn that renaming a file does not constitute conversion the better. When I was a student 15 years ago it was painfully clear you could not upload the 50MB .tif file your scanner spat out (silly websites at the time would just not take 50MB uploads most of the time...). I think this "slightly-technical" knowledge is something akin to correct spelling and grammar. It's fine if you disagree but, in my opinion (even if that was not the intent of the college board), this is not a bad lesson to teach.


You're still supporting that computer knowledge of what image file formats are and how to convert them should be part of the test. They can learn that later when their high school or college makes them take basic computer classes (hopefully), right now they just want to upload their image.

Either Apple or College Board is at fault here but it isn't the user.


Yes, if you want to use a cell phone and/or a computer to complete your tasks you should have some basic knowledge about how it operates.

You can shift responsibility for that knowledge wherever you want but I would say that at the age between 16 and 19 (which google tells me is the average age for AP classes) I would expect that knowledge from someone applying for AP credit. And if someone didn't know what the accepted file types (as stated in the FAQ) meant at that age I'd expect them to figure it out for themselves.


I'm unsure that any of these students wanted to take their AP exams on their phone or computer. That this is a new problem suggests that this is something they've been newly forced to deal with.

It's certainly not a well engineered user experience. Passing a physics test should require physics knowledge, not knowledge of image formats. I think understanding of image formats is actually fairly obscure outside of technical circles.


[flagged]


No one rational feels sorry for universities.


No one rational makes absolute comments on the internet.

Maybe university IT departments are staffed by people. Maybe even at the college board it's just some IT guys trying to keep a shitty platform working. Maybe they did the best they could working within their constraints and they expected the same from students who have a vested interest in getting their results submitted. Maybe this is just much ado about nothing.


I don't see why you'd assume that the students did anything less than their best.


I'm pretty damn technical and I never heard of HEIC before today. Maybe I would have if I had an Iphone, but in general if I take a photo with my phone I assume it writes a JPEG to the file system somewhere. If that's not the case, the software -- not the students -- should have been able to handle the issue. Computers are the servants of people; not the other way around.


Is this for comment real? Why should being tech savvy enough to jump through esoteric technical requirements be part of the test?


Ever see a student get scolded for not using a #2 pencil? Can't use a pen. Can't use a marker. Can't use a #9 pencil. Must be a a #2 pencil.

Ever fill out a government form that must be done in non erasable black or blue ink. A pencil is unacceptable. A red pen, green pen, purple pen is unacceptable. An erasable pen is also unacceptable.

Not saying users should have to know what a .JPG from an .HEIC but just saying there is plenty of precedent of technical requirements for things in real life. I've had forms rejected at the immigration office for using the wrong type of pen an I've been in classes where students didn't have the correct type of pencil and caused issues.


ok but what if you're told this 'technical requirement' in a tweet while taking the test? and you don't even use twitter?


#2 pencils are standard student equipment. As are iPhones.

And government forms also come with pens to fill them out.


> esoteric technical requirements

Knowing a file type is an "esoteric technical requirement" ?

Yes, this comment is for real. I'm the head of IT for a university and we do online applications. We actually accept everything within a given size requirement (which people are unable to respect). I have a bunch of scripts that run over all applications in the end to put them in the right formats, to do OCR for the photos of a printed PDF form that has been filled out by hand in pencil, I even run a script to scrape annotations in PDF portfolios to scrape video links and pass them to youtube-dl, to ensure everything submitted gets picked up and is provided for evaluation.

This is why I think it would be nice if there was at least some responsibility on the part of the student.


> Knowing a file type is an "esoteric technical requirement" ?

Yes, when it is outside of the scope of the test. Unless they're testing the students on their knowledge of data storage, or similar, this is out of scope.


Well, I disagree. I think "media competence" is more important than spelling or grammar and should be something expected of someone entering tertiary education.


Well, I suppose you’re welcome to have whatever bizarre opinions you like, but you should recognise that they’re pretty fringe.

No, this isn’t something the average person should need to know about.


[flagged]


By default, both Windows and MacOS hide file extensions. Smart phones almost universally hide them, if they give you a file explorer at all.

I suspect most teenagers (and that's what we're talking about here - 17, 18 years olds finishing secondary school) would have a notion that jpg and gif are image formats, and pdf and dcx are a document formats. I suspect few would know much beyond that, and most would not have had much reason to worry about converting between formats. [I work in higher ed tech, my gut feeling here is based on performing usability testing of other software]

Add in an unexpected file format glitch during the most important test of their life? Yeah, I'm not at all surprised that some/many screwed up.

This is 100% on College Board for failing to handle the situation gracefully. They didn't need to accept heif files. They did need to provide detailed instructions ahead of time, including possible issues with unsupported formats.


> I suspect few would know much beyond that, and most would not have had much reason to worry about converting between formats.

Ok, first of, why should I (as an institution) care about the people unable to fulfil the conditions of my test? Maybe I only want people with a basic understanding of file formats because chances are they will have less issues with future applications?

> They did need to provide detailed instructions ahead of time, including possible issues with unsupported formats.

They send out a message a week before the tests. The website only accepted the allowed formats. You could complain about them using Twitter to send out that message but you are not.

> They didn't need to accept heif files. They did need to provide detailed instructions ahead of time, including possible issues with unsupported formats.

They did not accept .heic files (see the source from the upload js file). They did provide a list of supported files. Maybe the handholding should stop at some point?


It's not the institution giving the test. It's a for-profit corporation that has a de facto monopoly on standardized testing in the US. It's also a company who has been slow to modernize their test (both content, scoring, and process) and has slowly lost the faith of many colleges/unis. And the students are paying for the "privilege" because their test is the gateway to higher ed.

The at-home test format is new. It's usually given in a test center (either private or at the secondary school) with a proctor. Students usually prep for years for this exam, but all that prep would be for the on-site proctored exam. This was new for everybody, and appears to be poorly executed by the company that profits handsomely from these exams.

Based on the article linked, the message went out the day of the exam, after some students were already mid-test. That's not helpful.


> Ok, first of, why should I (as an institution) care about the people unable to fulfil the conditions of my test?

Maybe you (as an institution) care about all your students?


But that's not what the test is about. It's not a category on the test.


It's not an explicit category on the test and I never debated that. It might be an implicit requirement though.

Just how when you take your drivers test you should actually be able to operate your vehicle and know the laws around operating a motor vehicle aside from the explicit knowledge required from you in the test. But I understand how this might be a foreign concept for someone from the US.


> But I understand how this might be a foreign concept for someone from the US.

What? In the US, knowing how to operate your vehicle and the laws around operating a motor vehicle IS the drivers test.

Your argument is not reasonable. Knowing the nuances of file formats is irrelevant to AP exams in US History, Calculus, Physics, etc. This is a failure of the administrators to make a proper test. The College Board specializes in tests- that's what they do, and they screwed up.


[flagged]


Please don't cross into personal attack, regardless how wrong another commenter is or you feel they are. It just makes the thread even worse.

https://news.ycombinator.com/newsguidelines.html


Yes. Your average user knows nothing of file types. They know about pictures. Ask your average iPhone users whether their pictures are stored as JPEG, HEIC or TIFF files and you'll get a blank stare most of the time.


You’re vastly overestimating the competence of the average computer user. There’s a sizeable minority of people out there that don’t know what file extensions are, and even if they do know about them, they might not understand how they work (hence students attempting to convert file types by changing the extension).

File extensions are an implementation detail that, ideally, end users should never be forced to think about. There are graceful solutions to this problem; the College Board just didn’t do their due diligence.


I'm not overestimating them. I see lots of college admission files, I know how inept most high school graduates are. I would like to see a higher base standard because frankly these issues are not going away for them and I don't see it as a tertiary education issue. 3 to 6 years later they will still have to submit resumes and portfolios and they will suck at it but the places they submit these to now longer offer any grace periods. File size to large? Fuck you. Wrong file type? Fuck you. Unsigned PDF? Fuck you. Missing a document? Fuck you. Missed a dead line? Fuck you.


Many places don't handle those files properly. For selling on eBay/Mercari/Poshmark, if I AirDrop from my iPhone to upload from my computer, they don't convert the file properly. (Typing descriptions etc is far easier from the computer than on a mobile app) I can setup an Apple Script to do conversions, but I've found uploading to Dropbox and pulling from the desktop version works better (Dropbox does the HEIC-JPG conversion)

I believe the onus should be on the trillion dollar company that chose to use a non-standard file format.


What an embarrassment. Just let the students upload whatever file, run it through imagemagick on the backend and convert to JPEG or PNG. If the output if garbage then shoot them an email.


Compatibility with multiples browsers / platforms is usually the responsibility of the website/application.

Historically Apple has implemented what they want to out of various standards, protocols, etc, it shouldn't be a surprise.

Of course, it's not my preference when we're waiting for different operating systems or browsers to behave the same way, but that lack of compatibility has been going on for decades.


Closed/liscenced crap != innovation.

I don’t care which part of California it came out of.


Why does Safari still not support webp then?


"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.


>"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.


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?


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.


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.


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.


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".


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.


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.


>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!


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.


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.


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.


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.)


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.


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).


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.


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.


> 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.


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


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?


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.


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 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.


> 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.


What data are you basing this on?


Pretty much any mobile industry stat. Most have Android at a bit over 50% in the US and Apple at a bit under. Worldwide, Apple is under 20% market share. Remember, iOS is just Apple whereas Android is Samsung + LG + HTC + Google + Oppo + OnePlus + etc...

Examples:

https://www.counterpointresearch.com/us-market-smartphone-sh...

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


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.


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.


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?


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.


People used to say the same thing about Internet Explorer


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).


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...


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.


> it is an ISO standard format.

So is COBOL[0]; that doesn't mean you should ever use or support it.

0: https://www.iso.org/standard/28805.html


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.


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.


> 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?


> 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...


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.


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.


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.


> 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.


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 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 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.


> 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.


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.


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?


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


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.


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.


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.


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.


> 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.


> ... 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


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.


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


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.


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.


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>


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


"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?


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.


Sure, and turns out you don't even need the accept attribute (see edit). They're doing something funny.


> 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.


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.


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.


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.


When was the accept attribute added to the input tag?


I was surprised by this, but at least as early as September 2008: https://github.com/whatwg/html/commit/c67bb312ac44737c6c175b...


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.


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.


Imagine trying to upload a heic file to (say) Amazon s3 through their web UI and having it converted to JPEG.


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.


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.


Is this the case on both Desktop and Mobile Safari?


Yes, see edit.


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.


> 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)


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


So they did have a dress rehearsal, it just wasn't high fidelity, and on perhaps the most critical part of the process.


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

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


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.


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.


> 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.


> (desktop) Safari never re-encodes an image when uploading a file.

Not really: https://news.ycombinator.com/item?id=23261216

Images are converted if you select from Photos (instead of the filesystem).


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.


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.


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


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.


snazz posted the actual code downthread: https://news.ycombinator.com/item?id=23261598

My guess is that the JavaScript manually checking the filename's extension is screwing up the automatic conversion.


> 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.


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.


>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.


> HEIC (image encoding) is available without royalties

Ah, ok, thanks!


> 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.


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.


> 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.


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.


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.


> 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.


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.


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. :)


"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.


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.


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!


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.


> 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.


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.


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.


He probably means in the standard library? According to git NewtonSoft.JSON (the defacto standard) has been around since the 2007.


Uploading images from my iPhone to Google Drive results in HEIC files that I have to manually convert as well.


What regulation would have prevented this bug?


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.


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. Very high levels of effort by some teachers had noticeable but still low effects on keeping kids engaged. We're talking north of half the kids in my wife's school essentially just skipping 4th quarter this year, and a good chunk of the rest getting maybe 10% as much out of it as they would have in school—it's that bad. I think some assignments missed due to logistics or scanning errors or whatever are nothing next to those effects.


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


> 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.)


> 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...


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.


> 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.


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...


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.


Or you can pay one big bill and still get crappy software.

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


That's not a problem unique to governments, although the consequences in that realm tend to be worse.


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.


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.


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.


> 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.


>>> 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.


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.


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


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.


> 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.


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 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.


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?


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).


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.


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.


Which means I think the blame is more on Apple side since the 'accept' attribute is intended to work with any 'Unique file type specifiers' [1] which includes both MIME types and extensions. Perhaps Apple is following a different RFC?

[1] https://developer.mozilla.org/en-US/docs/Web/HTML/Element/in...


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'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."


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.


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.


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.


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".


Here's the spec:

https://html.spec.whatwg.org/multipage/input.html#attr-input...

> Authors are encouraged to specify both any MIME types and any corresponding extensions when looking for data in a specific format.

> User agents should prevent the user from selecting files that are not accepted by one (or more) of these tokens.


I do not understand this huge criticism against college board for this. My daughter took 5 AP exams this time and we got multiple remainders from her teachers and AP board that HEIC will not work.

Here is the relevant FAQ: <quote> Can student submit an HEIC file of a photo of their handwritten work? Recent iPhones and iPads save photos as HEIC files. HEIC photo files can’t be submitted “as is” in the online exam. They must be converted to an accepted file format. Here are two ways students can do that: Update their Apple device settings before the exam so that their photos will be saved as .jpeg files: Settings > Camera > Formats > Select “Most Compatible” OR Resave the HEIC file as an accepted file format: the easiest way to convert an HEIC file is for students to email it to themselves using the iPhone or iPad Mail app. The attached image will automatically be converted to a JPEG. </quote>

I guess we think it is too hard for an AP student to actually read and follow instructions.


I think it's a little ridiculous that they knew this was going to be a problem and didn't do the relatively small amount of work it would have taken to correct the issue.

This makes the College Board look incompetent or uncaring.


Thank you for this - reading through the comments, I've been actually quite surprised that the general opinion seems to side with the students. The article suggests that the allowed image formats were clearly defined. Normally, if I were to take this test, I would definitely make sure that I am meeting the technical prerequisites.

Of course, you can argue that not everyone is familiar with the technicalities of image formats. But then again, let's not forget that today's students are "digital natives", so I assume they both now about JPEG and PNG and also about their phones.

However, if I now hear that this point was explicitly addressed in relevant FAQ's, all of the above really becomes irrelevant in my opinion, because it really doesn't leave much in terms of excuses.

At college, every test came with certain rules. For this exam, you're allowed to use any auxiliaries except computers. And stuff like that. You must write in permanent ink. etc. Images must be in one of the following format: ... IMO is just along the same lines.

There is an old principle in jurisdiction: ignorantia juris non excusat - basically stating that it's your responsibility to know the rules.


On the other hand, the article mentions that a demo test did accept (renamed) HEIC files. If you test your setup and are told it works fine, you shouldn't need to dig through FAQs.

I would argue this falls under the equally old jurisdictional principle of estoppel or detrimental reliance.


If the system accepted the files, then what was the problem?


Per the article, the "demo" test accepted it, but the actual exam did not.

Perhaps the demo did something dumb, like check the file extension but not whether the file could actually be opened.


In that case I completely agree. If the demo was there specifically to test technical setups, then it should not behave differently from the exam system. In particular, such a test system should be compliant to what is expressed in the FAQ.


We are criticizing them because fixing the software to accept it and batch convert it later should be relatively easy.


HEIC is patent encumbered. The system should have blocked it and linked to the instructions on how to get a png/jpeg


I think that in the new era of homeschooling, of tracking new information, etc, that we all find our inboxes a bit inundated. I think it's fair that a high-strung, anxiety-ridden student that's missing their senior year memories might miss some 'remainders'.


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.


>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.


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.


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.


> 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...


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.


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.


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).


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.


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


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


Okay so JPEG for the rest of eternity then?


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.


No? It’s an ISO standard that’s separate from H.265. Maybe you’re thinking of HEVC, which is like that. (Alternatively I’m wrong, which is totally possible)


HEIC is defined as HEVC in a HEIF container. So yes, it's patent encumbered.

Edit: https://en.wikipedia.org/wiki/High_Efficiency_Image_File_For...


I learned something today, thanks :)


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.


"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.


I think this is on Apple more than anyone. They have the attitude that it's okay to break long-standing traditions for the sake of pushing society into the future. Apple users seem to be a-okay with this attitude, so I'm not surprised that it has eventually come to kick users in the ass.

The three years or so that they've been using the format by default is not enough time to catch up. I know this is the first I've heard of HEIC, and I'm sure I'm not the only one.

Apple should default to sending a jpeg in situations where it cannot confirm support of newer formats. Maybe this means jpegs remain the default interchange format indefinitely, but so what? They are Good Enough for most cases.


Agreed. My company builds text messaging tools and we recently had to add support for HEIC images. Not a huge deal, but we only had to do it at all because we started seeing a few errors with users messages where a HEIC image was being sent in from an iPhone and we didn't have support for that format. It turns out that iOS will send a JPEG when sending an MMS message to avoid this compatibility issue. Except, in the cases where iOS doesn't send the JPEG and instead sends the HEIC. I'm not entirely sure what causes this but it seems to happen occasionally.


This is a ridiculous statement. It’s the College Board’s job to validate input files. How incompetent do you have to be to just fail if someone uploads a different format? That is absurdly unacceptable for the multi-billion dollar industry that the College aboard is.


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.


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.)


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.


^ This. College Board messed up severely on this issue.


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.


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?"


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.


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.


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.


> 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.


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.


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!


The irony here is that it is the most privileged students who will suffer this the most. It's the ones with the fanciest phones that will run into this bug. Usually these things go the other way -- usually it's the poorest who have to deal with these kinds of things.

Edit: See the reply below about iPhone SEs using HEIC. A point that I missed.


Don't get so ahead of yourself. Even people in relative poverty, in many cases, have new(er) iPhones, and HEIC is default on my SE, the budget iPhone model from 2016. In high schools you're alienated if you don't have the "blue bubbles"* - although it's stupid, if you're in high school in 2020 you probably need an iPhone, and you can get older models for a relatively small price (my SE was <$100). If anything, the ones with the most privilege will have enough technical training to know to make their phones default to JPEG rather than HEIC.

[1] - Source: I currently go to high school.


> if you're in high school in 2020 you probably need an iPhone

Not disputing anything else in your comment, but where is this true? I go to (and work at) a fairly prestigious university, and even here it's at best a status symbol, not a "need" of any kind. One of my friends uses a flip phone.


It's a social thing - and a particularly stupid one. If you're ostracized by your peers for having the "green bubble" you're not gonna have great luck asking for the class notes or what Joey got on question 13. iMessage is the messenger of choice for students who don't value privacy or portability.


You bring up a really good point that I didn't consider, that iPhone SEs default to HEIC.

Thank you.


> 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?


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.


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.


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.


The thing I don't understand in all the news articles I have read about this is the major complaint of the students seems to be that they have to retake the test which will mean they have to study for a few more weeks. Isn't having more time to study a good thing? Having more time to study and prepare should mean less stress, not more.


If they didn't have to retake the test they would have 0 stress because they'd be done, so you can't really claim there's less stress. Also many students likely already crammed enough knowledge into their heads for when they took the original test, and are now forced to retain all of this for multiple weeks, i.e they have to put in a lot more effort studying for little to no improvement in score (yes students cram for tests and don't retain information, that's just how testing works)


It also means you need to go through the traumatic and stressful experience of taking the test again, when you thought you were already past it.


Double edged sword I suppose. If you felt you did poorly you now have another chance to do well. But if you felt like you did well then you'll probably get a lower score.


This might sounds trivial. But proprietary codecs are hard for commercial usage. They cost money. If it’s just uploading a file. Ok. But if the system designed to decode it in any way this might lead to more expensive system.

The codec “war” and Apple’s decision going with HEIC over opened source WebP is also to be questioned if portability of media is expected.


HEIC isn’t a proprietary codec, it’s an ISO standard


But it's built on patented codec (H.265). It's illegal to use it without a patent license, regardless whether it's a standard or not. Even if you wrote your own implementation, it would be illegal for you to use your own code.

Technically HEIF is a good format — it's half the size of WebP. WebP is based on a much weaker codec that is two generations older. AVIF is a freely-licensed HEIF alternative.


My understanding (based on http://www.hackerfactor.com/blog/index.php?/archives/833-HEI... ) is that HEIC is not built on patents while HEVC is, so HEVC is problematic to use, but HEIC isn’t.


As it states in your source

> The HEIC holds the HEIF data that is compressed using HEVC by MPEG

Wrapping a HEVC file in a container does not automatically void any patents of the contained file. Otherwise, anyone can shove any patent encumbered file format in a ".zip" container (or any container/wrapper) and avoid any patent or licensing issues.


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.


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.


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.


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.


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.


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.


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.


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...


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.


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.


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 comments through a JS library that I haven't bothered to update since 2012. It even lets you right-click to view the TeX source too, example near the bottom here https://www.thejach.com/view/2011/9/playing_with_morton_numb... So never say never!)


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.


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


Ask a Chinese or Japanese friend why typing is hard.


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. 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.


This is no different to the College Board not accepting submissions from people who arrived by the subway or rode their bicycle. Or perhaps, used the wrong colored pen. Its at that level of absurdity.

Someone didn't bother doing basic testing. This is ironic because the system itself is a test submission system.

Personally I'd be wanting a full inquiry into this.

But the blame is still squarely on the College Board. They are a organisation that has actually failed in their core mission.

Apple etc shouldn't be the target of any anger. Some random website doesn't support image uploads. Thats the issue. The website should be more resilient. The College Board didn't do their homework. Perhaps they need to study harder and be more diligent? Attention to detail has consequences.


> 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.


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.


Here's a crazy idea: If your whole web site is based around a high stakes interaction, especially with a time limit, put a dress rehearsal into the registration process.

If someone wants to make an account to register for a test, ask them to upload a picture of anything. A signature. The wall. Their face. A cat. Use the same framework for finishing the test that you used for this interaction. So if for instance you've broken the submit button on mobile Safari, that gets sorted out before the Big Day.


Some other comments [1] noted that they did -- they had a demo site, it was just hobbled by not actually doing all the same things it would do on test day. So students tested their method out, it looked right, and they repeated it on the test day only to have it fail there.

[1] https://news.ycombinator.com/item?id=23261511


Yeah I noticed that too.

Murphy's Law I suppose. The spot at which you stop testing is the spot where it will break. But do you learn not to listen to that voice in your head that is telling you this part doesn't need to be tested?


Surprised no one here has mentioned the robustness principle yet. https://en.wikipedia.org/wiki/Robustness_principle

The layman's version is: "Be conservative in what you send, be liberal in what you accept."


> 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.

This should really say that changing a file's extension will (almost) never mean that the file is converted.

Anyway, it seems like today's students have missed out on the arcane knowledge of renaming a jpg/mp3/whatever to .docx, submitting it, pretending that it got mysteriously corrupted, and getting an extension until whenever the professor realizes the issue. (I've never done it, but I've heard legend.)


I took an English AP test yesterday. They give you three options for submitting your essay: Upload a picture, upload a text document (.doc, .pdf and a couple others) or paste your essay into a text field. Strangely, there was no option to type directly into the webpage.

I struggle with writing quickly, so I made the (rather poor) decision to continue writing up until about 20 seconds remained. I pasted my response and clicked submit with about 10 seconds left. The timer continued to count down and I was panicked because the submission was still loading. It finally went through with only 3 seconds remaining.


Unvelievable.

I ask my students to send my texts by email. This minimizes any kind of crapload of shit that can happen with any app. And size is irrelevant: just send several mails if (should not happen) your photos take more than 20mb.


This whole situation boils down to a lack of understanding of who the software's users are and a lack of simulation of their use cases. This problem becomes glaringly obvious if you perform user studies with a sample of test takers with simulated tests. The College Board cheaped out by not doing their do diligence to ensure that the system they vended worked as advertised. I'd like to see if this was developed in house or outsourced. If outsourced I think the College Board should sue. If not there should soon be several new vacancies on their webdev team.


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.


I know this is mean of me, but the student who was taking her Computer Science exam and who apparently thought that changing the file’s extension would change format? Yeah... she deserved to fail.


These students are high school students. I'm very doubtful that this course covered material like file types and encoding. First year CS classes are almost exclusively programming basics and architecture.

This line of thinking only really makes sense if you presuppose that every person taking a computer science course in high school has an understanding of file types. Many don't have this knowledge. I don't see why students should need to have additional knowledge that is outside the scope of a course, just to pass the clase.

There's a reason these things are taught in a CS program, often at higher levels. And that's because they're not common knowledge.


She’s taking an exam. Surely she should understand these things by the end of the curriculum, right? I mean, she’s just been learning them... or should have.

Besides, I don’t know what it’s like in the US nowadays, but back in my time (late 1990s, IB) the computer science curriculum took file formats and so forth as granted, and concentrated on the theoretical constructs such as Turing machines, lambda calculus, decidability, computability, and the theory of recursive functions. I remember my exam required proving the identity between a particular integral and the Euler (not Riemann) zeta function and whether it could be evaluated in polynomial time to an arbitrary degree of approximation. We had to sketch out the algorithm that would do this in terms of pseudocode.

Trying to transcode a file by changing the extension... I dunno... it seems kind of meek.


Was that all covered by your first semester course? Because if so, that’s more impressive than a first semester course and MIT, CMU, or Harvard, let alone what a public school can offer.


That was covered by a two-year IB (International Baccalaureate) course in Computer Science running from 1997 until 1998. I attended a private school (the International School of Milan).


I don’t know the IB system, but AP tests are equivalent to testing students on a first semester college class. In computer science in the US, that means basic data structures and simple algorithms, and it’s been that way for the last thirty five years at least.


I generally don't like to say people are making things up, however there is a lot of mythology around how much work IB students do. I've frequently seen IB students while I was in undergrad boasting about their level of proficiency, despite it seldom being supported.


If you think I’m boasting about something from more than two decades ago, that’s your problem, not mine.


On windows when you change file formats between jpg png bmp it opens fine, so maybe it could be misleading? idk


The blame is as much on the OS manufacturers who haven’t implemented such an obvious and trivial UX workflow.


its not unheard that websites do only extension validation for uploads, worth a try!


That totally misses the point though, because if the website only validates on the basis of extension and accepts the format in an unrecognised format, the backend won’t know how to handle it anyway. There’s no point uploading a HEIC file disguised as a PNG (or whatever) if eventually somewhere along the workflow an examiner is actually going to have to open that file in a program that doesn’t know how to parse HEICs.


Perhaps the examiner’s program accepts HEICs and the frontend was unnecessarily limiting. Many systems are like that, and it’s frustrating that the College Board’s wasn’t.


The examiner’s client program is likely a browser that connects to a web-hosted system, and with the exception of Safari, other browsers do not (yet) handle HEIC natively nor even gracefully.


OK, I honestly don’t blame them for not supporting HEIC yet. What I do blame them for is clearly not testing their system against the software and hardware students will be using. There would’ve been no problems at all if the system handled the problem and explained how to resolve it, but it sounds like it failed in a somewhat more silent fashion. Without question, they should be resolving this problem on their end.


They did not anticipate idiots renaming files to "convert" them.


It is incompetent programming no matter how you slice it. Extension validation is not input validation. Whoever wrote that code is more idiotic than any of the students because basic input validation was literally their job here.


I dunno how we can expect ordinary people to fully understand what’s going on and how to fix it without any guidance.


This is enterprise software, which by definition means the people who approved and purchased it are not the people forced to use it. That alone usually makes it garbage.

"Enterprise software" also frequently implies it was supplied by the lowest bidder, and that means it was poorly-designed, poorly-implemented, and poorly-tested by inexperienced programmers.

And hundreds of students are at its mercy. This is probably actionable.


If any other vendor had decided to switch to a home-brew patent-encumbered format as the default format for image storage, we'd mock them relentlessly. But because Apple is the best at everything, somehow switching their entire software stack away from an accepted global standard instead of doing the hard work of getting widespread adoption first before going all-in gets a pass.


I suppose either they didn’t call Apple up for help or it’s no longer possible to do so in any meaningful way. This is bad press for Apple, too.


The only change they needed to make was one line on their upload form (according to comments elsewhere on the post). This wasn’t an Apple support issue, this was a lack of trying and sufficient testing on the College Board’s part.


Afterward, when they have thousands of images they can’t access, it’s a support issue. It’s time sensitive so they can’t just have people re-upload the images, but retesting is a bad solution.


> Everly Kai, a senior in British Columbia, had the same problem with Computer Science A last week — she attempted to rename the file to JPEG and received the same email a few hours after submitting her test.

If you're taking a CompSci test and you think that renaming a file changes it from one image codec to another, you probably don't have a bright future in CompSci. just sayin'


But.. it SAID on the page JPEG, and they uploaded some other random file.. The actual problem here is not that it does not handle the HEIC files, but that it does not return an error message detailing it so students can upload with a supported format.


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!).


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.


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.


For people not in the US: AP mean "Advanced Placement";

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


If it's a matter of transferring files from the phone to the desktop, uploading to Dropbox and then accessing the file from Dropbox does automatic HEIC-to-JPG conversion (do this for sites like eBay)


So if you need more time to cram just upload with this image format


If at scale companies are going to deploy new formats at scale they could help out by adding support for said formats to common processing libraries long before the fact.


HEIC has been in wide use for three years now (about half of Americans use it, knowingly or not), and this was a one line change on the upload form that the College Board didn’t include.


If I were a tort lawyer, I'd be salivating right now.



Fun fact (and obscure feature): If you edit a pic on your iphone, even just slightly cropping it, the system saves it as a jpeg. This to me is a testament to 2 things: phone manufacturers have a problem with feature discovery; these students are lazy and unable to operate even the most basic Google search, which would have resulted in this or many other quick solutions to make the file compatible. Frankly? They better be smarter next time, instead of putting the burden on the developers (who actually baked in the right exception)


What blatant incompetence on so many levels. There are so many people here that need to lose their jobs, COVID be damned.


I love cheap labour. Seriously you get what you pay for and no one wants to fucking pay what good software is worth.


iPhones are used by >80% of US teens. It's unfathomable that who ever wrote the College Board software thought it was acceptable to have this defect. What were they testing it against?


Typical Apple, trying to force some technically-superior crap down our throats rather than attempting to play nice with the rest of the world. Nobody else uses HEIC. I daresay most people don't even know what it is. Why not play nice with others by default!?


Blaming Apple for this is ridiculous. It is trivial to validate input, and it is trivial to do so in a way that the iPhone will upload JPEG by default.


Samsung uses it too. And the iPhone automatically converts it to jpegs, but the College Board’s form disabled that functionality.


So what does this do to “the curve”?


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

    heif-convert -q 95 "$i" "$i.jpg"


consider Postel's law


.


So you build a service that doesn’t properly validate or gracefully handle invalid file types and it’s my fault as the end user when I try to upload something and the system fails?

If you build a service that can’t support one of the most commonly used platforms in the world, that’s on you the developer, not me the user. This is software engineering 101 right here, and was completely avoidable on the part of the developers.


It does gracefully handle invalid formats. The problem that students did not follow the directions provided on how to take pictures in an appropriate format. Instead they tried their own hacks, such as changing the file extension.

Another user here claims their daughter was informed repeatedly before the test that HEIC was not supported and given instructions on how to change their phone settings to ensure comparability. This is confirmed in the article:

> though it does link to the College Board’s website, which instructs students with iPhones to change their camera settings so that photos save as JPEGs rather than HEICs.


.


So why should a student with an Apple product be punished for hostile moves Apple has made? What if the school issued the device the student took the test on? You're punishing the wrong party here.

And knowing that these big companies do stupid stuff around standards is part of building software. This isn't any different from the browser wars. It's completely unrealistic to expect developers to not have to deal with these kinds of issues.

I think the anger around Apple's hostility towards standards is valid, but completely out of scope for this kind of issue.


.


> Sorry, Apple buyers, but you've purchased a device that flaunts standards, and you must expect it to cause problems.

Sounds like you're putting blame on the students in this situation.


Editing your comments simply because you were shown your mistakes is ridiculous. Own up to your mistakes please.


Wow. Loads of empathy on display here.


Why must we rush to blame, instead of solve problems?


This, last time i encountered it even windows 10 didn't display them and wanted me to buy a decoder from windows store. This was probably due to licensing fees. This story shows what happens when you 'think different' from established standards.


HEIC is a ISO standard that has a free codec.


Take two seconds to understand the situation before you comment. iOS automatically converts images to JPEG from HEIC if you use a standard input. College Board didn't, and then somehow either failed to do QA testing with iOS devices entirely, or did a poor job in not catching this huge bug. The failure here is definitely theirs.


This is not what happened, as per the article. The problem was with people who were downloading images from their phone to their desktop in HEIC format, then either failing to convert the images to JPEG, or complaining that the conversion process took too long.

>He Airdropped an iPhone image of his responses to his Mac and tried to convert it by renaming the HEIC file to PNG.

Everly Kai had the same problem with Computer Science A last week — she attempted to rename the file to JPEG and received the same email a few hours after submitting her test.

> Sean S. used OneDrive to port a photo to his Windows desktop from his iPhone, then attempted to convert the file with Windows Photo. Due to the photo’s size, the conversion took over five minutes.

The AP testing website has instructions for changing iPhone settings to the appropriate format and a user here confirms that their daughter was repeatedly informed of this matter before the AP test.

https://apcoronavirusupdates.collegeboard.org/students/takin...




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

Search: