ಸಮಯದ ಜೊತೆ ಪ್ರೋಗ್ರಾಮ್ಮಿಂಗ್ ಮಾಡುವಾಗ : ಪ್ರಿಸಿಷನ್ ಮೇಲೆ ಗಮನವಿರಲಿ

ಈ ಲೇಖನವು ನಾನು ಇದಕ್ಕೂ ಮುಂಚೆ ಇಂಗ್ಲಿಷ್ ನಲ್ಲಿ ಬರೆದ “ವೆನ್ ಪ್ರೋಗ್ರಾಮ್ಮಿಂಗ್ ವಿಥ್ ಟೈಮ್: ಎ ಸಿಂಪಲ್ ಕೇಸ್ ಓಫ್ ಪ್ರಿಸಿಶನ್” (When Programming with Time: A simple case of precision) ನ ಅನುವಾದಕೀಯ ಪ್ರಯತ್ನ.

ಕೆಲುವು ತಿಂಗಳುಗಳ ಮುಂಚೆ ಸಮಯದ ಜೊತೆ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮಾಡುತ್ತಿದ್ದೆವು. ಸಮಯದ ಜೊತೆ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮಾಡುವಾಗ ಸಮಯ ವಲಯದಂತಹ ಹಲವು ವಿಷಯಗಳ ಮೇಲೆ ಗಮನ ವಿಡಬೇಕು. ಇದರಲ್ಲಿ ಪ್ರಿಸಿಷನ್ಯು (Precision) ಒಂದು ಮುಖ್ಯ ವಿಷಯ ವಾಗಿದೆ.

ಕೆವಿನ್ ಕು ರವರು ತಗೆದ ಫೋಟೊ ಅಂಸ್ಪ್ಲಾಷ್ ನಿಂದ ಪಡೆದಿದ್ದು(Photo by Kevin Ku on Unsplash)

ನಾವು ಒಂದು ಸಾಧನಕ್ಕಾಗಿ (ಫೀಚರ್ feature) ರಚಿಸಲಾದ ಸಮಯದ ಸಂಭಂದಿತ ಎಪಿಐ (API) ಅನ್ನು ಒಳಪಡಿಸುವಾಗ (ಇಂಟಿಗ್ರೇಷನ್ integration) ಒಂದು ಸಮಸ್ಯೆ(ಬಗ್ bug) ಕಾಣಿಸಿಕೊಂಡಿತು. ಇನ್ನು ಆಗದಂತ ಘಟನೆಯ ಸಮಯಕ್ಕೆ ಈಗಿನಿಂದ ಇರುವ ಮಧ್ಯಂತರವನ್ನು ಮಿಲಿಸೆಕೆಂಡ್(millisecond , ಸೆಕೆಂಡಿನ ಸಹಸ್ರಾಂಶ) ನಲ್ಲಿ ಕೊಡುತ್ತಿದೆವು. ಘಟನೆ ಆಗದಿದ್ದರೂ ಮುಂಚೆ ಸೂಕ್ಷ್ಮ ಹೆರಿಗೆಯಲ್ಲಿ (ಒಂದು ಸೆಕೆಂಡ್ ಅಂತರದಲ್ಲಿ) ಋಣಾತ್ಮಕ ಮೌಲ್ಯ ಎಪಿಐ ನಲ್ಲಿ ಬರುತ್ತಿತ್ತು. ತನಿಖೆಯಾ ನಂತರ ಇದರ ಮೂಲ ಕಾರಣವೂ ಪ್ರಿಸಿಷನ್ಗೆ ಸಂಬಂಧಪಟ್ಟದು ಎಂದು ಗೊತ್ತಾಯಿತು.

ಕೇಳಿಗುರುರವ ಪ್ರೋಗ್ರಾಮ್ ಹಾಗು ಅದರ ಉತ್ಪತ್ತಿ(ಔಟ್ಪುಟ್- output) ನನ್ನು ನೋಡಿ.

ಪ್ರೋಗ್ರಾಮ್ ಜಾವ(java) ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಲ್ಲಿದೆ
ಪ್ರೋಗ್ರಾಮಿನ ಉತ್ಪತ್ತಿ

ಸನ್ನಿವೇಶ 1 ಹಾಗು 2 ರಲ್ಲಿ ಸಮಯದ ಮಧ್ಯಂತರಗಳು ತುಲನಾತ್ಮಕವಾಗಿ (ರಿಲೇಟಿವ್ಲೀ- relatively) ದೊಡ್ಡದು, ಗಂಟೆ ಹಾಗು ಸೆಕೆಂಡ್ ನ ಮಧ್ಯಂತರಗಳು . ಮಧ್ಯಂತರಗಳು ನಿಮ್ಮ ಅಪೇಕ್ಷಿತ ಪ್ರಿಸಿಷನ್ ಗಡಿಯ ಸಮೀಪ ಅಥವ ದಾಟಿದಾಗ, ಪ್ರೋಗ್ರಾಮ್ ಅನಿರೀಕ್ಷಿತವಾಗಿ ವರ್ತಿಸುತ್ತದೆ. ಸನಿವೇಶ 3 ರಲ್ಲಿ ಪ್ರಿಸಿಷನ್ ಬದಲಿಸದೆ ಪೂರ್ವನಿಯೋಜಿತ (ಡೀಫಾಲ್ಟ್ — default) ಮಿಲ್ಲೆಸೆಕೆಂಡ್ ಪ್ರಿಸಿಶನ್ ಉಪಿಯೋಗಿಸುತ್ತಿದ್ದೇವೆ. ಆ ಸನ್ನಿವೇಶದಲ್ಲಿ ಮಧ್ಯಂತರ ಸೂಕ್ಷ್ಮ ವಿದ್ದರೂ ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ ಉತ್ಪತ್ತಿ 0 ಬಂದಿದೆ. ಸನಿವೇಶ 4 ರಲ್ಲಿ, ನಮ್ಮ ಪ್ರಿಸಿಶನ್ ಸೆಕೆಂಡಿನದಾಗಿದ್ದು, ಪೂರ್ವನಿಯೋಜಿತ ಪ್ರಿಸಿಶನ್ ಮಿಲ್ಲಿಲಿಸೆಕೆಂಡ್ಡಿನದಾಗಿದ್ದು ಈ ವೆತ್ಯಾಸವು ಅನಿರೀಕ್ಷಿತ ಉತ್ಪತ್ತಿ -1 ಗೆ ಕಾರಣ.

ಪ್ರಿಸಿಶನ್ ಮತ್ತು ನಿಖರತೆ(ಅಕ್ಯುರೆಸಿ — accuracy) ಪ್ರೌಢಶಾಲೆಯ ವಿಷಯಗಳಾಗಿದ್ದರು, ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮಾಡುವಾಗಲೂ ಭೌತಿಕ ಲೋಕದಲಿನಷ್ಟೇ ನಿರ್ಣಾಯಕವಾಗಿವೆ.

--

--