Konuşur gibi Türkçe Kod #12: Yeni Satır

##1. Bölüm: Türkçe kodlama | ##2. Bölüm: TAR-Python ayarları | ##3. Bölüm: kendi .tr uzantımız

##4. Bölüm: Dil = KARAKTER yorumlayıcısı | ##5. Bölüm: Donanım Sürücüleri

##6. Bölüm: Kendi YAZ komutumuz | ##7. Bölüm: Tüm harfleri 1 değişkene atama.

##8. Bölüm: Kendi komutlarımız | ##9. Bölüm: YAZ’ma şekilleri + Teknoloji Oteli

10. Bölüm: Tırnak | ##11. Bölüm: Burası Mühim


Bir şekilde direk bu sayfaya geldiyseniz, konuya direk buradan dalış yapsanız da olur elbet lakin olayı ince ince idrak ederek kavramak isterseniz önceki bölümlere göz atmanız daha sağlıklı olabilir.


Son konumuzda YAZ’ı yakaladıktan sonra gelmesini beklediğimiz TIRNAK işaretini yakalama olayına bakmıştık. Ardından TIRNAK sonrası başlayacak olan metin için, sıradaki her harfi karakteri cumle değişkeni içinde toplamıştık. Ta ki İKİNCİ TIRNAK işaretini görene dek.

Ve aradaki boşlukları yok etmiştik 🙂

Peki programcı şöyle bir kod yazarsa ne olacak?

Yaz "Merhaba Dünya"
Yaz "Nasılsın"

Bakalım nasıl bir sonuç alıyoruz:

What?

Ne oldu ki, ilk satırı bile göremedik? En azından sadece ikinci satırın başlayana kadar olan kısımların bir çıktısı görseydik..

Dikkatlice bakarsak örnek.tr program dosyamızda

Yaz “Merhaba Dünya”

diyor. Ancak yorumlayıcımız TAR ile yaz var mı diye kontrol ettiğimiz komut “yaz”

Yaz ≠ yaz

ASCII tablosunu incelediğimiz yazıyı hatırlarsanız, her bir küçük harf ve büyük harfi ayrı BYTE’lar ile tanımlıyorduk. Bkz: 8 bit ASCII table

Yine bir karar noktası

Programlama dilimiz küçük harf – büyük harfe duyarlı mı olacak yoksa nasıl yazdığı önemli değil mi diyeceğiz.

YAZ = YAz = Yaz = yaz = yAz = yAZ

şahsen kendi tercihim, programcının canın istediği şekilde yazması yönünde. İster YAZ der iterse yaz. Bazı dillerde bu sorun yüzünden zihnimizde Büyük-Küçük bilgisini tutmak zorunda kalıyoruz. Bkz: Serial.Println, pulseIn, digitalWrite ..

her bir IF sınamasında yukarıdaki tüm versiyonları yazmaktansa, bize gelen karakterlerin hepsini önceden küçültür ve öyle işleme alırsak daha sağlıklı olabilir.

// I harfi için korku filmi sesleri size de geldi mi 🙂

 

Tamam küçültelim de standart lowercase fonksiyonları ingilizce temelli olduğu için  IrMak kelimesini irmak olarak küçültüyorlar. Bizde küçük ı harfinin büyüğü yok, i harfinin büyüğü ise I

Kodcu tek satırda değil de iki satırda YAZ derse ne olacak derken, nereye geldik 🙂

Ok. Şu an için örnek.tr dosyamızdaki Yaz komutunu yaz yapıp sonucu görelim ve Harf Küçültme işini sonraki yazılara bırakalım.

E hani “Nasılsın?”

Onun yerine bir boşluk var sadece..

Çoğu zaman, hatanın olduğu yer aynı zamanda çözümün de olduğu yerdir.
Biz bir karakter olarak görmesek bile, NL: New Line: \n CR: Carriage Return: Satır Başı yazısından hatırlarsak, sonraki satırı belirten görüntüsü olmayan ama bit/byte karşılığı olan karakterler vardı.

Biz ENTER tuşuna bastığımızda oluşan  \n gibi  örneğin. O halde boşlukları kaldırdığımız gibi yeni satır karakterlerini de silebiliriz.

Şimdi yeniden bakalım:

Yey!
Nasılsın yazısı da geldi!
Ama öncekilerle birlikte. Çoğu çözüm yanında yeni sorun da getirirmiş 😉 Bkz: internet, tablet..


Görsel

Konuşur gibi Türkçe Kod #11: Burası Mühim

##1: Türkçe kod | ##2: TAR-Python
##3: .tr uzantımız | ##4: KARAKTER yorumlayıcısı
##5: Sürücüler | ##6: YAZ
 ##7: Harfleri değişkene atama. | ##8: Komutlarımız
 ##9: YAZ’ma şekilleri + Teknoloji Oteli | ##10: Tırnak


Önceki bölümdeki bazı kısımları açıklayarak devam edelim. Zira BURASI MÜHİM. Çünkü neredeyse YENİ BİR PROGRAMLAMA DİLİNİ ÜRETMENİN ÖZÜ burada denilebilir.

Gayet basit ama mihenk taşı hikaye burada başlıyor:

Önceki bölümlerde, örnek.tr dosyası için yazılan her şeyi harf harf parçalamış ve hepsini liste halinde harfler değişkenine atmıştık.

Ve bu harfleri TEK TEK YAN YANA GETİRİP, bize lazım olan bir komut var mı yok mu bakıyoruz.

Şimdi kodları yorumlayan pc’nin kendiniz olduğunuzu düşünün. PC ile empati 🙂

Size komut =”” denilmiş. Komut adında bir değişken var ve şu an içi boş.

Ardından komut += h denilmiş.

Yani biraz önce örnek.tr program dosyası içinde yazılmış olanların

İLK HARFİ artık komut’un da değeri. Yani komut=y

ve bakıyoruz; YAZ, TOPLA, EĞER vb.. komut olarak kullanmak istediğimiz bir terim geçiyor mu?

şu an için komut = y olduğu için
komut == “yaz” sınaması bize Hayır diyor.  FOR döngüsü içinde olduğumuz için devam ediyoruz.

komut += h gördüğümüz için komut‘umuza bir harf daha ekliyoruz ve artık komut = ya

yeniden sınama yapıyoruz;
komut, “yaz” a eşit mi?
hayır
devam..

komut += h  peki o zaman, komut = yaz

komut, “yaz” a eşit mi?
Eveet! 🙂
O halde TIRNAK aramaya başlayabiliriz. Tabi öncesinde komut‘u yeniden boşaltalım ki yeni yakalayacağımız terimler için karışıklık olmasın:

komut = yaz ise komut=”” olarak atadığımız için en baştan bakıyormuşçasına devam edebiliriz.

 

Bakalım tırnak var mı?

Varsa, bunu “tırnak var” diye belirtelim. -şimdilik tabi ki, sonra kaldıracağız-

Ve ayrıca Baştaki Tırnak mı Sondaki tırnak mı bu sorunu çözmemiz lazım:

Akış sırasına göre gittiğimiz ver her terim sonrası komut’un içini boşalttığımız için,
tırnağı ilk gördüğümüzde tırnak = bas yaparsak, az sonra gelecek olan Merhaba Dünya gibi bir METİN için hazırlık yapabiliriz 😉

Aradığımız terimi bulunca, sonrakilere hazır olması için komut‘un için boşalttığımız gibi, tırnak = bas ‘ı yakaladığımızda, sonrasına hazırlık için tırnak = son yapıyoruz.
Benzer şekilde tırnak = son ise de tırnak = bas yapıyoruz.

Peki!
tırnak = bas ise cümle başlıyor demek, o halde yeni gelecek her harfi cümle değişkeni içinde toplayabiliriz 😉

Güzel.

Şimdi önceki bölümlerde konuştuğumuz Boşluğu Yokluğa eşitleme olayını yapalım 😉

ve ardından döngünün dışından da cümle‘nin on halini ekranda görelim.

 

Çarşambanın gelişini perşembeden tahmin edebilenler için, “Yeni bir Programlama Dili nasıl yazılır?” sorusuna teknik manada mühim bir açıklama getiren kısım burada yazılanlar. Zira bundan sonraki çoğu şey
for h in harfler döngüsü içinde dönüp duracak. Ve her döngü içinde YAZ var mı KIŞ var mı 🙂 TOPLA var mı ÇARP var mı diye bakıp duracağız.

Canınızın çektiği başka komutlar varsa  kurgusunu burada yapabilirsiniz 😉


Görsel

Konuşur gibi Türkçe Kod #10: Tırnak

##1. Bölüm: Türkçe kod yazma.

##2. Bölüm: TAR-Python ayarları.

##3. Bölüm: Kendi .tr uzantımız.

##4. Bölüm: Dil üretmek = KARAKTER yorumlayıcısı yazmak.

##5. Bölüm: Donanım-Yazılım kesişimi = sürücüler.

##6. Bölüm: Kendi YAZ’ımız.

 ##7. Bölüm: Tüm harfleri bir değişkene atama.

 ##8. Bölüm: Kendi komutumuz.

 ##9. Bölüm: YAZ’ma şekilleri + Teknoloji Oteli


Son yazıda sadece kod yazmak değil farklı kararlar da almak gerekiyordu. İster istemez diğer dillerdeki YAZ’ma şekillerine yeniden baktım.

Mesela, Basic‘te Merhaba Dünya şöyle yazılıyormuş:

PRINT "Hello, world!"​

Ataların lisanında 😉 ise şöyle
#include
int main(void)
{
puts("Hello, world!");
}

Daha genç versiyonu C++ şöyle
#include
int main()
{
std::cout << "Hello, world!
";
return 0;
}

more+

Görüleceği üzere aynı kaynaktan beslenen iki dil için bile yazım farkları var. Üstelik sadece int main gibi hazırlıklık kısımları değil, direk YAZ işlemini yapan kısımlarda da farklılık var.
puts ya da std::cout <<

Web ile birlikte zirve yapan JavaScript’te ise document.write(‘Hello, world!’); şeklinde.

Her birinde faklı bir şekil söz konusu. Son örnek olarak Logo’da tırnak yerine köşeli parantez kullanılmış: print [Hello, world!]

Buradaki TIRNAK yerine Köşeli parantez kullanımı; önceki yazıda @kagantrky ‘in da katkılarıyla incelediğimiz durumlar için cesaret verdi. Bir dilde ekrana çıktı almak için puts kullanmak gerektiğini öğrenmek zorundayken bir başka dilde aynı işlem için [  köşeli parantez  gerektiğini bilmek/öğrenmek zorundayız.

E madem, yeni bir dil için bazı yeni şeyleri öğrenmek zorunlu o halde TAR için de yeni şeyler pek ala söz konusu olabilir 😉


İsterseniz önce normal yoldan bakalım.

Yani yaz "Merhaba Dünya" şeklinde bir yazım için TIRNAKLARI ve ebetteki arasında METİNİ tespit etmemiz lazım.

A’ a! Yeni bir sorunumuz var.

 

İlk tırnak da ikinci tırnak da aynı şekilde: "

O halde

  • TIRNAK ile İLK karşılaştığımız anda bunun bilgisini bir yerde tutmamız lazım
  • Ve hemen içindeki harfleri bir CÜMLE olarak birleştirmemiz lazım
  • CÜMLEYE eklemeye devam etmeli
  • Ta ki İKİNCİ TIRNAK karşısına çıkana kadar
  • Her tırnak ile karşılaşmada bunun HANGİ TIRNAK olduğu bilgisini güncellememiz lazım

Tabiki bir de BOŞLUK var. ”
Bir şeyin kıymetini yokluğunda anladığımız gibi YAZ’ın bittiğini sonbaharın/BOŞLUK’un gelmesinden anlıyoruz ki YAZ tek başına bir kelime olabilsin.
Ama aynı zamanda YAZ’da sonra SADECE bir boşluk HEMEN ardından TIRNAK şartı koşmak da gıcık edici olabilir.
Bununlabirliktebilgisayarınkelimeleriayırtetmesi için boşlukgörmeihtiyacıolmayabilir; )
Bu yüzden boşluğu yok edebiliriz // Boşluğu yok etmek.. felsefik bi şey gibi durdu 🙂


TIRNAK hangi tırnak bilgisini tutmak için tırnak adında
ve tırnakların arasındaki metini oluşturup saklamak için cumle adın da değişkenler atayalım.
son/kapanış bir tırnağı görmüş ve şimdi karşında çıkanı ilk/başlama tırnağı kabul etmesi için tırnak=”son” yapalım.

Daha sakin bir görünüm için bazı printleri etkisiz hale getirelim.

şimdi
y
ya
yaz
yaz ”
yaz “M

akışı içinden YAZ ve TIRNAK yakalamak için oltamızı atalım 😉

dikkat edilmesi ve anlaşılması gereken kritik noktalardan birisi de

40. ve 46. satırlarda gördüğümüz komut=”” ataması, komut sürekli elimizde tuttuğumuz ve içine baktığımız bir değişken olduğu için HER KOMUT ya da işlemeden üzerinden geçtiğimiz HER KARAKTER sonrası mevcut içeriğini yokluğa eşitliyoruz. //Bi felsefik söz daha 🙂

 


Görsel

Konuşur gibi Türkçe Kod #9: YAZ’ma şekilleri + Teknoloji Oteli

##1. Bölümde Türkçe komutlarla kod yazma düşüncesini ele almıştık

##2. Bölümde TAR için gerekli alt yapıyı hazırlamıştık

##3. Bölümde Kendi .tr uzantılı dosyalarımızı TAR’a argüman olarak çağırmıştık

##4. Bölümde Yeni bir Dil yaratmanın, özünde KARAKTER işlemeye dayandığını söylemiştik

##5. Bölümde Donanım-Yazılım etkileşimi incelemiştik

##6. Bölümde İlk program dosyamız Örnek.tr’yi yazmıştık ve TAR bunu çalıştırmıştı.

 ##7. Bölümde Program dosyamızın içindeki her bir karakteri UTF-8 olarak bir değişkene atamamıştık.

 ##8. Bölümde Program dosyamızdaki YAZ gibi bir komutu nasıl ele almamız gerektiğine değinmiştik.


[West World hakkında Spoiler İçerir]

“Önceki bölümlerde neler oldu” şeklinde özetlemeden başlayınca,
West World’ü son bölümden açıp, Dolores Abernathy,  Dr. Robert Ford‘u vuruyor.”
demiş olacakmışım gibi hissediyorum.

Evet, bu da “..önce bir çerçeve çizmek ve onun üzerinde konuşmak lazım.. Şimdi o tarihlerde..” diye söze başlayıp, reklam arasından sonra günümüze gelebilen konuşmacılar gibi oluyor. Fakat zemin olmadan pat diye;
“Afrika, Mars.. bunları herkes biliyor. Zaten Tesla’nın işi sadece motor yapmak değil bize bir ufuk da çiziyor”
demeye benziyor. Tesla ne/kim? Arfikayla ne alakası var , Afrikanın Marsla ne alakası var..

Neden önceki yazılara atıf yapmak istediğimi anlatabilmişimdir umarım.

Anyway..

Son yazıda bahsettiğimiz, YAZ bilgisinin bize farklı geliş şekilleri yüzünden gol yememek için çözüm arayalım.

İlk akla gelen: YAZ "Merhaba Dünya"

Gelebilecek olan diğer farklı şekiller:
1- YAZ YAZ “Merhaba”
2- “Merhaba” YAZ
3- Yaz “Merhaba” Yaz “Nasılsın” Yaz “Ne var ne yok”
4- Yaz “Mevsime bakmaz, yaz kış hep roman yazardı”
5- “Eve girer girmez “Ayaz‘a da yemek ayırdınız mı” diye sordu” yaz

Birinci durum pek önemli değil zira ” YAZ + Metin “ bloğuna bakacağımız için ilk YAZ geçersiz olacak. [hatta, hata kodu bile verilmeyebilir 🙂 ]

İkinci durum, İngilizce gibi günlük konuşma dillerinde ve hayliyle programlama dillerinde pek rastlanan bir durum değil ve olmaz da. Fakat Türkçe gibi YÜKLEMİ SONDA olan bir dil yapısı için bunu ciddiye almak isteyebiliriz. Ve TAR ile bir şekilde bunu başarabilirsek, uzun vadede Pardus’dan daha faydalı bir şeye imza atacak olabiliriz 😉

//Havaya girdim şimdi 🙂 Bunu ciddi plus++ düşünelim derim 😉

Üçüncü durum, ilerleme adımımız. Çünkü hemen hiç bir program tek satır komuttan oluşmayacağına göre, çok sayıda YAZ, çok sayıda TOPLA, BÖL.. komutları olacak.

Bi karar verme noktası daha..
Peki biz ne yapacağız? İlk YAZ komutundan hemen sonra ekrana “Merhaba Dünya” yazıp, ikinci YAZ komutuna geçip onu ekrana yazıp, TOPLA komutunu işletip o anda toplayıp devam mı edeceğiz..
Yoksa programın tamamına bakıp, sonrasında başa dönüp komutları sırayla işleyecek miyiz.

Yani;
Komut’u yakaladığın anda gerçekleştir, Komut’u yakaladığın anda gerçekleştir = komut > işle, komut > işle..
ya da
Komut’u yakaladığın anda depola, devam et ve Komut’u yakaladığın anda depola.. sayfa sonuna gelince, depolanan komutları sırayla gerçekleştir = komut > depola, komut > depola .. toplu halde işle..

İlerde fonksiyonlar da işin içine girecek ve nasıl düşünmem gerektiğini bilmiyorum. Ve kestiremiyorum.

Sadece atıyorum 1000 satırlık bir kodda, sonradan üstteki kısımlarda düzenleme gerektiğinde -ki genelde bi yerlerde değişiklik gerekir-  ilk yöntem daha hızlı olur gibime geliyor. Diğer yandan objelerin RAM’de saklanması gibi mevzular var ki o kadar derine girersek nasıl geri toplanır hiç bir fikrim yok.


Şöyle bi Teknoloji Kompleksi/Oteli olsa,
insanlar fikirlerini sunsa, çokça fikre ve sahiplerine şans verilse,
kabul edilenler, yaptıkları yazılım / devre / robot / oyun / uygulama ayağa kalkana kadar gelip orada 1 ay / 1 sene kalsa,
Yemek + PC, Yazılım, Donanım, Devre, Sensör  ihtiyaçları karşılansa,
İlgili fikir/proje; Orkestra, Çizer, Senarist, Yönetmen, Modacı, Malzeme mühendisi/Kimyacı, Biyolog, Tasarımcı, Fotoğrafçı, Makina mühendisi, Psikolog/Sosyolog.. gibi multi disipliner çalışma gerektiğinde, bu kişiler de ihtiyaçları karşılanarak burada ağırlansa..

..
..

Buranın taş çatlasa büyük bihastanenin masrafı kadar masrafı olur. Ama buradan çıkacak 3-5-10 sağlam proje, değil hastane, 3-5 şehri topluca emekli edecek ekonomi yaratabilir.


Böyle bi yer olsa, yukarıdaki neyi seçmek gerektiği sorusu bi çay sohbetine çerez olur 2 dakika yanıt bulurdu sanırım. Fakat şu an için benim biraz araştırma yapmam gerekecek.


 

Dördüncü durum, Dikkat edilirse YAZ kadar önemli olan diğer şey TIRNAK. Ayrıca Tırnağın ne zaman başlayıp, ne zaman bittiği de mühim.

Beşinci durum, gelsin danteller gitsin iğne oyaları 🙂


Görsel

Konuşur gibi “Türkçe” Kod #8: Komut

##1. Bölümde Kod yazarken Türkçe komutlar/terimler kullanma fikrini üzerinde durmuştuk.

##2. Bölümde TAR’ın -şimdilik- gerekli olan  Python’u kurmuş ve Path ayarlarına bakmıştık.

##3. Bölümde Kendi dosya uzantımızı .tr olarak belirlemiştik bunu TAR’ın çağrılabilmesini sağlamıştık.

##4. Bölümde Kendi Programlama Dilimizi yapmak demenin KARAKTER yorumlayıcısı yazmak olduğundan bahsetmiştik.

##5. Bölümde Digital 0-1 ile fiziksel bir parçanın etkileşimine değinmiştik.

##6. Bölümde .tr program dosyamızın içindeki YAZ komutumuzu koşturmuştuk.

 ##7. Bölümde .tr dosyamızın içinde tüm harfleri UTF-8 olarak bir değişkene atamamıştık.


Tüm harfleri bir değişkenin içine aldığımıza göre, sırasıyla her birine bakabiliriz. Dahası belli şartlara göre art arda gelme varsa, durumdan kendimize vazife çıkarabiliriz 😉

//”liseliler buradaki espriyi anlamaz” demek istiyorum 🙂

Ne demek istiyorum;
öyle rasgele yzbzey syyuzs dizilişi değil de cümlenin içinde y+a+z dizilişi varsa, bu bizim için bir komut, yerine getirilmesi gereken bir emirdir.

o halde şu yan yana dizilişleri bir de pratikte görelim:

Dikkat edilirse komut adında Null bir  değişken oluşturduk. [Bu arada “Null” kelimesinin; Almanca’da “öyle hiç bir şey ki, sıfır bile değil” manasına da geldiğini öğrendiğim günden bu yana, çok severim kendisini 🙂 ]

komut değişkenini, fonksiyonun dışından da kullanmak için global yaptık.

sonra da sırayla tüm harfleri, başta null olan komut değişkenimize EKLEYEREK bi çıktısını aldık.. görelim Uğur’cuğum

ilk yazıda tam bu olayın mantığından / teorisinden bahsetmiştik.
Şimdi de pratiğini görmüş olduk.


İç içe danteller..

Buraya kadar güzel. İşler dantel dantel olmaya bundan sonra başlayacak.

Yukarıdaki .giften görüldüğü üzere ilk satır işimize yaramaz.
3 satır, gelmesini beklediğimiz komut(lardan birisi)

Hemen
if komut == "yaz":
bişeyler yap
diyebiliriz amma lakin ki farklı senaryoları da düşünmek zorundayız

 

 

Meselam, şu bayan yaz komutunu verdikten sonra, tek boşluk bırakmış olabilir, şu bayansa beş boşluk bıraktıktan sonra “Merhaba Dünya” yazabilir. Tabi bir de şu bayanda tırnak içine “Merhaba Yaz Güneşi” yazmış olabilir.

Öyle bir şey yapmalıyız ki;
* White Space’leri egale edelim
* Komut nerede başlayıp bitiyor, tırnak nerede başlayıp bitiyor bilelim
* Yazılacak cümle içinde YAZ ve başka komutlar geçiyorsa, taklaya gelmeyelim
* İki+ defa art arda YAZ ile çıktı almak isteniyorsa, kontrpiyede kalmayalım.


Görsel

 

 

100+ Milyon Dolarlık “Tasarım” Hatası: BitTrex

UX diye bir terim var. Tek kelimeyle “hastasıyım”. User eXperience: Kullanıcı Deneyimi demek.

Masa gibi fiziksel bir ürün ya da dijital bir ekran tasarlarken, sadece işlevsel olarak çalışması yetmez.

Örneğin pc kullanırken, -farkında olduğum zamanlarda- homurdanmama neden olan bir firma var. Tam bir UX/UF/UI katili: Microsoft. Bir UX stratejisti ile ya da olmadı kullanıcı dostu (UF) tasarımlar yapan bir grafikçi ile çalışmak yerine,  Programcı Kafası dediğimiz kafa ile işleyen, kod iskeletinin üzerine öylesine bir şeyler giydirip ürünü sunuyor.

//UI, UF, UX farkları yazı ilerledikçe daha iyi anlaşılacaktır diye umuyorum.

Meşhur bir örnekle başlayalım; Şu an bu yazıları yazdığım makinanın çözünürlüğü: 1360 x 768
// Hep böyle gördük ve okuduk, bir de bize söylediği şeyi yapalım: Çarpalım 🙂
1360×768 = 1,044,480 pixel
Yani ekranımda Bir Milyon 44 bin+ adet pixel var.

Peki.
İşim bitti ve pc’yi kapatmak istiyorum. Önce Başlat düğmesine basmak zorunda olamam da ayrı hata ama sonrasına bir bakalım:

Önce, Başlata ardından, ufacık ok> düğmesine tıklamam lazım. Sonra yine küçük bir alanda seçim yapmam lazım. Oysa bilgisayarla işim bittiğini belirten bir yere gelmişim.

Başka hiç bir yeri kullanmama gerek yok! Ama yine daracık bir alanda seçim yapmak zorundayım.

 

Neden? Neden? 

“Mantıklı” bir nedeni yok. Ama bi açıklaması var: Programcı Kafası.

Görsellik, Kullanıcı Dostu olma ya da Kullanıcı Deneyimi onun işi değil çünkü(?) Yazı tipi, renkler, boyutlar, okuma süresi.. önemli değil.(?) Tıklanabilecek bir Düğme için bir Arayüz (UserInterface) olsun ve çalışsın kafi. Bkz: Kirli ve Çabuk İşletim Sistemi: MS-DOS tarihi.


Bir başka örnek ise;

Kitap Yurdu ve Babil kıyaslaması olabilir.

 

 

Görüldüğü üzere KitapYurdu da  Babil de üyelik, arama, sepet vb. .. kitap almak için her şeye sahip. Ama Babil daha eli yüzü düzgün (UserInterface). Bununla birlikte, örneğin üyelik, gözümün arayacağı yer olan sağ üst köşede, bir kitap sitesinde ilk/en çok kullanacağım araç olan Arama Kutusu kocaman karşımda, ufacık yerlere tıklamaya çalışmak zoruna değilim.. .. beni yormayan kullanıcı dostu bir yapısı var (UserFriendy)

Bununla birlikte ne yazık ki her iki sitede de bizlerin kitap alırken baktığı önemli şeylerin başında gelen “Yazarlar“a gereken önem verilmemiş. Benzer şekilde Okuyucu Yorumları da gereken öneme sahip değil, Hatta Babil de yorumlar saklambaç oynuyor. Diğer yandan ben Bilim Kurgu kitabına bakıyorum, altta ilginizi çekebilir diye tarihi roman sunuyor.. İkisi de Kullanıcı Deneyiminden (UserEXpericence) pek haberdar değil gibi.

Görüldüğü üzere mesele sadece satın alma düğmesinin çalışması değil, bu düğmenin nerede ve ne renkte olduğu da önemli.

Bundan daha da önemlisi; kullanıcıların beklentilerinin neler olduğunu iyi anlamak ve içerikten-işlevden-kargodan-tasarıma bütüncül bir memnuniyet sunmak lazım.



BitTrex

Aktif kullananların bildiği üzere Coin Borsası, BitTrex de bir süre önce tasarım değişikliğine gitti.

Doğası gereği bir borsa ekranı zaten karmaşıkken, BitTrex üstüne bir çok şeyin rengini ve yerini değiştirdi. Önceden göz önünde olan şeyler yeni tasarımda “ara ki bulasın” moduna geçti.

 

 

Borsa için en önemli şey olan ALIŞ ve SATIŞ kısımlarını, -sanki alan darlığı varlığı var gibi- Açık ve Net iki ayrı alanda yapmak yerine tek bir yere sıkıştırmaya çalışmak kullanıcı düşmanlığı (userHostility) olmaktan da öte milyon+ dolarlık hata.

Haliyle kendisi de ara ki bulasın yerlere gitti. Borsalar arasında en üstlerdeyken şimdilerde 29. sırada.

 

Geliştirmek, sadece Değiştirmek olmasa gerek..

 


 

Görsel 1, Görsel 2, Görsel 3

Konuşur gibi “Türkçe” Kod #7: Harf Listesi

Önceki kısımlar:

 #1. Bölümde Türkçe Kod yazma fikrini ele almıştık.

#2. Bölümde TAR’ın üzerinde koşacağı Python’u kurmuş ve herhangi bir .exe dosyası gibi çalışabilmesi için Path ayarlarını yapmıştık.

#3. Bölümde nasıl PhotoShop’un kullanacağı dosyaların uzantısı .psd ise bizde TAR’ın kullanacağı uzantıyı .tr olarak belirlemiş bu bunların konsoldan çağrılabilmesini sağlamıştık.

#4. Bölümde Programlama Dillerinin mantığına bakmış, Php’den C++’a hepsinin aslında KARAKTER yorumlayıcısı olduğuna değinmiştik.

#5. Bölümde “A “gibi bir harfin de aslında 0-1’lerden oluştuğuna ve bunu göstermek için Ekranın/Donanım ve Yazılımın eklem noktalarına değinmiştik.

#6 Bölümde YAZ kodumuzu çalıştırmıştık.


Yukarıdaki yazıların toplamı ışığında, YAZ kodumuzun çalışma mantığını biliyoruz.  Biraz mutfak tarafına geçelim.

 

UzantiKontrol fonksiyonumuz ile TAR kelimesi sonrasına yazılacak olanları argüman olarak kabul ediyor ve ardından DosyaIcerik fonksiyonumuzla dosyanın içeriğini okuyorduk.

Şimdi önceki yazılarda üzerinde durduğumuz HARF HARF didikleme işlemimiz için,
Dosya içindeki BÜTÜN karakterleri bir liste içinde toplayalım. Boşuklar, Tablar, Satır atlamalar, tırnaklar, virgüller, parantezler elbetteki harfler ve rakamlar.. BÜTÜN her şey, harfler listemizin bir elemanı olsun.

So..

Bi tane Oku() fonksiyonumuz olsun. Bunun için
def Oku():
yazıyoruz alt satırda 1 TAB içeriden yazmaya başlıyoruz. (Çoğu editör bunu otomatik yapacaktır, ola ki TAB sayılarında bir aksilik çıkarsa, DELETE ile alt satırı yukarı ya çekip, arada hiç bir şey kalmadığında yeniden ENTER yaparak alt satıra geçebilirsiniz.

Oku() içinde önce UzantiKontrol() fonksiyonumuzu çalıştıralım.
Ardından harfler = list(okunan)  ataması yaparak yukarıda bahsettiğimiz tüm KARAKTERLERİ bi listede toplama işini yapalım. Ve bunu ekrana basalım.

 

Ve bakalım elimizde ne var.

Evet. Tam istediğimiz gibi. Listenin elamanlarına dikkat ederseniz y harfi,  a harfi, z harfinin yanında ardaki boşluk ve tırnak ve ardından Merhaba kelimesinin harfleri tek tek bulunmakta.

İyi ama şöyle olması gerekmez miydi? [‘y’,’a’,’z’,’ ‘, ‘”‘,’M’,’e’,’r’,… ..]

her tırnağın önünde bir u harfi var?
u’y’

Öyle olması gerekirdi. Ancak Türkçe karakterlerde sorun yaşamamak için hatırlarsanız üçüncü yazıda şu kodları eklemiştik
icerik = unicode(icerik,'utf-8')

ve özellikle UTF-8 kayıt yapan bir editör ile dosyalarımızı kayıt etmiştik.

Dolayısıyla, her değerin önündeki u, tırnağın içindeki karakterin UTF-8 formatında olduğunu söylüyor.


Görsel

Konuşur gibi “Türkçe” Kod #6: YAZ

Önceki bölümler:

“Türkçe”, Konuşur Gibi Kod Yazmak #1

Türkçe”, Konuşur Gibi Kod Yazmak #2: İlk Adımlar

“Türkçe”, Konuşur Gibi Kod Yazmak #3: Dosya Çağırma

“Türkçe”, Konuşur Gibi Kod Yazmak #4: Harf Harf Didikleme & Karakter Meselesi

Konuşur Gibi “Türkçe” Kod #5: Yazılım ve Donanımın Eklem Yerleri


Belki kendi icat edeceğimiz ya da en azından var olan bir cihazı kendimizin yapacağı durumlar olacak. Ve cihazın her hangi bir sebepten dolayı ekranı olursa; #4 ve #5 Nolu yazılardaki mantık hayli işimize yarayacaktır. Üstelik sembolleri ve harfleri kendimiz oluşturabileceğimiz için Ğ Ü Ş Ö gibi karakterin de rahatça kullanılabildiği ve metinleri Türkçe olan cihazlar güzel olacaktır.

Tabi bu güzellik yanında “font” gibi estetik, işlevsel ama uğraştırıcı bir sorunu/çözümü de yanında getirecektir. Neyse ki TAR için yazı fontu veya bir ekranın çalışma düzenini işleten bir sürücü hazırlamak zorunda değiliz.

// Niye onu da biz yapmıyoruz diyenleri rahatlamak için söyliyeyim; Python php node asp.. hiç biri işletim sistemi/sürücü derinliğine inerek ekrana “Hello World” yazdırmıyor. Zaten işlemekte olan bir sisteme, işletim sistemine pas atıyor.

Biz de diğerleri gibi Windows’a yaz/ print komutunu göndereceğiz ve M, E, R, H, ..  harflerini yazmak için ekranın hangi pixel’ine hükmetmesi gerektiğini ona bırakacağız.

So..
Pixel seviyesinden Harf seviyesine çıkıp, Kodlara yakından bakarak devam edelim..

Seri boyunca Başlıklardan eksilmeyen amacımız: TÜRKÇE Kod Yazmak.

Yani  şunlara denk geldiğimizd

BEGIN DISPLAY("HELLO WORLD!") END.


10 PRINT "Hello, World!"
20 END


package main
import "fmt"
func main() { fmt.Println("Hello, World")}

tümden Fransız gibi hissetmek yerine, anlamaya daha yakın olmak.

BAŞLA EKRAN("MERHABA DÜNYA!") SON.


10 YAZ "Merhaba, Dünya!"
20 SON


ana paket
içerigetir "duzen"
fonksiyon ana() { duzen.YazSatir("Merhaba, Dünya")}

Görüleceği üzere Kodlamadan hiç anlamasak bile Japonca okuyor gibi de olmuyoruz.


Madem kendi dilimizi yazıyoruz..

İlerledikçe gramer yapısı için de bir şeyler düşünebiliriz 😉 Ancak şimdi Hem mümkün olduğunca sade, hem okuması kolay olacak şekilde başlayalım derim.

Yukarıdaki tüm örneklerden daha sade bir şekilde kod yazabiliriz, mesela Programımız  şöyle olsa

çok tatlı olmadı mı?

başla, bitir, include/içeaktar, paket vs. olmadan,

Sadece YAZ “Metin” kodunu yazıyoruz. Ve çalıştığında tırnak içindekileri çıktı olarak ekrana yazıyor.


Görsel

 

Konuşur Gibi “Türkçe” Kod #5: Yazılım ve Donanımın Eklem Yerleri

Önceki bölümler:

“Türkçe”, Konuşur Gibi Kod Yazmak #1

Türkçe”, Konuşur Gibi Kod Yazmak #2: İlk Adımlar

“Türkçe”, Konuşur Gibi Kod Yazmak #3: Dosya Çağırma

“Türkçe”, Konuşur Gibi Kod Yazmak #4: Harf Harf Didikleme & Karakter Meselesi


Bu yazıyı hazırlamak için siteye girmeye çalıştığımda SSL/https hatası almıştım. Bu vesileyle mini bir SSL kurma rehberimiz oldu, kime niyet kime kısmet 😉

#4 Nolu son yazıda, her “Merhaba Nasılsın” diyen amcanın masum aynı olmadığını, amcamızın sözde değil özde Türkçe konuşmak için UTF-8 kullanırsa daha sağlıklı olacağını görmüştük.

Yani;
Uzantısı .tr olan program dosyalarımızı kayıt ederken, kullandığımız editörün UTF-8 kayıt yaptığından emin olmamız gerekiyor. Bu minvalde SublimeText3 işimizi görecektir.

Not defterini açıp, içine;

yaz "Merhaba Nasılsın"

kodunu yazıp, Farklı kaydet seçeneğinden Selam.tr adıyla kayıt yapabilirsiniz. Ve buradaki “ı” harfi sorunsuz görüntüleniyor olabilir ama özünde UTF-8 kayıt yapılmadığı içim TAR’da sorun yaşatacaktır. Bu yüzden aynı kodu, SublimeText ile yine Selam.tr adıyla kayıt edip

tar Selam.tr

diyerek çalıştırdığımızda TAR, selam.tr dosyasını açıp harf harf, karakter karakter içindekileri alacak ve yorumlamaya başlayacaktır.


..da

–Neyi nasıl yorumlayacak? Yaz‘ın manasını ne biliyor ki?
–bilmiyor!

Hadi başka bir konudaki bilgilerimizi birleştirelim; WiFi’den Tost Makinası Kontol serisinin 5. yazısında Serial porttaki bilgilere ulaşmış ve cihazın server hizmeti için hazır olup olmadığına bakmıştık. Ardından bazı pinlere elektrik göndermiş, makinayı çalıştırmıştık.

SeriPort’ta nasıl “?pin=MotoruAC” yazabilir de biz onu okuyup içinde AC yazıyor mu diye bakabiliriz ki?

Elbetteki AC yazmaz. Yazamaz. Ama elektrik var-yok, 01000001 01000011 olabilir. Ve hatırlayınız bu 1-0’lar A ve C demek.

O halde 01111001 01100001 01111010 var mı diye bakarsam yani :Y A Z geçiyorsa,
tost makinası çalıştırmak gibi ekranın belli Pixel’lerini açıp kapatır ya da rengini ayarlayabilirim.

Ve tostmakinalarının/ledlerin/pixellerin hangilerininin çalışacağını öyle bir seçerim ki YAZ dan sonra gelen “iki tırnağın arasındaki” metni gösterecek şekilde olur 😉

Umarım olayın mantığını anlatabilmişimdir. Fark ediyorsanız olay Ekranı pixel pixel kontrol eden bir yazılama gidebilir. Yani ekran kontrolcüsü yazabiliriz. Daha bilindik ifadeyle “ekran kartı sürücüsü/driver” hazırlayabiliriz.

Evet bu hali çok ilkel ama yazılım ve donanımın EKLEM yerlerindeki olayları anlamak ilerde bir işletim sistemi ya da tcp/ip/https/www gibi kendi protokollerimizi hazırlamak için zemin hazırlayabilir 😉


Görsel 1 Görsel 2 Görsel 3

Adım adım ücretsiz SSL / httpS kurulumu

Bugün, bir süredir üzerinde çalıştığımız Akıllandırma Kutusu / Smart’er Box ‘un hem kodlaması hem de fiziksel olarak çalışır durumdaki ilk prototipi bitti.

Karışmasın, bu Tost Makinamızı WiFi’dan kontrol etme cihazı değil.

Diyelim ki köydesiniz ve internet/wifi olmayan ve cep telefonu çekmeyen, belli bir uzaklıktaki Tarlanızı sulamak için su motorlarını Evden çalıştırmak istiyorsunuz.  İşte Akıllandırma Kutusu / Smart’er Box  herhangi bir cihazı internet/gsm olmadan uzaktan Radyo sinyalleriyle yöneterek bir nevi akıllı cihaz hale gelmesini sağlıyor.

Heyecanımı paylaşmak için ablamlara ve bir iki arkadaşa sunum yapıp eve geldim. Elim biraz sakinleştiği için Türkçe Programlama Dili için başladığım “Konuşur Gibi “Türkçe” Kod Yazma” serisine devam edeyim dedim.

A a!

Kendi siteme giremiyorum. Şöyle bir hata veriyor:
// şu an bu satırları yazabildiğime göre düzelmiş durumda, o anda ekran görüntüsünü almadığım için netten bulduğum bir resim koydum. google.com.tr yerine murattatar.xyz yazdığını düşünün 🙂

Saatler yine ileri-geri mi alındı deyip youtube’da canlı yayın haber kanallarına baktım. Saatim doğru. Hazır girmişken “saat hatası” diye aradım. Saati sunucudan güncellemekten bahsetmişler. Yaptım.

Saat hatası gitti ama site yine açılmadı.

Bu kez şuna benzer bir ekran çıktı.

 

Youtube’u açıp, kendi sitemi açmadığı için hataya yeniden baktım: ERR_CERT_DATE_INVALID yazıyor.
Haa! SSL sertifikası yüzünden..

Şimdi adım adım çözüm‘e bakalım.


Önce, SSL ne ki?

 

İletişimin http’S’ ile gerçekleşmesi için SSL nasıl kurulur?

Sertifika oluşturup, bunu FTP ile kendi sitenizin altına yüklediğiniz farklı ücretsiz ve daha prof. ücretli çözümler de var elbet. Belli ataklara karşı da koruma sağladığı için CloudFlare, bana hem cazip hem daha pratik geldi.

1-  https://www.cloudflare.com ‘a üye oluyoruz.

2- Sitenizi ekleyin

 

3- Next ile devam edin

 

4- İlk paketi seçin

 

5- Onaylayın

 

6- Devam edin..

 

7- To kısmında verdiği yeni DNS’leri kopyalayın

 

8- Burada işlemimiz şimdilik tamam.

 

9- Domain aldığınız yerdeki DNS/NameServer yönetim paneline girin. Az önce not ettiğiniz DNS’leri girin.

10- Bekleyin.

11- Biraz daha bekleyin 🙂 5-55-555 kadar.

12- Sitenizin yeni nameserver bilgilerinin, internetin omurga DNS sunucularına ulaşıp ulaşmadığını intodns.com üzerinden kontrol edebilirsiniz.

-*- *-* -*- *-*-

13- intodns’de CloudFlare’den aldığınız nameserver’lar görünüyorsa işler yolunda demektir. Ancak burada görünmesine rağmen hale siteye giremiyor olabilirsiniz. Zira sizin bağlı olduğunuz hat üzerinde gücelleme henüz olmamış olabilir. Ve ya eski bilgiler windows cache’inden geliyor olabilir. Dns ön belleğini silmek için flushdns  yapabilirsiniz.

Ardından renew yapabilirsiniz.

 

14- Tarayıcı kapatıp, yeniden açarak siteye girmeyi deneyin. Hala olmadı ise beklemeniz gerekiyor. Biraz mola vermek iyi olabilir 😉 Merak etmeyin açılacak.

15-  WordPress siteler için http adrelerini https olarak çağırmaya yarayan küçük bir eklenti de mevcut:
Realy Simple SSL.

Eklentiler menüsünden Yeni ekle’ye tıklayın.

 

Arama kısmına SSL yazıp aratın.

 

Hemen yükleye tıklayın ve eklentiyi etkinleştirin.

Ardından SSL’i etkinleştirin.

Tata!
https hazır 😉


Kapak görseli

Borsanın Alışkanlıkları: Alt Vacip

Takip edenlerin bildiği üzere, Bist100 (XU100) Endeksinin yaklaşık 2000 yılından bu yana takip ettiği, daha doğrusu itaat ettiği çizgiler var.

Bunlar o kadar güçlü destek ve direnç çizgileri ki bunları Borsanın Vacip Çizgileri diye adlandırıyorum. Ülkenin genel durumu çok iyi olsun, faizler düşük, işsizlik düşük açıklanmış olsun. Üstüne S&P not yükseltmiş olsun. Bu kadar pozitif atmosferde bile endeksin önünde Kırmızı Direnç Çizgisi varsa, ne olduğu çok da fark etmez şeylerden onu-şunu-bunu bi’ şeyi bahane edip aşağıya düşüyor.

Benzer şekilde, ülkenin başbakanı istifa etse, Rusya ile savaşın eşiğine gelinse ve dahi darbe bile olsa endeksin önünde Yeşil Destek Çizgisi varsa onu-şunu-bunu bi’ şeyi bahane edip yukarıya çıkıyor.

Oynat uğurcuğum görelim 🙂

Basit bir şekilde Alt Vacip Çizgisi be Üst Vacip Çizgisi olarak da söylenebilir ama Renklerin ortalama kabul gören manaları olduğu için aşağıdaki kelimelerin tamamı ya da farklı kombinasyonları da olabilir:
Yeşil Vacip, Vacip Destek, Alt Vacip, Alt Vacip Destek.. vb..

Daha sonraki yazılar için, konu içinde bunlardan birisi kullanırsam, grafikteki çizgileri kast ettiğim anlaşılsın lütfen.

Grafik çizimi yapan arkadaşlar, periyodu Haftalık  olan mum grafikte 2000 yılından bu yana baktıklarında söylediğimi kendileri rahat biçimde görebilir.

Hazır çizim için grafik açmışken baktığımızda, yükselişlerin başlama dönemlerine dikkat edelim:
Yeni Yıl

Elbetteki bazen 1-2 aylık kaymalar olabilir. Çoğunda Ocak ayı yükselişlerin başladığı dönem.

Ayrıca dikkat edilirse Üst Vacip dokunuşları, genelde tek zirveli sivri uçlar var ama Alt Vacip dokunuşları en az 2-3 defa geçekleşen daha yatay-oval uçlar.


 

Buradan güncele kısa bir bakış atacak olursak, önce fazlaca kaba olsa da Mavi bir Orta Çizgi çizelim.

 

Ki isteyen %50 ile 0 arasına ve %50 ile 100 arasına da ara çizgiler de ilave edebilir

Görüleceği üzere endeks, Kesikli Mavi %25 Çeyrek Çizgisinin altında. Yani daha önce de endeks 90 binlerdeyken söylediğim üzere toplama zamanı devam ediyor.

HİÇ BİR ZAMAN (Türkçesi kıt olanların için: NEVER EVER) Tek seferde bütün bütçe ile alış yapmayıp Kum Saatiyle aldığımıza göre kabaca %12,5 çizgisine de baksak mı acaba 😉

Yeşil Vacip Destek çizgisine 2-3 defa dokunmasını beklediğimize göre, Fırsatı Kaçırma ihtimaline karşı şimdilerde 1+ miktar alabiliriz ve çizgiye dokunduğunda 2+ Miktar almak üzere hazırda bekleyebiliriz.

 

Sonra?

Nasıl söz konusu olan Arsa olduğunda, 5 gün/ 5 ay sonra, “iyi ama bu da hiç kazandırmadı” demiyorsak, Borsa söz konusu olunca da aynı şekilde yaklaşıp, üstüne yatarak satış için sabırla Kırmızı Vacip Çizgisini beklemek gerek.

Ki bu bekleyiş çok rahat 1-2 sene olabilir.


 

Grafikteki Yeşil Destek Çizgimiz hayli güçlü olduğu için, istatistik-matematik rüzgarı arkamda olduğu için bu kadar rahat konuşabiliyorum.

Ancak bilindiği üzere Farz gibi Vacip’ten daha güçlü durumlar da var.

Bu çizgi Darbede kırılmadığına göre Komplo Teorisi modunda kafadan ATIYORUM;
Seçim öncesi endeks 86 bin civarına düşmüşken, seçim gerginliklerinden AKP/MHP/İYİP → HDP  olayları çıkarıp → Türk-Kürt çatışmalarıyla iç savaş denemeleri,
19 Mayıs‘ın 100. yıl intikamı olarak planlanmış başka şeyler çizgisinin kırılmasına neden olabilir.

Ve bu çizgi kırılırsa, yeni bir dönemin başlamış demektir.

12.png
Görsel: Quora

Yatırım Tavsiyesi Değildir
Yapacak Olduğunuz İşlemlerin Tüm Sorumluluğu Kendinize Aittir

WiFi ile Tost Makinası Çalışmaya Başladı ;) #7

#İlk başlıkta CWLAP komutu ile WiFi ağlarını listelemeyi görmüştük.
#İkinci başıkta, Serial Screen’deki satır sonlanma seçeneklerini incelemiştik.
#Ardından 3. başlıkta, Listelediğimiz ağlar arasından kendi WiFi ağımıza dahil olmuş ESP’nin hangi IP adresini almış olduğuna bakmıştık.
#Sonra 4. başıkta, AT kodlarını Arduino’ya bırakmış ve ESP’yi 80’i port üzerinden sunucu olması için ayarlamıştık.
#Daha sonra 5. başıkta, Loop mantığını irdelemiş ve ESP’de gösterilecek yönetim-html kodlarını göndermiştik.
#Bir önceki 6. başlıkta, Pinlere elektrik göndermek üzere AÇ – KAPA butonlarına ve Void fonksiyonlara bakmıştık.


Mikro denetleyicide elektrik olduğu sürece çalışacak olan loop() fonksiyonumuzun içine yerleştirdiğimiz ac_kapa() fonksiyonumuza yakından bakalım.

Hatırlarsanız bu fonksiyonu, adres satırında ?pin=on ya da  ?pin=off geçiyor mu diye bakmak için -yani düğmeye basılmış mı diye kontrol etmek için- eklemiştik.

O halde gelecek olan yanıtları okumamız lazım. Serial’e gelecek olan her karaketi tek tek alıp, gelen değişkeni altında birleştirip içinde aradığımız kelime var mı bakacağız.
Bunun için önce serial aktif olduğu sürece (While) her karakteri gelen‘e ilave ediyoruz

Serial.println(gelen); ilave ederek, Neler gelmiş biz de görelim

Gelen karakterleri birleştirdiğimize göre, içinde :GET /?pin=on geçiyor mu diye bakabiliriz, düğmesine basıldığında adres satırında ?pin=on yazacağı için, gelen içinde bu varsa, düğme basılmış demektir.

IF: bütün kod dünyasının özeti olan iki harf. Şayet… şöyle ise.. şunları yap

Şayet (gelen içinde, GET: /?pin=on yazıyorsa) { şunları yap…  }

Bizim örneğimizde 13 nolu pine elektrik vereceğiz. (daha doğrusu voltajını arttıracağız)

Burada kodlarla hiç bir şey görünmüyor elbet ama fiziksel olarak 13 nolu pin, Rölemizin Data Pinine bağlı.

Rölenin diğer tarafında ise NC / NO pinlerinden birisi + ortadaki pin, seri olarak 220 Voltluk yönetmek istediğimiz cihazımızın kablosuna bağlı.

Kabaca şöye: 13 =[ Röle ]= __22oV__TostMakinası___[Röle]

Burada dikkat edilmesi gereken şeylerden birisi Rölenin çalışma mantığı.

Ortak bacak daima hatta (kırmızı olan) diğer tarafta ise Mavi ve Yeşil var. Görüldüğü üzre Mavi olan NC durumunda Normalde Kapalı devre konumunda. Yani takacağımız cihaz için kapalı manasında değil, devrenin kapalı olduğu manasında. Şu halde Mavi ve Kırmızı uçları Tost Makinamıza bağladığımızda, 13 pinden de HIGH geliyorsa, röle devreyi tamamlayacak ve Tost Makinasına elektrik gitmiş olacak.

Kapatmak içinse tersi.

Yey!

O halde Tost Makinası – Röle bağlantımız hazırsa, mantığımız şu:

  • AÇ butonuna basıyorum. Bu adres satırına ?pin=on yazıyor.
  • Tüm karakterleri Serialden okuyup, gelen değişkenine atıyorum.
  • Şayet gelen içinde ?pin=on varsa, 13 nolu pine elektrik veriyor.
  • 13 nolu pin açıksa Röle NC konuma gelip devreyi tamamlıyor.
  • Tata!
  • r 😉
  • Tost makinamız çalışmaya başladı 😉

 


Görsel 1, Görlsel 2, Görsel 3