- Yazının yazarı, Gravel Worlds Long Voyage bisiklet yarışına katıldıktan sonra Casey's General Store’dan pizza siparişi vererek beslenmesini optimize etmeye karar verdi
- Bir önceki yıl hızlı yarışçılar tüm pizzaları tükettiği için vardığında pizza kalmaması sorunu yaşanmıştı
- Bu sorunu çözmek için, bisiklet GPS’i geofence alanının dışına çıktığında pizza siparişi veren bir betik yazmaya karar verdi
- Bu betik, bir önceki yıl oluşturduğu sunucusuz GPS takip sistemi üzerine kuruldu
- Betik, bir sonraki mola noktasına varış tahmini süresini hesaplıyor ve takip cihazı AWS Location hizmetinde tanımlanan geofence alanının dışına çıktığında pizza siparişi veren bir Lambda fonksiyonunu tetikliyor
- Casey's, çevrimiçi sipariş için herkese açık bir API sunmadığından, çözüm olarak Playwright ile web sitesinin screen scraping yöntemi kullanıldı
- Pizza siparişinin başarılı ya da başarısız olmasına göre kendi telefonuna push bildirimleri gönderilecek şekilde ayarlandı
- Yarış sırasında pizzanın başarıyla sipariş edildiğine dair yanlış bir bildirim aldı, ancak mola noktasında sipariş kaydı yoktu
- Yarıştan sonra, tarayıcının çalışmasını video olarak kaydeden ve analiz için bir S3 bucket’a yükleyen Lambda fonksiyonunu geliştirdi
- Hatanın, Playwright tarayıcısındaki son
form.submit() işlendikten hemen sonra Lambda’nın yürütmeyi sonlandırmasından kaynaklanmış olabileceğini tahmin ediyor
- Başarısızlığa rağmen bu projeden çok şey öğrendi ve yaklaşan yarışlarda tekrar denemeyi planlıyor
- Projenin kodları GitHub’da incelenebilir
1 yorum
Hacker News yorumu
pizzatoolun 21. yüzyıl versiyonuna benzetiliyorWaypoint Pizzaadlı bir pizzacıdan bahsediliyor; belirli bir yelken yarışı sırasında San Francisco Körfezi’nde teslimat yapıyor