Corona Debugger Kullanımı

Corona, Android ve IOS ortamları için uygulama (daha ziyade oyun) yazmaya yarayan bir yazılım geliştirme kitidir (Software Development Kit – SDK). Yazının konusu ise Corona’nın debug tool’unun nasıl kullanılacağı.

Genelde SDK’lar için kullandığımız IDE’lerde, debugger gömülü olarak bulunur. Corona’nın kendi IDE’si olmadığı ve indirdiğimiz SDK paketi ile beraber gelen 3rd party IDE de ücretli olduğu için, Corona ile yazılım yaparken Geany text editörünü kullanıyorum(herhangi biri kullanılabilir ancak LUA programlama dilini tanıyan bir text editör tercih edilse daha iyi). Tabi firmaya ait IDE kullanmamanın en büyük sıkıntılarından biri de debug işlemini yapamamaktır. Ancak Corona’nın benim de bir süre sonradan keşfettiğim command prompt ile çalışan bir debugger’ı mevcut. Yazıda debugger komutları ile ilgili birkaç örnek vereceğim.

Corona Debugger’ı çalıştırmak için Corona SDK klasörünüzü açıp, Corona Debugger dosyasını açıyoruz. Bir simülasyon penceresi, debugger’ın çalıştığı bir dos penceresi ve bir de simülatör çıktılarını görebileceğiniz Corona Simülatör penceresi açılır. Simülasyon penceresini açıp File – Open Project’ten projenizin main dosyasını çalıştırdıktan sonra debugger penceresine döneceğiz. Debugger’ın komutlarını görmek için komut satırına help yazıp enter’a basıyoruz.

Burada zaten komutların ne işe yaradığını kısaca söylüyor. Biz birkaç örnek verip yazıyı bitirelim.

setb komutu: İstenen dosyanın istenen satırına breakpoint koymaya yarar. “setb” ya da yalnızca “b” olarak kullanılabilir. “setb dosyaadi satir” şeklinde yazılır.

Örnek komut: setb screen2.lua 275

Bu komut ile screen2.lua dosyasında 275. satıra bir breakpoint koyuyoruz.

run: Bu komut ile programı işletmeye başlatıyoruz. Mesela yukarıdaki breakpoint’i koyduktan sonra programın bu noktaya gelene kadar işlemesi için kullanabilir. Program koyduğumuz breakpoint’e geldiğinde durur.

dump: İstenen değişkenin o andaki durumunu görmeye yarar. “dump degisken” şeklinde kullanılır.

Örnek komut: dump randomPlace

Bu komut ile bulunulan noktada bu değişkenin değerinin ne olduğunu görebiliyoruz.

delb: Koyduğumuz breakpointi bu komut ile kaldırıyoruz. Hangi breakpoint olduğunu belirtmek için setb’de yazdığımız gibi dosya adı ve satırını yazıyoruz.

Örnek komut: delb screen2.lua 275

delallb: Koyduğumuz tüm breakpoint’leri tek komut ile bu komutu kullanarak kaldırıyoruz.

setw, delw, delallw: Watch ifadesi ekliyoruz, siliyoruz, hepsini siliyoruz.

step: İşlenen komutlarda bir satır ilerlemenizi sağlar. Sadece si yazmanız da yeterli.

over: İşlenen komutlarda yine bir satır ilerlemenizi sağlar ancak işleyeceğiniz satır bir fonksiyon ise fonksiyona dallanmaz, işleyip döner ve bir satır devam eder. over yerine so yazmanız da yeterli.

exit: Debugger’dan çıkmanızı sağlar.

Yukarıda bahsettiğim komutlar haricindeki komutları önceden de söylediğim gibi help yazarak birer satırlık açıklamalar haricinde görebilirsiniz. Kolay gelsin.

windows sembolik link olusturma (symbolic link)

Daha önceki bir yazımda sembolik link kavramını ve linuxta sembolik link oluşturmayı anlatmıştım. (İlgili yazı için tıklayınız.)

Şimdi de windows üzerinde bu işlemi nasıl yapacağınızı göstermek istiyorum.

Başlat->çalıştır->cmd yazıp enter’a basınız. (veya windows + R ye basınız ve cmd yazıp enter’a basınız.)
Siyah komut ekranınızın açılmış olması gerekiyor ve ekranda C:\Windows\System32> yazması gerekiyor.

Eğer yazmıyorsa C:\Windows\System32 klasörüne gitmeniz gerekiyor. (sırasıyla c: yazıp enter’a, cd Windows yazıp enter’a sonra da cd System32 yazıp enter’a basınız.)

daha sonra yapacağımız işlem ise yine Linux’takine çok benzer ama argümanları tam tersi : ilk parametre linkin bulunacağı adresi, 2. parametre ise ana dosyayı veya klasörü işaret ediyor.

C:\Windows\system32>mklink D:\linkin\bulunacagi\klasor\deneme.txt D:\ana\dosyanin\klasoru\deneme.txt 

Burada linuxtan farklı olarak bir durum daha var. Klasör linklemek istiyorsak bir parametre daha (/D parametresi) eklememiz lazım. Bu işlem de şöyle oluyor :

C:\Windows\system32>mklink /D D:\deneme\link D:\ana\klasor

Umarım işinize yarayacaktır.

Not : Windows 8 de denemedim, deneyen varsa bizimle paylaşırsa sevinirim.

linux sembolik link nedir linux sembolik link olusturma (symbolic link)

Sembolik bağ (symbolic link) Nedir?

İşletim sistemlerinde her dosya bir dizinin (klasörün) içindedir. Bizim dosyamız bir klasörün içinde bulunuyor ve aynı zamanda farklı bir klasörde daha olmasını istiyorsak, ama bunu yaparken dosyanın kopyalarını oluşturmak istemiyorsak, (sadece oradan da erişilebilmesini istiyorsak) dosyayı diğer klasöre kopyalamak yerine sembolik bağ (symbolic link) oluşturabiliriz. Böylece tek dosya olmuş olacak (değişiklik yapıldığında her yere tek tek kopyalamak zorunda kalmayacaksınız) hem de diğer link oluşturulan yerlerden de erişim verebilmiş olacaksınız. Disk maliyeti de daha düşük olacaktır.

Sembolik link ile klasörleri de linkleyebilirsiniz. Bu sayede bir sürü link oluşturmanız gereken durumları da sürklase etmiş olursunuz.

Linux için sembolik link oluşturma şöyle yapılır :

ln -s /dosyanin/bulundugu/dizin/dosya.txt /linkin/olusturulacagi/dizin/dosya.txt

Aynı şekilde linklemenin bir klasör için de yapabileceğinizi belirtmiştim yukarıda. Dosya adı yerine klasörü kullandığınızda da klasör için linkleme yapmış olursunuz.

Özellikle sunucularda, paket program mantığında çokça kullanabileceğiniz bu işlem ile, 200 Account olan bir serverda kaynak dosyalardan dolayı oluşan disk maliyeti 1/200 oranına azalmış olacaktır. yani %99,5 avantajlı olacaksınız. Dosya okuma hızı konusunda da avantajlı olacaksınız. Çünkü işletim sistemi (günümüz işletim sistemlerinin hemen hepsinde var bu) sürekli kullanılan dosyaları önbelleğine alacaktır. Ama siz dosya okuma konusunda daha da hız istiyorsanız, bu konuya farklı bir yazıda değineceğim. (Bu konuda bir kaç şey daha yapılabilir.)

PIC Mikrodenetleyicisi ile Sıfır Geçiş Algılama (Zero Crossing Detection)

Aşağıda AC güç hattından zero crossing(sıfır geçiş), frekans ve rölatif faz gibi parametrelerin ölçümü için kullanılabilecek, basit bir metod bulunmaktadır. Bu metod ile 50, 60 ve 400 Hz. yüzlerce voltluk güç sistemlerinde ölçüm yapılabilir. Bu metodda yalnızca bir adet harici malzeme, direnç, kullanılmakta olmasına rağmen metod diğer devrelere göre daha güvenilirdir.

Bu uygulama PIC16C5X mikrodenetleyicisinin (ve hemen hemen tüm diğer Microchip mikrodenetleyicilerinin) tüm I/O portlarında bulunan giriş statik koruma devresinden faydalanır. Bu koruma devresi aşırı gerilim uygulandığında girişleri güç beslemesine kısa devre etmek üzere tasarlanmıştır. Böylece mikrodenetleyiciyi ani statik elektrik yükselişlerinden (ya da kıvılcım) korumuş olur. PIC16C5X’te bu koruma devresi her girişte iki P-N diyodundan oluşmaktadır. Bu diyodlar Vdd’den büyük herhangi bir voltajı Vdd beslemesine, Vss’den küçük her voltajı Vss beslemesine kısa devre eder. Akımı limitli olduğu sürece yüksek gerilimler mikrodenetleyiciye direkt olarak uygulanabilir.

Şekil 1

Akımı sınırlamanın en ucuz yolu da direnç kullanmaktır. Güç hattı gerilimi direnç tarafından sınırlanır, ve daha sonra PIC’in içerisindeki giriş koruma diyodları tarafından söndürülür(clamp aslında da Türkçe karşılığını bilemiyorum). 115 VAC 60 tur sinüs dalgası 0’dan 2V’a 32 us’de ulaşır, bu nedenle PIC16C5X’in I/O portlarının 2V’luk eşik değeri sıfır geçiş algılama (zero crossing detection) için 30 us’lik bir zaman verir. Eğer I/O pinindeki tipik kapasitans 5pF ise en iyi sıfır geçiş algılaması için direnç değeri (t = RC)’den 6Mohm ya da daha az olmalıdır. 115 VAC’ye 5Mohm direnç uygulanırsa akım 20-30 mikroamper civarına sınırlanacaktır ki bu da mikrodenetleyicinin güvenlik sınırları içerisindedir.

Şekil 2

Bu metod için iki türlü hata durumu vardır. Bunlardan birincisi direncin kısa devre olmasıdır. Direnç kısa devre olduğu takdirde mikrodenetleyiciye çok yüksek akım uygulanacağı için sistem patlar. Fakat kısa devre dirençte fazla görünen bir durum değildir. Direnç, hat parametrelerini ölçmek için kullanılan trafo, kondansatör gibi alternatif bileşenlere göre daha güvenilirdir. Bu güvenilirlik, 5Mohm’luk bir direnç yerine, 2.5’er megaohm’luk iki direnç seri bağlanılarak artırılabilir. Böylece bu hatanın oluşması için iki direncin de kısa devre olması gerekir ki bu pek kolay olacak bir iş değildir.

Oluşabilecek ikinci hata modu PIC’e aşırı akım gelmesinden dolayı koruma diyodunun açık devre olmasından kaynaklanır. Bu da güç hattı pik voltajlarının girmesine izin verir ve cihazın bozulmasına sebep olur. Bir I/O pinine maksimum sürekli uygulanabilecek akım 500 mikroamper olarak belirtilmiştir.

Bu metodu kullanarak Proteus simülasyonunda faz sırasını algılattım. Hemen hemen her PIC mikrodenetleyici ile yapılabilir. İlgili Microchip uygulama notu (AN521) için:

AN521

Diigo: Yerimi (Bookmark) Yöneticisi

Bookmark’larımı yönetebileceğim güzel bir uygulama var mı diye ararken belki de aradığımdan da iyi bir uygulamaya rastladım: Diigo.

Aslında Diigo, bir Bookmark Yöneticisi’ne göre oldukça güzel özellikleri olan bir uygulama. Genel olarak özelliklerini sıralarsak:

  • Klasör yapısı yerine, kaydedilen sayfalara tag(ya da taglar) veriyoruz, daha sonra aramak istediğimiz sayfaları taglara göre aratabiliyoruz. Yani mesela Linux’ta bash ile ilgili önceden kaydettiğimiz sayfaları arıyorsak, Linux ve bash taglarını aratarak, bu taglar ile ilgili kaydettiğimiz tüm sayfaları bulabiliyoruz. Diğer bookmark yöneticilerini çok fazla bilmiyorum ama klasör yapısı kullanan sistemlere göre bence avantaj. Hele ki benim gibi sınıflandırırken fazla detaya giriyorsanız. Hangi kategorinin klasörüne koyacağınızı düşünmek yerine istediğiniz kategorinin tagını yazın gitsin.
  • Highlight özelliği: Bir sayfadaki herhangi bir yazıyı seçip highlight yapabiliyorsunuz. Bu highlight yaptığınız kısmı daha sonra sayfayı ziyaret ettiğiniz zaman görebildiğiniz gibi, my library kısmında da görebiliyorsunuz. Ayrıca burada sayfanın tamamını da izleyebiliyorsunuz(Sayfayı ayrıca açmadan).
  • Not ekleme: Highlight yaptığınız metin hakkında (ya da resim vs. başka birşey) kendinize not yazabiliyorsunuz. Bu da çok faydalı bi özellik olabilir.
  • Resim kaydetme özelliği: Ben henüz denemedim ama kaydetmek istediğiniz bir resmi, metni highlight yapma mantığı ile aynı şekilde kaydedip gerekirse not ekleyebiliyorsunuz.
  • Son olarak da benim için en ilgi çekici özelliklerinden biri, network özelliği. Twitter’daki gibi insanların bookmarklarını takip edebiliyorsunuz ya da kişiler sizin bookmark’larınızı takip edebiliyor. Paylaşmak istemediklerinizi de “private” kutucuğunu tıklayarak gizleyebiliyorsunuz.

Henüz yeni kullanmaya başladım uygulamayı, belki başka özellikleri de vardır. Şu ana kadar kullandığım kadarıyla bookmark manager ihtiyacı duyan ya da başka bir uygulamayı kullanan arkadaşlara şiddetle tavsiye ediyorum.

http://www.diigo.com/