1. Giriş ve Bilişsel Yük Kuramı
Yazılım mühendisliği yüksek odaklanma ve soyut düşünme becerileri gerektirir. Uzun süreli zihinsel çalışma, bilişsel kaynakların tükenmesine (cognitive depletion) ve hata yapma olasılığının artmasına neden olur. Emotice Codeburn, harici bir donanım veya kamera kullanmadan, yalnızca geliştiricinin bilgisayar ile olan fiziksel girdi (input) ritimlerini analiz ederek stres ve zihinsel aşırı yük durumlarını tespit eder.
2. Girdi Metrikleri ve Kriptografik Ön İşleme
Kullanıcının yazdığı kodların veya özel yazışmalarının gizliliğini korumak amacıyla, harflerin kendileri (tuş değerleri) asla kaydedilmez veya analiz edilmez. Sistem sadece tuşa basılma sürelerini (milisaniye cinsinden) ve tuşlar arasındaki zaman aralıklarını toplar. Bu süreç yerel olarak işletilir.
Ana Zamanlama Metrikleri:
- Dwell Time (T_d): Bir tuşun basılı tutulduğu süre.
- Flight Time (T_f): Bir tuştan elin çekilmesi ile bir sonraki tuşa basılması arasında geçen süre.
- Hata Frekansı (E_f): Belirli bir zaman aralığındaki (örneğin 1 dakika) Backspace veya Delete tuşuna basım oranı.
3. Bilişsel Yük İndeksi (CLI) Formülü
Bilişsel yük artışı veya stres durumunda, kişinin yazım ritminde kararsızlıklar (jitter) başlar ve hata silme tuşunu kullanım sıklığı artar. Bilişsel Yük İndeksi (CLI), her 5 dakikalık kayar pencerede (sliding window) şu formülle hesaplanır:
Burada:
- σ(T_d): Tuş basım sürelerinin standart sapmasıdır (yazım ritmindeki tutarsızlığı ölçer).
- Var(T_f): Tuşlar arası uçuş sürelerinin varyansıdır (kararsız duraksamaları temsil eder).
- N_backspace / N_total: Toplam basılan tuşlara oranla yapılan hata ve düzeltme sıklığıdır.
- w_1, w_2, w_3: Deneylerle optimize edilmiş ağırlık katsayılarıdır.
4. Yerel Python CLI Analiz Servis İmplementasyonu
Aşağıda, CLI hesaplamasını yapan arka plan analiz fonksiyonunun sadeleştirilmiş bir Python örneği yer almaktadır:
import numpy as np
def calculate_cognitive_load(dwell_times, flight_times, backspace_count, total_keys):
"""
Kullanıcının son 5 dakikalık verilerine göre CLI değerini hesaplar.
CLI range: 0.0 (Tamamen Rahat) - 1.0 (Aşırı Zihinsel Yük / Burnout Risk)
"""
if total_keys == 0 or len(dwell_times) < 10:
return 0.0
# Katsayılar
w1, w2, w3 = 0.35, 0.35, 0.30
# 1. Ritm tutarsızlığı (standart sapma)
std_dwell = np.std(dwell_times)
# Normalize et (maksimum normal dalgalanma 150ms kabul edilirse)
norm_dwell = min(std_dwell / 150.0, 1.0)
# 2. Kararsız duraksamalar (varyans)
var_flight = np.var(flight_times)
# Normalize et (maksimum varyans 50000ms^2 kabul edilirse)
norm_flight = min(var_flight / 50000.0, 1.0)
# 3. Düzeltme oranı
correction_ratio = backspace_count / total_keys
# %15 hata oranı aşırı yük sınırı kabul edilirse
norm_correction = min(correction_ratio / 0.15, 1.0)
cli = (w1 * norm_dwell) + (w2 * norm_flight) + (w3 * norm_correction)
return round(float(cli), 3)
5. Karar Verme ve Mola Yönlendirme Akışı
Hesaplanan CLI değeri ardışık iki ölçüm penceresinde 0.75 eşik değerinin üzerine çıkarsa, sistem kullanıcının bilişsel olarak yorulduğuna karar verir. Bu durumda, göz yorgunluğunu engellemek ve odaklanmayı tazelemek için ekranda hafif bir bildirim belirerek 20-20-20 kuralı (her 20 dakikada bir 20 saniye boyunca 20 fit uzağa bakmak) veya 5 dakikalık esneme egzersizleri tavsiye edilir.
Sonuç
Emotice Codeburn, tamamen pasif veri toplama ve yerel kriptografik analiz yöntemleriyle geliştiricilerin zihinsel sağlığını korumaya yönelik pratik bir araçtır. Pilot testlerde, sistemin önerdiği molalara uyan yazılımcıların gün sonundaki kod hata oranlarında (bug frequency) %18 azalma tespit edilmiştir.