ഒരു കറുത്ത ബോക്സ് മാത്രം മതിയാകാത്തത് എന്തുകൊണ്ട്

മിക്ക PDF ടൂളുകളും സെൻസിറ്റീവ് ആയ ടെക്സ്റ്റുകൾക്ക് മുകളിൽ ഒരു കറുത്ത ചതുരം വരച്ചുകൊണ്ട് വിവരങ്ങൾ "redact" ചെയ്യാൻ ഉപയോക്താക്കളെ അനുവദിക്കുന്നു. ഈ ചതുരം സ്ക്രീനിൽ വാക്കുകളെ മറച്ചുവെക്കുന്നുണ്ടെങ്കിലും, ഫയലിലെ യഥാർത്ഥ അക്ഷരങ്ങൾ (characters) മാറ്റമില്ലാതെ തന്നെ നിലനിൽക്കുന്നു. ആർക്കും ആ മറച്ചുവെച്ച ടെക്സ്റ്റ് സെലക്ട് ചെയ്യാനോ, കോപ്പി ചെയ്യാനോ, അല്ലെങ്കിൽ അത് പുറത്തെടുക്കാൻ ലളിതമായ ഒരു സ്ക്രിപ്റ്റ് ഉപയോഗിക്കാനോ സാധിക്കും. ചുരുക്കത്തിൽ, ഡാറ്റ അവിടെത്തന്നെയുണ്ട്; കറുത്ത ബോക്സ് എന്നത് വെറുമൊരു കാഴ്ചാ മറ മാത്രമാണ്.

ഡെവലപ്പർ നേരിട്ട പ്രശ്നം

ഫയലുകൾ ഒരു സെർവറിലേക്ക് അപ്‌ലോഡ് ചെയ്യാതെ തന്നെ പൂർണ്ണമായും ബ്രൗസറിൽ പ്രവർത്തിക്കുന്ന ഒരു PDF എഡിറ്റർ ആണ് എഴുത്തുകാരന് ആവശ്യമായിരുന്നത്. ഈ പരിമിതി കാരണം, ടെക്സ്റ്റ് നീക്കം ചെയ്യുന്നതിനായി ഒരു ബാക്ക്-എൻഡ് സർവീസിനെ ആശ്രയിക്കുന്നത് അസാധ്യമാണ്. നിലവിലുള്ള ക്ലയന്റ് സൈഡ് സൊല്യൂഷനുകൾ കണ്ടന്റിന് മുകളിൽ ഒരു ഷേപ്പ് (shape) ചേർക്കുക മാത്രമാണ് ചെയ്യുന്നത്, ഇത് യഥാർത്ഥ ടെക്സ്റ്റിനെ മാറ്റമില്ലാതെ നിലനിർത്തുന്നു. വേഗത നിലനിർത്തിക്കൊണ്ടും ഡോക്യുമെന്റ് ഉപയോഗയോഗ്യമാക്കിക്കൊണ്ടും ടെക്സ്റ്റ് ശാശ്വതമായി നീക്കം ചെയ്യുക എന്നതായിരുന്നു വെല്ലുവിളി.

സെലക്റ്റീവ് പേജ് റാസ്റ്ററൈസേഷൻ: പ്രധാന ആശയം

മുഴുവൻ PDF-ഉം ഒരു ഇമേജിലേക്ക് മാറ്റുന്നതിന് പകരം—ഇത് ഫയലിന്റെ വലിപ്പം കൂട്ടുകയും സെർച്ച് ചെയ്യാനുള്ള സൗകര്യം ഇല്ലാതാക്കുകയും ചെയ്യും—രഹസ്യമാക്കേണ്ട വിവരങ്ങൾ അടങ്ങിയ പേജുകൾ മാത്രം റാസ്റ്ററൈസ് ചെയ്യുകയാണ് ഈ പരിഹാരം ചെയ്യുന്നത്. ആ പേജുകൾ ബിറ്റ്‌മാപ്പുകളായി മാറുന്നു; മറ്റ് പേജുകളെല്ലാം വെക്റ്റർ PDF ആയി തന്നെ തുടരുന്നു, ഇത് ടെക്സ്റ്റ് സെലക്ഷൻ, സെർച്ച് എന്നിവയും ചെറിയ ഫയൽ വലിപ്പവും നിലനിർത്തുന്നു.

ഈ രീതി ഉപയോഗിക്കുമ്പോൾ ഡോക്യുമെന്റ് സാധാരണ നിലയിലുള്ളതായി തോന്നും: 19 പേജുകൾ വ്യക്തവും സെർച്ച് ചെയ്യാവുന്നതുമായി തുടരുന്നു, എന്നാൽ സെൻസിറ്റീവ് ആയ ആ ഒരു പേജ് പിക്സലുകൾ മാത്രമുള്ള ഒരു ഇമേജായി മാറുന്നു, അവിടെ മറച്ചുവെച്ച വിവരങ്ങൾ ഇനി നിലനിൽക്കില്ല.

വിശ്വസനീയമായ കൺവേർഷനായി മൂന്ന് പ്രായോഗിക നിയമങ്ങൾ

  1. മൂന്ന് മടങ്ങ് സ്കെയിലിൽ റെൻഡർ ചെയ്യുക – പേജിന്റെ സാധാരണ റെസല്യൂഷന്റെ മൂന്ന് മടങ്ങ് സ്കെയിലിലാണ് ബിറ്റ്‌മാപ്പ് നിർമ്മിക്കുന്നത്. കുറഞ്ഞ റെസല്യൂഷനുള്ള റെൻഡർ മറ്റ് വെക്റ്റർ പേജുകൾക്കൊപ്പം കാണുമ്പോൾ മങ്ങിയതായി തോന്നും, ഇത് സംശയം ഉണ്ടാക്കാനോ അല്ലെങ്കിൽ പ്രൊഫഷണൽ അല്ലാത്ത രീതിയിൽ കാണാനോ ഇടയാക്കും.
  2. എല്ലാ വിഷ്വൽ എലമെന്റുകളും ബിറ്റ്‌മാപ്പിലേക്ക് സംയോജിപ്പിക്കുക – പേജ് റാസ്റ്ററൈസ് ചെയ്യുന്നതിന് മുമ്പ് അനോട്ടേഷനുകൾ (annotations), സിഗ്നേച്ചറുകൾ, വാട്ടർമാർക്കുകൾ, റെഡാക്ഷൻ റെക്റ്റാംഗിൾ എന്നിവയെല്ലാം ഒന്നിച്ച് ചേർക്കുന്നു. ഒരേ പേജിൽ വെക്റ്റർ അനോട്ടേഷനുകളും റാസ്റ്റർ ഇമേജും കലർത്തുന്നത് PDF റീഡറുകളിൽ പിശകുകൾ ഉണ്ടാക്കാൻ കാരണമായേക്കാം.
  3. പിക്സലുകൾക്ക് പകരം വ്യൂപോർട്ടിൽ (viewport) ഉറപ്പിക്കുക – അനോട്ടേഷനുകൾ പേജിന്റെ വ്യൂപോർട്ട് കോർഡിനേറ്റുകളുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു. ഉപയോക്താവ് സൂം ചെയ്യുമ്പോൾ, എലമെന്റുകൾ അലൈൻമെന്റ് തെറ്റിക്കാതെ കൃത്യമായി നിലനിൽക്കുന്നു; അല്ലാത്തപക്ഷം അവ മാറിക്കൊണ്ടിരിക്കുകയും യഥാർത്ഥ ടെക്സ്റ്റ് വെളിപ്പെടാൻ ഇടയാക്കുകയും ചെയ്യും.

റേസ് കണ്ടീഷനുകളിൽ (race conditions) നിന്നുള്ള സംരക്ഷണം

ഓരോ പേജും റെൻഡർ ചെയ്യുന്നത് ഒരു അസിൻക്രണസ് ടാസ്ക് ആണ്. ഉപയോക്താവ് ബ്രൗസർ വിൻഡോ വേഗത്തിൽ റീസൈസ് ചെയ്യുകയാണെങ്കിൽ, ഒന്നിലധികം റെൻഡർ ജോലികൾ ഒരേസമയം നടക്കുകയും കാൻവാസിൽ തകരാറുള്ളതോ പരസ്പരം ഓവർലാപ്പ് ചെയ്യുന്നതോ ആയ ഫ്രെയിമുകൾ ഉണ്ടാവുകയും ചെയ്യാം. ഇത് ഒഴിവാക്കാൻ ഓരോ പേജിനും ഒരു റെൻഡർ ടോക്കൺ ഉപയോഗിക്കുന്നു: ഓരോ പുതിയ റെൻഡർ അഭ്യർത്ഥനയും പഴയ ടോക്കണിനെ അസാധുവാക്കുന്നു, ഇത് പഴയ ടാസ്ക് സ്വയം റദ്ദാക്കാൻ കാരണമാകുന്നു. ഇതിലൂടെ വേഗത്തിലുള്ള UI മാറ്റങ്ങൾക്കിടയിലും തടസ്സമില്ലാത്ത അനുഭവം ലഭിക്കുന്നു.

ഇതിന്റെ ഗുണദോഷങ്ങൾ (trade-offs) എന്തൊക്കെയാണ്?

ഒരു പേജിനെ ബിറ്റ്‌മാപ്പായി മാറ്റുന്നത് മറച്ചുവെച്ച ടെക്സ്റ്റുകളെ നീക്കം ചെയ്യുന്നു, എന്നാൽ ആ പേജിലെ ഉള്ളടക്കം സെർച്ച് ചെയ്യാനോ കോപ്പി ചെയ്യാനോ ഉള്ള കഴിവ് അത് ഇല്ലാതാക്കുകയും ചെയ്യുന്നു.

ഇതിന്റെ അടുത്ത ഘട്ടങ്ങൾ

ചുരുക്കത്തിൽ (Takeaway)

ഒരു സാധാരണ കറുത്ത ബോക്സ് ഡാറ്റ ഡിലീറ്റ് ചെയ്യുന്നില്ല; അത് വെറുതെ മറച്ചുവെക്കുക മാത്രമാണ് ചെയ്യുന്നത്. റെഡാക്ഷൻ ആവശ്യമുള്ള പേജുകൾ മാത്രം ഉയർന്ന റെസല്യൂഷനുള്ള ബിറ്റ്‌മാപ്പുകളായി മാറ്റുകയും ബാക്കി PDF വെക്റ്റർ അടിസ്ഥാനത്തിൽ നിലനിർത്തുകയും ചെയ്യുന്നതിലൂടെ, ഒരു ബ്രൗസർ-ഒൺലി എഡിറ്റർക്ക് ഡോക്യുമെന്റ് വേഗതയുള്ളതും സെർച്ച് ചെയ്യാവുന്നതും സ്വകാര്യവുമാക്കി നിലനിർത്തിക്കൊണ്ട് തന്നെ സെൻസിറ്റീവ് ആയ ടെക്സ്റ്റുകൾ ശാശ്വതമായി നീക്കം ചെയ്യാൻ സാധിക്കും. ഈ രീതി സുരക്ഷയും ഉപയോഗക്ഷമതയും തമ്മിൽ സന്തുലിതമാക്കുന്നു, എങ്കിലും കൂടുതൽ പേജുകൾ റെഡാക്ട് ചെയ്യുമ്പോൾ ഫയൽ വലിപ്പത്തിലും സെർച്ച് ചെയ്യാനുള്ള കഴിവിനുണ്ടാകുന്ന മാറ്റങ്ങൾ ഉപയോക്താക്കൾ ശ്രദ്ധിക്കേണ്ടതുണ്ട്.