லேபிள் பிரிண்டர் தனது DPI விவரத்தைப் பற்றித் தவறாகக் கூறுகிறது
ஒரு திறந்த மூல (open-source) Web Bluetooth டிரைவர், 300 dpi கொண்ட சாதனம் என்று விளம்பரப்படுத்தப்படும் Niimbot-ன் N1 லேபிள் பிரிண்டர், உண்மையில் சுமார் 203 dpi-இல் மட்டுமே அச்சிடுகிறது என்பதைக் காட்டுகிறது.
Niimbot-ன் மொபைல் செயலியைப் பயன்படுத்துவதற்குப் பதிலாக, ஒரு வலைப்பக்கத்திலிருந்து நேரடியாக அச்சிடுவதற்காக அந்த டெவலப்பர் இந்த டிரைவரை உருவாக்கினார். அவர் அந்தத் தனிப்பட்ட புரோட்டோகாலை (proprietary protocol) ரிவர்ஸ்-இன்ஜினியரிங் (reverse-engineered) செய்து, Web Bluetooth API மூலம் உலாவிகளுக்கு (browsers) அணுகக்கூடியதாக மாற்றினார். அவ்வாறு செய்தபோது, ஒரு அம்சம் விடுபட்டிருப்பதை மட்டுமல்லாமல், துல்லியம் தேவைப்படும் சிறிய அளவிலான பேக்கேஜிங், சரக்குக் குறியீடுகள் (inventory tags) அல்லது பொழுதுபோக்குத் திட்டங்களைச் சிதைக்கக்கூடிய ஒரு அடிப்படைத் தவறான விவரக்குறிப்பையும் (mis-specification) அவர் கண்டறிந்தார்.
இந்தத் தவறான விவரக்குறிப்பு எவ்வாறு தெரியவந்தது
Niimbot நிறுவனம் N1-ஐ 300 dpi பிரிண்டராக சந்தைப்படுத்துகிறது, அதாவது ஒரு அங்குலத்திற்கு 300 புள்ளிகள் (dots per inch) என்று பொருள்படும். அந்த டெவலப்பர் ஒரு அளவுகோல் அளவிலான படம் (ruler-scale image) மற்றும் எண்கள் கொண்ட ஒரு சோதனை முறையை (test pattern) அச்சிட்டு, பின்னர் ஒரு இயற்பியல் அளவுகோலைக் கொண்டு அந்த அடையாளங்களை அளவிட்டார். கணக்கீடுகள் தொடர்ந்து சுமார் 203 dpi-யே சுட்டிக்காட்டின, கூறப்பட்ட 300 dpi அல்ல.
ஒரு ஹார்டுவேர் டிரைவரை எழுதுவதில் இருந்து கற்றுக்கொண்ட நான்கு கடினமான பாடங்கள்
ஒரு "வெற்றிகரமான" பணி எதையும் உருவாக்காமல் போகலாம். பிரிண்டர் தரவைத் துண்டு துண்டாக (bursts) அனுப்புகிறது. சில தளங்களில் (platforms), பிளூடூத் ஸ்டாக் (Bluetooth stack) பிழை ஏதும் தெரிவிக்காமல் ஒரு தரவுப் பதிவை (write) கைவிடுகிறது. பணி முடிந்துவிட்டதாக டிரைவர் கருதுகிறது, ஆனால் லேபிள் காலியாக அல்லது பாதியிலேயே நின்றுவிடலாம். ஒரு தாள் உண்மையில் உள்ளே சென்றதா என்பதை உறுதிப்படுத்த, ஆசிரியர் இப்போது ஒவ்வொரு பணியின் பின்னரும் பிரிண்டரின் இயற்பியல் பக்க எண்ணைத் (physical page counter) तपासுகிறார்.
ஆவணங்கள் (Documentation) என்பது யதார்த்தம் அல்ல. 300 dpi என்ற கூற்று இதற்கு ஒரு தெளிவான உதாரணம். விவரக்குறிப்புகள் (Specs) மிகைப்படுத்தப்பட்டதாகவோ, காலாவதியானதாகவோ அல்லது தவறாகவோ இருக்கலாம். காட்சித் தரம் (visual fidelity) முக்கியத்துவம் வாய்ந்ததாக இருக்கும்போது, டெவலப்பர்கள் முக்கியமான அளவுருக்களை (parameters) தாங்களே அளவிட வேண்டும்.
"பொருந்துதல்" (fit) சோதனைகளை விட இயற்பியல் அடையாளங்களே சிறந்தது. லேபிள் பகுதிக்கு படம் பொருந்துகிறதா என்று பார்ப்பது, ரெசல்யூஷன் (resolution), பிரிண்ட்பெய்டு அகலம் அல்லது ஆஃப்செட் (offset) பிழைகளை மறைத்துவிடும். ஒரு தெரிந்த வடிவியல் அடையாளத்தை (geometric mark) அச்சிட்டு அதன் துல்லியமான இடத்தைக் கணக்கிடுவது சாதனத்தின் உண்மையான செயல்பாட்டை வெளிப்படுத்தும்.
ஒரு புரோட்டோகால் இலக்கணத்தை விவரிக்கிறது, ஹார்டுவேரின் குணாதிசயத்தை அல்ல. இரண்டு பிரிண்டர்கள் ஒரே கட்டளைத் தொகுப்பைப் (command set) பகிர்ந்து கொண்டாலும், அவை மாறுபட்ட முறையில் செயல்படலாம்—ஒன்று விரைவான பக்கத் திரும்பல்களைக் கையாளும், மற்றொன்று நின்றுவிடும். புரோட்டோகால் ஆவணங்களை மட்டுமே வைத்து ஒரே மாதிரியான செயல்திறனை டிரைவரால் எதிர்பார்க்க முடியாது; ஒவ்வொரு மாடலுக்கும் நிஜ உலகச் சோதனை (real-world testing) தேவை.
இந்த டிரைவர் ஏன் முக்கியமானது
இந்த டிரைவர் எதையும் முழுமையாகத் தெரியும் என்று பாசாங்கு செய்வதில்லை. பிரிண்டரிலிருந்து ஒரு மதிப்பை வாசிப்பதற்குப் பதிலாக, அது ஒரு மதிப்பை ஊகிக்கும்போது, அந்தத் தகவலை ஒரு "ஊகம்" (guess) என்று அடையாளப்படுத்துகிறது. இந்த வெளிப்படைத்தன்மை, பல மணிநேர பிழைத்திருத்தங்களை (debugging) செய்ய வேண்டியிருக்கும் அமைதியான பிழைகளைத் தடுக்கிறது.
டிரைவரைப் பெறுவது எப்படி
இந்த டிரைவர் Chrome அல்லது Edge உலாவிகளில் இயங்கும்; இதற்கு பிளூடூத் வசதியுள்ள சாதனம் மற்றும் ஆதரிக்கப்படும் Niimbot பிரிண்டர் மட்டுமே தேவை. நேரடி டெமோவை (live demo) இங்கே முயற்சிக்கவும்:
https://iscarelli.github.io/niimbot-web-bluetooth/demo/
இதன் மூலக் குறியீடு (source code) GitHub-இல் உள்ளது, அங்கு சமூகத்தினர் மாடல் தரவுகளை வழங்கலாம், பிழைகளைச் சரிசெய்யலாம் அல்லது பிற உலாவிகளுக்காக இந்த டிரைவரை மாற்றியமைக்கலாம்:
https://github.com/iscarelli/niimbot-web-bluetooth
Niimbot உரிமையாளர்கள் மாடல் தரவுத்தளத்தை (model database) நிரப்ப உதவலாம்; இதற்கு சுமார் பத்து நிமிடங்களும் இரண்டு லேபிள்களும் தேவைப்படும்.
மாற்றுக்கருத்து
நிறுவனம் இந்த முரண்பாட்டைத் தெளிவுபடுத்தும் வரை, டெவலப்பர்கள் அளவிடப்பட்ட மதிப்பை வைத்தே பணியாற்ற வேண்டும்.
இதிலிருந்து நாம் கற்றுக்கொள்ள வேண்டியது எளிது: ஒரு வலைப்பக்கத்திலிருந்து நீங்கள் பயன்படுத்தும் ஹார்டுவேர், அதன் விவரக்குறிப்புத் தாள் (spec sheet) வாக்குறுதி அளிப்பது போலச் செயல்படாமல் போகலாம். முக்கியமான அளவுருக்களைச் சரிபார்க்கவும், அமைதியான தோல்விகளை (silent failures) எதிர்பார்க்கவும், மற்றும் நிச்சயமற்ற தன்மையை மறைப்பதற்குப் பதிலாக வெளிச்சம் போட்டுக் காட்டும் டிரைவர்களைத் தேர்ந்தெடுக்கவும்.
