- sudo -i
- add-apt-repository ppa:webupd8team/sublime-text-2
- apt-get update
![]()
pcDuinoyu her zaman monitöre bağlayıp orda çalışmak zaman kaybına sebep olabiliyor bundan dolayı pcDuino’yu uzaktan kontrol edebilmek için adım adım ssh server kurma adımlarını anlatacağım.
1-) LXTerminali açarak root girişi yapıyoruz.
-sudo su
2-) Yeni bir kullanıcı ekliyoruz. Örnek olarak ben pcDuino yapıyorum.
-adduser pcduino
3-) Eklediğimiz kullanıcıya admin yetkilerini veriyoruz.
-adduser pcduino admin
4-) pcDuinonun bağlandığı ip adresini almamız gerekiyor. Genelde aynı adres atandığı için reset atsak bile yine aynı adres atanacağından sorun çıkmayacak.Bunun için:
-ifconfig
yazarak inet addr kısmındaki ip adresini alıyoruz.
5-) Paketlerimizi güncelleyerek ssh’ı kuruyoruz.
-apt-get update
-apt-get install ssh
-apt-get install joe
Joe text editörünü de kurdum isteyen vi veya başka bir editörde kullanabilir.
6-) sshd_config dosyamızı açarak oluşturduğumuz kullanıcıya izin vermemiz gerekiyor bunun için:
-joe /etc/ssh/sshd_config
arduino kullanıcı adımızı AllowUsers komutuyla resimdeki gibi ekliyoruz. Daha sonra reset atarak putty üzerinden bağlantımızı gerçekleştirebiliriz.
Böylece başarılı şekilde bağlantımızı gerçekleştirmiş olduk.
Kaynak : http://www.circuitsathome.com/mini-pc/installing-ssh-server-on-pcduino
![]()
Kod bloklarını tekrar tekrar yazmak yerine onu bir kere tanımlayarak fonksiyon şeklinde kullanabiliriz.Fonksiyonların genelde parametreleri ver dönüş değerleri bulunur.Eğer fonksiyon bir nesnenin propertysi olarak tanımlanmışsa method adı verilir. Fonksiyon tanımlamaları içiçe olabilir. Ve tanımlandıkları yerdeki değişkenlere erişebilirler.
Fonksiyon Tanımlama
function anahtar kelimesiyle beraber tanımlanır. Ve bu anahtar kelimeden sonra aşağıdaki komponentler olmalıdır:
Örnek fonksiyonlar:
// 2 Nokta arası uzaklık.
function distance(x1, y1, x2, y2) {
var dx = x2 – x1;
var dy = y2 – y1;
return Math.sqrt(dx*dx + dy*dy);
}
// Rekürsif Faktöriyel Hesabı.
function factorial(x) {
if (x <= 1) return 1;
return x * factorial(x-1);
}
Fonksiyon çağrımları ise metod olup olmadığına göre farklı yapılır. Eğer metod değilse fonksiyonu direk adıyla çağırırız.Ancak method ise nesneadi.fonksiyon() şeklinde çağırırız.
Closures
Çoğu modern programlama dilinde olduğu gibi JavaScript’te lexical scoping kullanır.Bunun anlamı fonksiyonlar tanımlandığı değişken uzayındaki değişkenlere etki eder. Çağrıldığı yerdeki değişkenlere etki edemez. Bilgisayar bilimleri literatüründe , fonksiyona ait değişkenlerin çözümlendiği ,fonksiyon nesnesi ve uzayı (bind edilen değişkenler kümesi) closure olarak adlandırılır.
Teknik olarak tüm JavaScript fonksiyonları closure’dur. Hepsi nesnedir ve kendilerine ait değişken uzayları(scope) vardır.
var scope = “global scope”; // A global variable
function checkscope() {
var scope = “local scope”; // A local variable
function f() { return scope; } // Return the value in scope here
return f();
}
checkscope() // => “local scope”
checkscope() fonksiyonu yerel bir scope değişkeni üretir. Ve fonksiyon kullanıldığında tanımlandığı yerdeki değişkenleri kullanacağından dönüş değeri “localscope” olur.
Kod aşağıdaki şekilde bile olsa yine de “localscope” döndürür.Global değişkeni kullanmaz.
var scope = “global scope”; // A global variable
function checkscope() {
var scope = “local scope”; // A local variable
function f() { return scope; } // Return the value in scope here
return f;
}
checkscope()() //
![]()
JavaScript’in temel datatiplerinden birisi objecttir. Nesne kompozit bir yapıdır ve içerisinde birden çok değer tutabilir. Bir çok sırasız özellik(property) den oluşur. Her özelliğin bir adı ve değeri vardır.Property isimleri stringdir. Yani biz stringlerin değerleri map ettiğini söyleyebiliriz. String to value mapping veriyapısında birçok isimde anılmaktadır: “hash”,”hasttable”,”dictionary”,”associative(ilişkisel) array”. JavaScriptte nesneler başka bir nesnenin özeliiklerini miras alabilir.Bu olaya prototip(prototype) denir.Aynı şekilde nesnenin metodları da miras alınmışssa prototopik miras olarak adlandırılır ve JavaScriptin anahtar öğelerinden birisidir.
JavaScriptte string veya sayı olmayan hemen hemen her şey nesnedir; true,false,null,undefined gibi. Ancak stringler sayılar ve boolean değerler nesne değildir bunlar “immutable objects(değişmez nesneler )” olarak adlandırılır. Normalde oluşturduğumuz nesneler üzerinde oynamaya yapabiliriz,özellik ekleyip çıkarabiliriz ancak string gibi değişmez nesneler için özellik ekleme çıkarma sözkonusu değildir.Sadece JavaScriptin string için bize tanımladığı özellikleri kullanabiliriz.
Property
Adı ve değeri vardır. Property adı herhangi bir string olabilir.(Boş string de dahil olmak üzere) Ancak bir nesnenin aynı ada sahip iki property’si olamaz. Property değeri JavaScriptte tanımlı herhangi bir değer olabilir.Ek olarak ada ve değere sahip her property, property attributes olarak adlandırılan değerler ile ilişkilidir.
Nesne Oluşturma
“new” operatörü yeni nesneyi oluşturur ve initialize eder. “new” anahtar kelimesinden sonraki kısım fonksyion çağrımı şeklinde olmalıdır. Örneğin:
Propertyleri Setleme
Değerin propertysine (.) veya [] içine adını yazarak erişebiliriz.Örneğin:
Yeni bir property oluşturmak içinde aynı syntax kullanılır tek fark setleme sol taraftan yapılır.
Inheritance[Miras]
JavaScriptte nesneler kendi property kümeleri olarak adlandırılabilir. Aynı şekilde bu nesneler başka prototipleri de kendi üzerlerine miras alabilir. Burada bilinmesi gereken kısım miras alınan prototip miras alan nesnenin yaptığı değişimlerden etkilenmez. Örneğin;
Propertyleri silmek için delete operatörü kullanılır.
Property Getter ve Setter’ları
Daha önce bahsettiğim gibi nesnenin propertysinin adı değeri ve özellik kümesi bulunur. Property değerleri getter ve setter metodlarıyla setlenebilir. Bu ECMAScript 5 ile tanımlanmıştır. Getter ve setter propertye erişim aracı olarakta tanımlanabilir. Eğer bir propertyde sadece getter metodu var bu onun read-only olduğunu gösterir. Hem getter hem setter tanımlıysa hem okunabilir hem yazılabilirdir.
Nesne Özellikleri (Object Attributes)
Her nesne 3 özellikler ilişkilidir bunlar: Prototip(Protoype), sınıf(class) ve genişletilebilir(extensible).
Prototip(Prototype) Özelliği : Nesnenin prototip özelliği o nesnenin hangi özellikleri miras aldığını belirler. Temel olarak nesnenin iskeletini oluşturur.Bu açıdan önemlidir.Prototip attribute’u nesne create edildiğinde oluşturulur.
Sınıf(Class) Özelliği : Class atttribute’u nesnenin tipi hakkında bilgi sağlar. classof() fonksiyonu ile nesnenin hangi sınıfa ait olduğuna bakabiliriz.
Genişletilebilir(The Extensible) Özelliği : Bu özellik nesneye yeni property eklenebilir mi eklenemez mi onu belirler. Genelde kullanıcı tanımlı tüm nesneler genişletilebilir nesnelerdir. Object.isExtensible() metoduyla bu özelliğinvar olup olmadığını sorgulayabiliriz.
![]()