고객 지원 문의

이메일로 답장드리며, 보통 이틀 안에 회신합니다.

Google reCAPTCHA가 이 제출을 악용 여부에 대해 확인하며, 이 과정에서 데이터가 Google로 전송됩니다. 스크립트는 이 양식을 열 때만 불러옵니다.

← 전체 글

다이어그램 여덟 개에 이스케이프가 하나 더 있었습니다

콘텐츠와 검토에 관하여

이 글의 내용

한동안 이 블로그의 글 여덟 편이 문장 한가운데, 다이어그램 안에서 일곱 글자 —를 보여 주었습니다. 대시가 아니라 글자 그대로였습니다. 그 뒤로 모든 언어에서 고쳤습니다.

81줄, 91번. 같은 여덟 편의 본문에서는 한 번도 없었습니다.

대시 대신 엔티티를 찍은 다이어그램 줄 열한 개 언어 쿠키 없이 세기 middot, mdash 데이터를 CSV나 JSON으로 내보내기 mdash 태그 관리자로 넣는 카운터 mdash HTTPS 페이지 위의 카운터 mdash chomikuj 프로필의 카운터 mdash 긴 URL이 카운터를 내려앉혔다 mdash 왜 제외 목록은 해시하지 않는가 mdash 메모리에 사는 캐시 mdash 글 8편에 81줄, 91번 — 그리고 본문에는 한 번도 없음 너비 확인은 그것을 너무 넓다고 보았지, 잘못되었다고 보지 않았습니다

이스케이프가 하나 더

다이어그램은 글 본문 안에 쓰인 인라인 SVG입니다. 대시를 쓰려는 이름표는 —를 지니고, 브라우저는 그것을 대시로 바꿉니다. 문단에서 하는 것과 똑같이 말입니다.

그런데 저장된 것은 —였습니다. 브라우저는 성실하게 그것을 엔티티를 철자한 일곱 글자로 바꾸어 그렸습니다. 본문이 멀쩡했던 것은 본문이 그 여분의 이스케이프를 더한 무엇을 결코 거치지 않았기 때문입니다. 이름표만 거쳤고, 그 시기에 이름표가 만들어진 글에서만 그랬습니다.

원인은 작고 밋밋합니다. 적어 둘 값어치가 있는 대목은 그것이 왜 그렇게 오래 훤히 보이는 자리에 서 있었는가, 그리고 무엇이 그것을 끝냈는가입니다.

확인은 그것을 보고 다른 말을 했습니다

다이어그램 이름표가 그림에 들어맞는지 재는 확인이 있습니다. 그것은 며칠 동안 이 이름표들을 보고하고 있었습니다 — 너무 넓다고 말입니다.

실제로 넓기는 했습니다. 한 글자 대신 일곱 글자를 그리는 이름표는 의도보다 마흔다섯 픽셀쯤 넓으니, 측정도 옳고 보고도 옳았습니다. 그 보고를 읽는 사람이 끌어낼 결론이 옳지 않았을 뿐입니다. 숫자는 기하가 너무 빠듯하다고 말했습니다. 진실은 글자가 보이는 것과 달랐다는 것입니다.

그것이 이 일의 모양입니다. 확인은 받은 물음에 답하고, 그 물음이 잘못된 물음이었다고는 보고할 수 없습니다. 여기서 잘못 잰 것은 없습니다. 측정이 그저 보이는 것과 다른 문제에 관한 것이었을 뿐입니다.

무엇이 찾았는가

다이어그램 하나를 그려 보고 눈으로 본 것입니다. 창 없는 Chromium, 화면 사진 하나, 10초. 엔티티는 그림의 셋째 줄에, 다른 모든 것과 같은 크기의 글자로 있었습니다.

고침은 마이그레이션이었습니다. &amp;를 &로 바꾸되, 정해진 엔티티 이름 목록에 대해서만, 그리고 <svg class="dg"> 블록 안에서만 바꾸었습니다. 앰퍼샌드로 뜻한 앰퍼샌드는 그대로 두도록 말입니다. 그 목록 밖의 것은 짐작하지 않고 보고한 뒤 내버려 두었습니다. 81줄 모두 모든 언어에서 고쳤고, 블로그에 남은 것은 이 글에서 일부러 인용한 것뿐입니다.

무엇이 일반화되는가

이 프로젝트의 모든 자동 확인은 숫자로 된 무언가를 잽니다. 프로그램이 견줄 수 있는 것이 숫자이기 때문입니다. 그 가운데 어느 것도 그림이 헛소리가 되었다거나, 상자가 비었다거나, 기호가 있어야 할 자리에 낱말이 철자되어 있다는 것을 보지 못합니다.

그래서 나온 규칙은 짧습니다. 다이어그램을 바꾼 뒤에는 하나를 그려서 보십시오. 자리가 가장 많이 필요한 언어로 말입니다. 그것은 이제 어떤 측정도 볼 수 없었던 것 둘을 잡았습니다. 이것 하나와, 설명이 옮겨 가며 남은 빈 상자 하나입니다.

광고