Mar 292016
 
1.229 views

Python Pygame ve Thread Uygulaması

Python Pygame ve Thread Uygulaması

Al Sweigart tarafından Python 2 ve 3 için uyumlu şekilde yazılmış “threadworms” isimli bir uygulama var. Proje https://github.com/asweigart/threadworms adresinde paylaşılıyor.

Programın içinde ayrıntılı açıklamaların bulunması özellikle thread, pygame veya Python konusunda öğretici örnek arayanlar için onu daha değerli hale getiriyor.

Açıklamalar İngilizce. Ben de dil sorunu olan arkadaşlarımız için kodların arasına serpiştirilmiş açıklamaları büyük oranda Türkçeleştirdim. Kalan kısmını da en kısa zamanda halletmeye çalışacağım.

Tamamlanmamamış haliyle bile bu açıklamaların işe yarayacağını düşünüyorum.

Türkçe açıklamaları içeren dosyaya https://github.com/ahmetax/threadworms adresinden ulaşabilirsiniz. Orijinal kod dosyasının adı: threadworms.py. Türkçe açıklamaları içeren dosya adı ise: threadworms-tr.py. Her iki dosyadaki kodlar aynı. Sadece açıklamalar ve bazı parametreler farklı.

Bu program, thread kullanımı açısından da çok yararlı ve güzel bir örnek. Solucanların işgal ettiği hücrelerin çakışmamasını sağlayan kilit mekanizmaları adım adım açıklanıyor.

Solucan sayısını, kullanılan renkleri, hücre boyutlarını, yatay ve düşey hücre sayısını değiştirmeniz mümkün. Solucanların hızını da ayarlayabilirsiniz.

setGridSquares(squares) satırının başındaki # işaretini kaldırırsanız, squares değişkeni tarafından tanımlanan engeller ızgara üzerinde etkin hale gelir.

Thread ve/veya pygame konusunda kendinizi geliştirmek istiyorsanız, bu örneği mutlaka inceleyin!

Ahmet Aksoy

Haz 142015
 
727 views

Çevirmenler için Termbase Dosyaları

Çeviri yaparken Heartsome Translation Studio gibi bir yazılımdan yararlanıyorsanız, metin tabanlı Termbase dosyalarını kullanmanız gerekebilir.

heartsome ts

Ne yazık ki bu konuda basit, anlaşılır ve işe yarar örnekler bulmak pek kolay olmayabiliyor. Özellikle yeni başlayanlar açısından bu, önemli bir sorundur.

Bu yazıda, bir metin dosyasının Heartsome Translation Manager programına akatarılabilmesi için nasıl düzenlenmesi gerektiğini açıklayacağım. (Bu program ücretsiz ve açık kaynak kodlu olarak dağıtılmaktadır. İndirme adresini referanslar bölümünde bulabilirsiniz.)

heartsome-TS-termbase

Dosyanın adı önemli değil. Ancak “UTF8 without BOM” formatında kaydedilmesi şart. Bu amaçla Notepad++ veya Editpad Lite gibi bir metin editörü kullanabilirsiniz. Bu editörler, kayıt formatını seçmenize veya gerektiğinde değiştirmenize imkan tanır.

Gelelim dosyanın yapısına:
1. satırda mutlaka önce kaynak dil, sonra da hedef dil belirtilmeli arada ayraç olarak “tab” karakteri kullanılmalıdır. Tab karakteri aslında görünür bir karakter değildir ve yaklaşık yedi ardışık boşluk karakteri tanımlar. Bu işareti görünür hale getirmek için editör programınızda “Tüm karakterleri göster” seçeneğini aktif hale getirebilirsiniz.

Kaynak ve hedef dil kodları en, en-US, tr vb şeklinde gösterilir. Kullanılan dil kodları ISO 639-1 ve ISO 3166-1 standardına uygun olmalıdır. İki kod arasında tab işareti bulunur. Kodları doğru girmezseniz veya arada tab işareti dışında başka bir işaret kullanırsanız, içe aktarma işlemi gerçekleşmez ve şöyle bir hata mesajı alırsınız: “Language code of the file is non-compliant. Please use language codes that comply with ISO 639-1 and ISO 3166-1 standards, and then try again.”

Diğer satırların tümünde önce kaynak dildeki terim, sonra bir tab işareti ve daha sonra da hedef dildeki karşılık yazılır. Ayraç işareti mutlaka tab işareti olmalıdır.

Aşağıda Amerikan İngilizcesi-Türkçe dilleri için birkaç satırlık bir örnek veriyorum:

en-US->tr
add->eklemek
go->gitmek; bir oyun
two->iki
concentration->konsantrasyon, yoğunluk

-> işaretini tab işaretini temsilen koydum. (Genellikle bir ok şeklinde gösterilir.)

Metin dosyasındaki terimlerin sıralı olması gerekmez. Veri tabanına aktarma işlemleri sırasında sisteme uygun sıralama işlemleri otomatik olarak gerçekleştirilir.

Hepsi bu kadar. Sorularınız veya eklemek/eleştirmek istediğiniz knuları yorum alanına yazabilirsiniz. Sorularınızı elimden geldiğince hızlı bir şekilde yanıtlamaya çalışacağım.

ahmet aksoy

Referanslar: