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’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.
"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.
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.
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):
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.
> 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.
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.
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.
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.
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.
> 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.
> 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.
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.
> 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.
> 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.
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.
Missing HEIC support (and Apple support in general) is not an issue of quality; it's an issue of "knowing your customers". I doubt there could be any certification body for that.
It'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.
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
}}
/>
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.
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.
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.
"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.
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.
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.)
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.
> 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.
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.
[+] [-] braythwayt|5 years ago|reply
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?
[+] [-] azinman2|5 years ago|reply
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.
[+] [-] coffeefirst|5 years ago|reply
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.
[+] [-] crazygringo|5 years ago|reply
> 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.
[+] [-] oefrha|5 years ago|reply
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:
templates/index.html:[+] [-] danso|5 years ago|reply
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.
[+] [-] gsnedders|5 years ago|reply
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.
[+] [-] NikolaNovak|5 years ago|reply
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.
[+] [-] wlesieutre|5 years ago|reply
[+] [-] acdha|5 years ago|reply
[+] [-] somehnguy|5 years ago|reply
[+] [-] mokus|5 years ago|reply
[+] [-] scott_s|5 years ago|reply
My guess is that the JavaScript manually checking the filename's extension is screwing up the automatic conversion.
[+] [-] pdonis|5 years ago|reply
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.
[+] [-] Hokusai|5 years ago|reply
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.
[+] [-] _bxg1|5 years ago|reply
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.
[+] [-] karatestomp|5 years ago|reply
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.
[+] [-] majormajor|5 years ago|reply
"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.)
[+] [-] jacques_chester|5 years ago|reply
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...
[+] [-] HumblyTossed|5 years ago|reply
[+] [-] bobthepanda|5 years ago|reply
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.
[+] [-] panic|5 years ago|reply
[+] [-] AlchemistCamp|5 years ago|reply
[+] [-] generationP|5 years ago|reply
[+] [-] wmf|5 years ago|reply
[+] [-] angryrant1727|5 years ago|reply
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.
[+] [-] commandlinefan|5 years ago|reply
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.
[+] [-] snazz|5 years ago|reply
[+] [-] vaidhy|5 years ago|reply
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.
[+] [-] criddell|5 years ago|reply
This makes the College Board look incompetent or uncaring.
[+] [-] kleiba|5 years ago|reply
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.
[+] [-] MattGaiser|5 years ago|reply
[+] [-] Cd00d|5 years ago|reply
[+] [-] II2II|5 years ago|reply
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.
[+] [-] IvanK_net|5 years ago|reply
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).
[+] [-] pkage|5 years ago|reply
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.
[+] [-] matsemann|5 years ago|reply
[+] [-] Mirioron|5 years ago|reply
[+] [-] whalesalad|5 years ago|reply
[+] [-] tiglionabbit|5 years ago|reply
[+] [-] mywittyname|5 years ago|reply
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.
[+] [-] chucksmash|5 years ago|reply
[+] [-] winter_blue|5 years ago|reply
On Ubuntu, you can:
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.)[+] [-] abakker|5 years ago|reply
[+] [-] cm2187|5 years ago|reply
[+] [-] sokoloff|5 years ago|reply
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.
[+] [-] Causality1|5 years ago|reply
[+] [-] kassouni|5 years ago|reply
[+] [-] jedberg|5 years ago|reply
Edit: See the reply below about iPhone SEs using HEIC. A point that I missed.
[+] [-] polygot|5 years ago|reply
In what situations does the file format auto convert when you change the extension?