Python geliştiricileri için Yz Promtları

ertin

Üye
    Konu Sahibi
Python geliştiricileri için Yz Promtları
Prompt:
Symbian s60v2 için Python promptları yazar mısınız 15 prompt

Gemini

Symbian S60v2 cihazlar (Nokia 6600, 7610, 6630, N70 vb.) donanım kısıtları ve platforma özgü C++ API sarmalayıcıları nedeniyle standart Python'dan farklı modüller (appuifw, e32, telephone, messaging, camera, inbox) kullanır. Çoğunlukla Python for S60 (PyS60) 1.2.x veya 1.4.x (Python 2.2/2.5 çekirdeği) sürümleri hedeflenir.


Yapay zeka modellerinden doğrudan çalıştırılabilir, hatasız ve döneme uygun kod üretmesini sağlayacak 15 ayrıntılı prompt:


Temel GUI ve Uygulama İskeleti​


  1. Standart Menülü Arayüz İskeleti:
  2. Sekmeli (Tabs) Arayüz:
  3. Form ve Kullanıcı Girdisi Toplama:

Cihaz Özellikleri, Donanım ve Telephony​


  1. SMS Okuma ve Gelen Kutusu Listeleme:
  2. Otomatik SMS Gönderici:
  3. Rehberden Kişi Arama ve Arama Başlatma:
  4. Kamera ile Fotoğraf Çekip Galeriye Kaydetme:

Dosya Yönetimi, Ses ve Arka Plan İşlemleri​


  1. Dosya Yöneticisi (File Browser):
  2. Ses Kaydedici ve Çalayıcı:
  3. Pil Seviyesi ve Hafıza Durumu Göstergesi:

Grafik, Canvas ve Oyun Mekanikleri​


  1. Canvas Üzerinde 2D Çizim ve Animasyon:
  2. Tuş Takımı Kontrollü Basit Yılan Oyunu:

Ağ, Bağlantı ve Çevre Birimleri​


  1. HTTP GET İsteği ile Veri Çekme:
  2. Bluetooth Cihaz Tarayıcı:
    "PyS60 btsocket modülünü kullanarak çevredeki Bluetooth cihazlarını tarayan (discover()) bir betik yaz. Bulunan cihazların adlarını ve MAC adreslerini bir appuifw.Listbox içine aktarsın."
  3. Arka Plan Servisi ve Sistem Zamanlayıcı:
Mesaj birleştirildi:

20 Bonus Bilgi​

  1. Çekirdek Dili: Symbian S60v2 için PyS60 (Python for S60), standart masaüstü Python 2.2.2 çekirdeği temel alınarak C++ ile entegre edilmiştir; sonraki güncellemelerde Python 2.5.4 sürümüne taşınmıştır.
  2. Karakter Kodlaması: PyS60 arayüzünde (appuifw) Türkçe karakterleri doğru basmak için metinlerin mutlaka u"Metin" şeklinde Unicode tanımlanması ya da .decode('utf-8') yapılması şarttır.
  3. Ekran Çözünürlüğü: Standart S60v2 cihazlar (Nokia 6600, 7610) 176x208 piksel ekran kullanırken, geç dönem S60v2 FP3 cihazlar (Nokia N90 gibi) 352x416 piksel çözünürlüğe sahiptir.
  4. Sürücü Mimarisi: C:\ telefonun dahili flash belleğini, E:\ harici hafıza kartını (MMC/RS-MMC), Z:\ ise salt okunur sistem ROM'unu temsil eder.
  5. Döngü Kilidi: PyS60 betiklerinde e32.Ao_lock() kullanılmazsa betik son satıra ulaştığı anda uygulama çökercesine kapanır.
  6. Bloklayıcı Uyku Hatası: time.sleep() UI thread'ini dondurarak cihazın kilitlenmesine yol açabilir; bunun yerine asenkron çalışan e32.ao_sleep() kullanılmalıdır.
  7. Paketleme Formatı: Yazılan .py dosyaları telefonda doğrudan Python yorumlayıcısıyla çalıştırılabileceği gibi, Ensymble aracıyla bağımsız .sis kurulum paketlerine dönüştürülebilir.
  8. Konsol Çıktısı: print komutları ekranda varsayılan olarak interaktif Python konsoluna (interactive console) yazdırılır.
  9. Kamera Farkı: S60v2 FP1 (6600) ile FP2/FP3 (6630, N70) arasında kamera API yetenekleri farklıdır; çözünürlük parametreleri her modelde aynı esneklikte çalışmaz.
  10. Ağ Seçimi: S60v2'de doğrudan soket açıldığında sistem otomatik olarak varsayılan IAP (Erişim Noktası) onayını tetikler.
  11. Çift Tamponlama (Double Buffering): graphics.Image.new() ile bellek içi sanal bir yüzey oluşturup çizimi buraya yaptıktan sonra canvas.blit() ile ekrana aktarmak ekran titremesini tamamen keser.
  12. Tuş Kodları: Menü ve arama tuşları doğrudan Python tarafına yakalanabilir olaylar olarak iletilmez; çoğunlukla sadece standart sayısal tuş takımı ve joystick yön tuşları dinlenebilir.
  13. PyS60 Kurulum Konumu: PyS60 çalışma ortamının (runtime) ve modüllerinin telefon hafızası (C:\) yerine hafıza kartına (E:\) kurulması, kısıtlı RAM ve dahili alan tükenmesini önler.
  14. Dosya İsimlendirme Sınırı: Standart FAT dosya sistemi kuralları nedeniyle yol (path) uzunlukları ve geçersiz karakterler dosya işlemlerinde sessizce IOError fırlatır.
  15. Yazı Tipi Yönetimi: graphics modülünde metin çizerken sistem fontları (dense, normal, annotation) kısıtlı boyut seçenekleriyle doğrudan donanımdan çağrılır.
  16. Bellek Sızıntısı Riski: Sürekli graphics.Image örneği oluşturup silmemek telefonun sınırlı RAM'inde bellek yetersizliği (Symbian OS error -4) hatasına yol açar.
  17. Menü Hiyerarşisi: appuifw.app.menu ikili tuple listesi şeklinde tanımlanır; alt menüler için iç içe tuple yapıları kullanılabilir.
  18. SMS Erişim İzni: S60v2'de inbox modülü üzerinden SMS okurken veya messaging ile SMS yollarken S60v3'teki gibi katı yetki sertifikalandırması (Symbian Signed) gerekmez.
  19. Özel Kütüphane Yolu: Harici Python modülleri (.py dosyaları) C:\system\libs\ veya E:\system\libs\ dizinine atıldığında import ile doğrudan çağrılabilir.
  20. Arka Plan Kısıtı: PyS60 uygulaması arka plana atıldığında sistem bellek baskısı altındaysa OS tarafından sessizce sonlandırılabilir.

5 İlginç Bilgi​


  1. Resmi Nokia Desteği: PyS60 projesi Nokia tarafından hobi geliştiricilerini çekmek ve akıllı telefon uygulama ekosistemini hızlandırmak için bizzat geliştirilmiş ve açık kaynak olarak yayımlanmıştır.
  2. SMS ile Uzaktan Yönetim Popülaritesi: O dönem PyS60 ile yazılan en yaygın projelerden biri, telefona belirli bir formatta SMS geldiğinde bilgisayarı kapatan, fotoğraf çeken veya konumu geri yollayan casus/otomasyon araçlarıydı.
  3. Bluetooth Üzerinden Shell: Telefona Bluetooth üzerinden bir RFCOMM seri bağlantı noktası ile bağlanıp bilgisayardaki terminalden telefona canlı Python komutları (REPL) gönderilebiliyordu.
  4. Taşınabilir Web Sunucusu: S60v2 cihazlarda Python üzerinden küçük bir HTTP sunucusu kurularak telefonun kendisi taşınabilir bir web sunucusuna dönüştürülebiliyordu.
  5. Dönemin Donanım Gücü: Bu zengin Python ortamını çalıştıran Nokia 6600 gibi cihazların işlemcisi yalnızca ~104 MHz (ARM9) hızındaydı ve yaklaşık 10-16 MB kullanılabilir RAM'e sahipti.

2 Kaçamak (Geçici Çözüm / Workaround)​


  1. UI Thread Kilitlenmesini Aşma Kaçamağı:
    • Problem: Uzun süren bir döngü veya dosya indirme işlemi yaparken ekranın donması ve sistemin "Uygulama yanıt vermiyor" hatası üretmesi.
    • Kaçamak: Python tarafında standart threading modülü S60v2'de kararsız olduğundan, uzun döngülerin arasına e32.ao_yield() serpiştirilir. Bu çağrı, işletim sisteminin çizim ve tuş olaylarını işlemesi için mikro bir aralık tanır ve uygulamanın donmasını engeller.
  2. Tam Ekran Çizim Alanı Kazanma Kaçamağı:
    • Problem: appuifw.app.screen = 'full' yapıldığında bile üstteki batarya/şebeke göstergeleri veya alttaki yumuşak tuş (softkey) çubuklarının tamamen kaybolmaması.
    • Kaçamak: Önce ekran modu 'full' yerine doğrudan 'large' seçilir, ardından Canvas bileşeni oluşturulup hemen arkasından tekrar 'full' moduna geçirilerek pencere yöneticisi sıfırdan çizime zorlanır; böylece 176x208 alanın tamamı piksel piksel kontrol edilebilir.

3 Gizli Bilgi (Undocumented / Az Bilinen Sistem Detayları)​


  1. Korumasız Sistem Dizinlerine Tam Erişim (Pre-Symbian Signed Açığı): S60v3 ve sonrasında gelen "Platform Security" (Korumalı Dizinler: \sys\, \private\) S60v2'de henüz mevcut değildir. Bir PyS60 betiğiyle C:\system\data\ altındaki sistem veritabanlarına, kilitli sistem dosyalarına, hatta kayıtlı şifrelerin ve SMS veritabanlarının (index dosyaları) tutulduğu ham dosyalara hiçbir izin veya root/hack işlemi gerekmeksizin doğrudan open('C:\\system\\...', 'rb') ile erişilebilir.
  2. Belgelenmemiş Tuş Kodları (Raw Scancodes): key_codes modülünde resmi olarak listelenmeyen ancak donanım düzeyinde üretilen ham tarama kodları (scancode) mevcuttur. Örneğin; kalem/düzenleme tuşu (Pen/Pencil Key) veya cihazın yan tarafındaki ses/bas-konuş (PTT) fiziksel tuşları, standart olay dinleyicisi yerine doğrudan e32.ao_sleep ile polling yapılarak yakalanabilir ve özel tetikleyici olarak kullanılabilir.
  3. e32.drive_list() ile Gizli ROM Sürücüleri: Çoğu kullanıcı ve standart API dokümanı yalnızca C: ve E: sürücülerine odaklanırken, e32.drive_list() fonksiyonu çağrıldığında sistemde D: (RAM Disk) ve Z: (Gömülü Sistem ROM) gibi sürücüler listelenir. Z:\system\ altındaki orijinal fabrika DLL'leri ve derlenmiş Python çekirdek kitaplıkları incelenerek işletim sisteminin fabrika çıkış konfigürasyonları doğrudan okunabilir.
Mesaj birleştirildi:

Chatgpt:
Tabii. Symbian S60v2 üzerinde Python for S60 (PyS60) ile kod üretmek için kullanabileceğiniz 15 hazır prompt:

  1. Hesap makinesi
    Symbian S60v2 ve Python for S60 uyumlu, toplama, çıkarma, çarpma ve bölme işlemleri yapan basit bir hesap makinesi uygulaması yaz.
  2. Not defteri
    Symbian S60v2 için PyS60 kullanarak metin yazıp telefona .txt olarak kaydedebilen ve daha sonra açıp okuyabilen basit bir not defteri oluştur.
  3. Dosya yöneticisi
    S60v2/PyS60 uyumlu bir dosya yöneticisi yaz. Telefon hafızasındaki klasörleri listeleyebilsin, klasörlere girebilsin ve dosya isimlerini gösterebilsin.
  4. Telefon bilgileri
    Symbian S60v2 için Python ile telefon modeli, IMEI, batarya seviyesi ve kullanılabilir hafıza bilgilerini gösteren bir uygulama yaz.
  5. Dijital saat
    PyS60 ile S60v2 uyumlu, ekranda büyük yazıyla saat, dakika ve saniyeyi gösteren dijital saat uygulaması oluştur.
  6. Kronometre
    Symbian S60v2 için Python kullanarak başlat, durdur ve sıfırla özelliklerine sahip basit bir kronometre uygulaması yaz.
  7. Geri sayım sayacı
    PyS60 üzerinde çalışacak bir geri sayım uygulaması oluştur. Kullanıcı saniye cinsinden süre girebilsin ve süre bittiğinde uyarı versin.
  8. Şifre oluşturucu
    S60v2 ve PyS60 uyumlu rastgele şifre oluşturucu yaz. Kullanıcı şifre uzunluğunu seçebilsin ve harf/rakam kombinasyonları oluşturulsun.
  9. Yazı-tura
    Symbian S60v2 için Python ile çalışan basit bir yazı-tura oyunu oluştur. Menü tuşuyla seçim yapılabilsin ve sonuç ekranda gösterilsin.
  10. Zar atma
PyS60 kullanarak S60v2 telefonlarda çalışacak sanal zar uygulaması yaz. Kullanıcı bir tuşa bastığında 1 ile 6 arasında rastgele sayı üretsin.
  1. Metin şifreleme
Symbian S60v2/PyS60 için basit bir metin şifreleme ve şifre çözme uygulaması yaz. Kullanıcı metni girsin, anahtar belirlesin ve metni kaydedebilsin.
  1. Kişi arama
S60v2 için PyS60 kullanarak telefondaki rehberde isim veya numaraya göre arama yapan basit bir uygulama yaz. Eski Symbian API'leriyle uyumlu olmasına dikkat et.
  1. SMS taslağı
Symbian S60v2 ve Python for S60 kullanarak kullanıcıdan telefon numarası ve mesaj alan, ardından SMS gönderme ekranını açan bir uygulama oluştur. Otomatik SMS göndermek yerine telefonun onay ekranını kullansın.
  1. Mini oyun
S60v2/PyS60 için yalnızca eski Symbian API'lerini kullanarak basit bir sayı tahmin oyunu yaz. Kullanıcı 1-100 arasında bir sayı tahmin etsin; program büyük/küçük şeklinde ipucu versin.
  1. Başlatıcı menü
Mesaj birleştirildi:

Chatgpt
Elbette. Önceki 15 Symbian S60v2 Python promptuna ek olarak istediğiniz bölümleri şöyle ekleyebiliriz:

🎁 20 Bonus Bilgi​

  1. S60v2 için kullanılan Python sürümü, günümüz Python sürümlerinden oldukça farklıdır.
  2. PyS60'da modern f-string kullanılamaz.
  3. print() yerine eski Python sözdizimi gerekebilir.
  4. Kod yazarken mümkün olduğunca basit API'ler tercih edilmelidir.
  5. appuifw, PyS60 uygulamalarında sık kullanılan modüllerden biridir.
  6. e32 zamanlayıcı ve sistem işlevlerinde kullanılabilir.
  7. graphics basit grafik uygulamaları için kullanılabilir.
  8. Telefonun ekran çözünürlüğü modern telefonlardan çok daha küçüktür.
  9. Menü tabanlı uygulamalar S60v2 için dokunmatik arayüzlerden daha uygundur.
  10. Joystick/5 yönlü navigasyon kontrolleri hesaba katılmalıdır.
  11. Tuş kodları cihaz modeline göre farklılık gösterebilir.
  12. Dosya yollarında Symbian'ın kendi sürücü isimleri kullanılır.
  13. Uygulama klasörünün yazma izinleri önemlidir.
  14. Bellek miktarı düşük olduğu için büyük veri yapılarından kaçınmak gerekir.
  15. Sonsuz döngüler telefonu kilitleyebilir.
  16. e32.Ao_lock() gibi mekanizmalar uygulamanın açık kalmasını sağlayabilir.
  17. Uygulama kapatılırken kaynakları temizlemek önemlidir.
  18. Hata ayıklama için küçük programlarla başlamak daha güvenlidir.
  19. Kodun S60v2'de çalışması için kullanılan Python sürümüne göre yazılması gerekir.
  20. Günümüz Python kodunu doğrudan PyS60'a yapıştırmak çoğu zaman çalışmaz.

🤔 5 İlginç Bilgi​

  1. PyS60, Python'u eski Nokia telefonlarına taşıyan en önemli projelerden biriydi.
  2. S60v2 telefonlarda Python ile dosya sistemi ve bazı telefon özellikleri programlanabiliyordu.
  3. Aynı PyS60 kodu farklı Nokia modellerinde her zaman birebir çalışmayabilir.
  4. Eski telefonlarda küçük bir Python programı bile oldukça kullanışlı bir araç haline gelebiliyordu.
  5. S60v2 döneminde uygulamaların büyük bölümü klavye ve joystick kullanımına göre tasarlanıyordu.

🕳️ 2 Kaçamak​

Kaçamak 1:
Promptlara şu ifadeyi eklemek, modern Python özellikleri kullanılmasını önlemeye yardımcı olur:

"Kod tamamen Python for S60/PyS60'ın desteklediği eski Python sürümüyle uyumlu olsun; Python 3 özellikleri kullanma."
Kaçamak 2:
Bir kod çalışmazsa tek seferde dev bir program istemek yerine:

"Önce S60v2'de çalışabilecek minimum kodu yaz. Daha sonra özellikleri tek tek ekle."
şeklinde ilerlemek daha sağlıklıdır.

🔐 3 Gizli Bilgi​

  1. Gizli bilgi #1: Eski Symbian cihazlarda "çalışan en basit kod", çoğu zaman çok özellikli modern koddan daha değerlidir; uyumluluk öncelikli düşünmek gerekir.
  2. Gizli bilgi #2: Bir PyS60 projesinde hata varsa sorunun Python sözdiziminden ziyade kullanılan API'nin o PyS60 sürümünde bulunmaması olma ihtimali yüksektir.
  3. Gizli bilgi #3: En iyi sonuç için promptun sonuna şu cümleyi ekleyebilirsiniz:
"Kod yazmadan önce S60v2/PyS60 uyumluluğunu kontrol et; desteklenmeyen modül, sınıf ve Python 3 özelliği kullanma. Kodu mümkün olduğunca kısa, hafif ve eski cihazların düşük RAM kapasitesine uygun yaz."
 
Son düzenleme:
Tepkiler: MAERKEK

MAERKEK

Admin
Yine güzel bir konu . Eline sağlık bu prompt işini öğrenmek lazım.
 
Tek bir şeyi gerçek anlamda merak ediyorum. Belki de forumdaki en yaşı büyük üyeyim. Bu Symbian merakı nereden geliyor? Zamanında eski forumlarda az saatlerimi harcamadım. Ama gerçekten hem takdir ediyorum hem de biraz üzülüyorum zamanınızı daha güzel seylere harcamadığınız için. Kolay gelsin.