ಲೇಬಲ್ ಪ್ರಿಂಟರ್ DPI ಬಗ್ಗೆ ಸುಳ್ಳು ಹೇಳುತ್ತಿದೆ

ಒಂದು ಓಪನ್-ಸೋರ್ಸ್ Web Bluetooth ಡ್ರೈವರ್ ಪ್ರಕಾರ, 300 dpi ಸಾಧನ ಎಂದು ಜಾಹೀರಾತು ನೀಡಲಾದ Niimbot ನ N1 ಲೇಬಲ್ ಪ್ರಿಂಟರ್, ವಾಸ್ತವವಾಗಿ ಸುಮಾರು 203 dpi ದಲ್ಲಿ ಪ್ರಿಂಟ್ ಮಾಡುತ್ತದೆ.

Niimbot ನ ಮೊಬೈಲ್ ಆ್ಯಪ್ ಬಳಸುವ ಬದಲು ನೇರವಾಗಿ ವೆಬ್ ಪುಟದಿಂದ ಪ್ರಿಂಟ್ ಮಾಡಲು ಡೆವಲಪರ್ ಈ ಡ್ರೈವರ್ ಅನ್ನು ನಿರ್ಮಿಸಿದರು. ಅವರು ಪ್ರೊಪ್ರೈಟರಿ ಪ್ರೊಟೊಕಾಲ್ ಅನ್ನು ರಿವರ್ಸ್-ಎಂಜಿನಿಯರ್ ಮಾಡಿ, Web Bluetooth API ಮೂಲಕ ಬ್ರೌಸರ್‌ಗಳಿಗೆ ಲಭ್ಯವಾಗುವಂತೆ ಮಾಡಿದರು. ಹೀಗೆ ಮಾಡುವಾಗ, ಅವರಿಗೆ ಕೇವಲ ಒಂದು ವೈಶಿಷ್ಟ್ಯದ ಕೊರತೆಯಷ್ಟೇ ಅಲ್ಲದೆ, ನಿಖರತೆ ಮುಖ್ಯವಾಗಿರುವ ಸಣ್ಣ ಪ್ರಮಾಣದ ಪ್ಯಾಕೇಜಿಂಗ್, ಇನ್ವೆಂಟರಿ ಟ್ಯಾಗ್‌ಗಳು ಅಥವಾ ಹವ್ಯಾಸದ ಯೋಜನೆಗಳನ್ನು (hobby projects) ಹಾಳುಮಾಡಬಹುದಾದ ಮೂಲಭೂತ ತಪ್ಪು ಮಾಹಿತಿ (mis-specification) ಕೂಡ ಕಂಡುಬಂದಿತು.

ತಪ್ಪು ಮಾಹಿತಿ ಹೇಗೆ ಹೊರಬಂತು

Niimbot N1 ಅನ್ನು ಪ್ರತಿ ಇಂಚಿಗೆ 300 ಡಾಟ್‌ಗಳಿರುವ (300 dpi) ಪ್ರಿಂಟರ್ ಎಂದು ಮಾರುಕಟ್ಟೆ ಮಾಡುತ್ತದೆ. ಡೆವಲಪರ್ ಒಂದು ರೂಲರ್-ಸ್ಕೇಲ್ ಚಿತ್ರ ಮತ್ತು ಸಂಖ್ಯೆಗಳಿರುವ ಟೆಸ್ಟ್ ಪ್ಯಾಟರ್ನ್ ಅನ್ನು ಪ್ರಿಂಟ್ ಮಾಡಿ, ನಂತರ ಭೌತಿಕ ರೂಲರ್‌ನಿಂದ ಆ ಗುರುತುಗಳನ್ನು ಅಳೆದರು. ಲೆಕ್ಕಾಚಾರವು ಸತತವಾಗಿ ಸುಮಾರು 203 dpi ಅನ್ನು ತೋರಿಸಿತು, ವಾದಿಸಿದ 300 dpi ಅಲ್ಲ.

ಹಾರ್ಡ್‌ವೇರ್ ಡ್ರೈವರ್ ಬರೆಯುವ ಮೂಲಕ ಕಲಿತ ನಾಲ್ಕು ಕಠಿಣ ಪಾಠಗಳು

  1. "ಯಶಸ್ವಿ" ಕೆಲಸವು ಏನನ್ನೂ ನೀಡದಿರಬಹುದು. ಪ್ರಿಂಟರ್ ಡೇಟಾವನ್ನು ಬರ್ಸ್ಟ್‌ಗಳ ರೂಪದಲ್ಲಿ (bursts) ಸ್ಟ್ರೀಮ್ ಮಾಡುತ್ತದೆ. ಕೆಲವು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳಲ್ಲಿ, ಬ್ಲೂಟೂತ್ ಸ್ಟ್ಯಾಕ್ ಯಾವುದೇ ದೋಷವನ್ನು ವರದಿ ಮಾಡದೆ ಬರವಣಿಗೆಯನ್ನು (write) ಕೈಬಿಡುತ್ತದೆ. ಡ್ರೈವರ್ ಕೆಲಸ ಮುಗಿದಿದೆ ಎಂದು ಭಾವಿಸುತ್ತದೆ, ಆದರೆ ಲೇಬಲ್ ಖಾಲಿ ಅಥವಾ ಅರ್ಧಕ್ಕೆ ನಿಂತು ಬರುತ್ತದೆ. ಪ್ರಿಂಟ್ ಆಗುವ ಹಾಳೆ ನಿಜವಾಗಿಯೂ ಒಳಗೆ ಹೋಗಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಲೇಖಕರು ಈಗ ಪ್ರತಿ ಕೆಲಸದ ನಂತರ ಪ್ರಿಂಟರ್‌ನ ಭೌತಿಕ ಪೇಜ್ ಕೌಂಟರ್ ಅನ್ನು ಓದುತ್ತಾರೆ.

  2. ದಾಖಲೆಗಳು (Documentation) ವಾಸ್ತವವಲ್ಲ. 300 dpi ಎಂಬ ವಾದವು ಇದಕ್ಕೆ ಸ್ಪಷ್ಟ ಉದಾಹರಣೆ. ತಾಂತ್ರಿಕ ವಿವರಗಳು (Specs) ಅತಿಯಾದ ಭರವಸೆಯಾಗಿರಬಹುದು, ಹಳೆಯದಾಗಿರಬಹುದು ಅಥವಾ ಕೇವಲ ತಪ್ಪಾಗಿರಬಹುದು. ದೃಶ್ಯ ನಿಖರತೆ (visual fidelity) ಮುಖ್ಯವಾದಾಗ, ಡೆವಲಪರ್‌ಗಳು ಪ್ರಮುಖ ನಿಯತಾಂಕಗಳನ್ನು (parameters) ತಾವೇ ಅಳೆಯಬೇಕು.

  3. "ಫಿಟ್" ಪರೀಕ್ಷೆಗಳಿಗಿಂತ ಭೌತಿಕ ಗುರುತುಗಳು ಉತ್ತಮ. ಲೇಬಲ್ ಪ್ರದೇಶಕ್ಕೆ ಚಿತ್ರವು ಹೊಂದಿಕೆಯಾಗುತ್ತದೆಯೇ ಎಂದು ನೋಡಲು ಪ್ರಿಂಟ್ ಮಾಡುವುದು ರೆಸಲ್ಯೂಶನ್, ಪ್ರಿಂಟ್‌ಹೆಡ್ ಅಗಲ ಅಥವಾ ಆಫ್‌ಸೆಟ್ ದೋಷಗಳನ್ನು ಮರೆಮಾಚಬಹುದು. ತಿಳಿದಿರುವ ಜ್ಯಾಮಿತೀಯ ಗುರುತನ್ನು (geometric mark) ಪ್ರಿಂಟ್ ಮಾಡಿ ಅದರ ನಿಖರವಾದ ಸ್ಥಳವನ್ನು ಅಳೆಯುವುದು ಸಾಧನದ ನಿಜವಾದ ವರ್ತನೆಯನ್ನು ಬಹಿರಂಗಪಡಿಸುತ್ತದೆ.

  4. ಪ್ರೊಟೊಕಾಲ್ ವ್ಯಾಕರಣವನ್ನು ವಿವರಿಸುತ್ತದೆ, ಹಾರ್ಡ್‌ವೇರ್ ಸ್ವಭಾವವನ್ನಲ್ಲ. ಎರಡು ಪ್ರಿಂಟರ್‌ಗಳು ಒಂದೇ ಕಮಾಂಡ್ ಸೆಟ್ ಅನ್ನು ಹೊಂದಿದ್ದರೂ ವಿಭಿನ್ನವಾಗಿ ವರ್ತಿಸಬಹುದು—ಒಂದು ವೇಗವಾಗಿ ಪುಟಗಳನ್ನು ಪುನರಾವರ್ತಿಸುತ್ತದೆ, ಇನ್ನೊಂದು ನಿಂತುಹೋಗಬಹುದು. ಕೇವಲ ಪ್ರೊಟೊಕಲ್ ದಾಖಲೆಗಳ ಆಧಾರದ ಮೇಲೆ ಡ್ರೈವರ್ ಒಂದೇ ರೀತಿಯ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ನಿರೀಕ್ಷಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ; ಪ್ರತಿ ಮಾಡೆಲ್‌ಗೆ ನೈಜ-ಪ್ರಪಂಚದ ಪರೀಕ್ಷೆ ಅಗತ್ಯವಿದೆ.

ಈ ಡ್ರೈವರ್ ಏಕೆ ಮುಖ್ಯ

ಈ ಡ್ರೈವರ್ ಎಲ್ಲವನ್ನೂ ತಿಳಿದಿದೆ ಎಂದು ಎಂದಿಗೂ ನಟಿಸುವುದಿಲ್ಲ. ಪ್ರಿಂಟರ್‌ನಿಂದ ಓದುವ ಬದಲು ಯಾವಾಗಲಾದರೂ ಯಾವುದಾದರೂ ಮೌಲ್ಯವನ್ನು ಅಂದಾಜಿಸಿದಾಗ, ಅದು ಆ ಫೀಲ್ಡ್ ಅನ್ನು "ಊಹೆ" (guess) ಎಂದು ಗುರುತಿಸುತ್ತದೆ. ಈ ಪಾರದರ್ಶಕತೆಯು ಮೌನ ದೋಷಗಳನ್ನು ತಡೆಯುತ್ತದೆ, ಇಲ್ಲದಿದ್ದರೆ ಅವು ಡಿಬಗ್ ಮಾಡಲು ಗಂಟೆಗಟ್ಟಲೆ ಸಮಯ ವ್ಯಯವಾಗುತ್ತಿತ್ತು.

ಡ್ರೈವರ್ ಪಡೆಯುವುದು ಹೇಗೆ

ಈ ಡ್ರೈವರ್ Chrome ಅಥವಾ Edge ನಲ್ಲಿ ಚಲಿಸುತ್ತದೆ ಮತ್ತು ಇದಕ್ಕೆ ಬ್ಲೂಟೂತ್ ಸೌಲಭ್ಯವಿರುವ ಸಾಧನ ಮತ್ತು ಬೆಂಬಲಿತ Niimbot ಪ್ರಿಂಟರ್ ಮಾತ್ರ ಬೇಕಾಗುತ್ತದೆ. ಲೈವ್ ಡೆಮೊವನ್ನು ಇಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ:

https://iscarelli.github.io/niimbot-web-bluetooth/demo/

ಇದರ ಸೋರ್ಸ್ ಕೋಡ್ GitHub ನಲ್ಲಿ ಲಭ್ಯವಿದೆ, ಅಲ್ಲಿ ಸಮುದಾಯವು ಮಾಡೆಲ್ ಡೇಟಾವನ್ನು ನೀಡಬಹುದು, ಬಗ್‌ಗಳನ್ನು ಸರಿಪಡಿಸಬಹುದು ಅಥವಾ ಇತರ ಬ್ರೌಸರ್‌ಗಳಿಗಾಗಿ ಡ್ರೈವರ್ ಅನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಬಹುದು:

https://github.com/iscarelli/niimbot-web-bluetooth

Niimbot ಮಾಲೀಕರು ಮಾಡೆಲ್ ಡೇಟಾಬೇಸ್ ಅನ್ನು ತುಂಬಲು ಸಹಾಯ ಮಾಡಬಹುದು; ಈ ಪ್ರಕ್ರಿಯೆಗೆ ಸುಮಾರು ಹತ್ತು ನಿಮಿಷ ಮತ್ತು ಎರಡು ಲೇಬಲ್‌ಗಳು ಬೇಕಾಗುತ್ತವೆ.

ವಿರೋಧಾತ್ಮಕ ಅಂಶ

ಕಂಪನಿಯು ಈ ವ್ಯತ್ಯಾಸವನ್ನು ಸ್ಪಷ್ಟಪಡಿಸುವವರೆಗೆ, ಡೆವಲಪರ್‌ಗಳು ಅಳತೆ ಮಾಡಿದ ಮೌಲ್ಯದೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಬೇಕಾಗುತ್ತದೆ.

ಇದರ ಸಾರಾಂಶ ಸರಳವಾಗಿದೆ: ನೀವು ವೆಬ್ ಪುಟದಿಂದ ಬಳಸುವ ಹಾರ್ಡ್‌ವೇರ್ ಅದರ ಸ್ಪೆಕ್ ಶೀಟ್ (spec sheet) ಭರವಸೆ ನೀಡಿದಂತೆ ಕೆಲಸ ಮಾಡದಿರಬಹುದು. ಪ್ರಮುಖ ನಿಯತಾಂಕಗಳನ್ನು ಪರಿಶೀಲಿಸಿ, ಮೌನ ವೈಫಲ್ಯಗಳನ್ನು ನಿರೀಕ್ಷಿಸಿ ಮತ್ತು ಅನಿಶ್ಚಿತತೆಯನ್ನು ಮರೆಮಾಚುವ ಬದಲು ಅದನ್ನು ಬಹಿರಂಗಪಡಿಸುವ ಡ್ರೈವರ್‌ಗಳನ್ನು ಆರಿಸಿ.