Haberler için arşiv

CSS3 pointer-events özelliği

CSS3 ile gelen yeni özellikleri tararken ilginç ve güzel bir özellik ile karşılaştım. pointer-events özelliği. SVG ile birlikte uzun süredir kullanılan bu özellik CSS3 ile birlikte HTML elemanlarında uygulanıyor.

Farenin işlevini yerine getirip getirmeyeceğini belirlemek için kullanılır. Örneğin bir menüde mevcut sayfayı gösteren menü elemanının tıklanma olayını kaldırabiliriz.

pointer-event özelliği belirlenen elemanın farenin işlevine vereceği tepkiyi belirler. Bu tepki aşağıdaki çerçevededir.

  • Kullanıcı arayüzü olayları (örneğin fare tıklaması)
  • Dinamik Sahte Sınıflar (örneğin :hover, :focus)
  • Hiperlinkler

pointer event özelliği aslında SVG içerikleri için uygulanan bir özelliktir.

Yapısı : pointer-events: <deger>
Aldığı Değerler: auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit
Başlangıç değeri: auto
Uygulanabilen elementler: Tüm Elemanlara
Kalıtsallık: Var

Aldığı değerler bakalım;

auto: pointer-events özelliğine herhangi bir tanım yapılmadı ise fare tıklamasına müdahale etmez. SVG içeriklerde, bu değer visiblePainted ile aynı etkiyi yapar.

none: Element fare olaylarını uygulamayacaktır.

visiblePainted, visibleFill, visibleStroke, visible, painted, fill, stroke ve all: Sadece SVG içindir.

Bir örnek ile durumu daha iyi görelim.

  • <ul class="menu">
  • <li><a href="index.html">Ana Sayfa</a></li>
  • <li><a href="hakkimizda.html" class=”on”>Hakkımızda</a></li>
  • <li><a href="urunler.html">Ürünler</a></li>
  • </ul>

Hakkımızda sayfasında olduğumuzda kullanıcının hakkımızda linkine tıklaması mantıklı değildir, hakkımızda bağlantısının fare tıklama olayını kaldırmak için

  • .menu a.on {
  •       pointer-events: none;
  •       cursor: default;
  • }

Tanımı istediğimiz sonucu verecektir.

CSS3 ile dinamik bileşenlerin CSS ile halledilmesi işine alıştık. Bu tip CSS ile halledebilmemiz güzel.

Tarayıcı Destekleme Listesi
Firefox 3.6+
Chrome 2+
Safari 4+
Opera -
İnternet Explorer -

Kaynaklar

CSS3 Esnek Kutu Yerleşimi(Flexible Box Layout)

CSS asıl çıkışını kazanmasında sayfa yerleşimini CSS ile ayarlamaya başladığımızda yaptı. CSS3 ile birlikte bize daha avantajlı sayfa yerleşimi özellikleri sunmayı gaye edinen W3C bizlere işimiz kolaylaştıracak Esnek Kutu Yerleşimi Modülünü sunmaktadır.

Sayfa yerleşimini yaparken genelde float/clear veya position özelliklerini kullanarak yapıyorduz. Tabloya göre büyük avantajlar sağlayan bu yöntemlerden sonra web sayfası kodlamak daha kolay ve zevkli bir hal aldı. Detay için Tablo mu? Div mi? Karmaşasına Son Noktayı HTML5 koydu yazısını inceleyin.

Tabi CSS ile sayfa yerleşimi kodlamanın birçok avantajı var. Bunun yanında bazı karışık sayfa yerleşimlerinde ise bizi zorladığı bir gerçek. Özellikle esnek yapılı sayfa düzenleri ve dikey eksendeki yerleşimlerdeki sorunlarını gören W3C bize bu konuda yardımcı olacak yöntemleri üretmeye başladı. Bunlardan bir tanesi Esnek Kutu Yerleşimi Modülüdür(EKYM).

Esnek Kutu Yerleşimi Modülü kapsayıcı bir eleman içindeki alt elemanların yerleşimini sağlamaktadır. Daha önce dikeyde yaşadığımız birçok sorunu(dikeyde ortalama ve aksak kolon sorunları gibi) gidermemizi sağlıyor. Esnek Kutu Yerleşimi Modülünü bu makalemizde inceleyeceğiz.

Kapsayıcı elemana tanımlanan display:box özelliği yardımı ile alt elemanlara tanımlanan box(box-orient, box-direction, box-pack, box-align, box-lines, box-ordinal-group, box-flex ve box-flex-group) özellikleri ile sayfa yerleşimimizi çok kolay şekilde yapmamıza olanak sağlamaktadır.

CSS3 EKYM olarak kısaltacağımız bu özellik bize olanaklarını display:box tanımı içerisinde gelen yeni tanımlar ile getirmektedir. Bu yeni 8 tanım aşağıdaki gibidir;

  • box-orient
  • box-direction
  • box-pack
  • box-align
  • box-lines
  • box-ordinal-group
  • box-flex
  • box-flex-group

EKYM ilk olarak 2009 yılında standardı oluşturuldu, ancak daha sonra yeniden ele alındı ve şu an sonlandırılmak üzeredir. Biz 2009 yılındaki standartlaşan özellikleri tanımlayacağız, çünkü tarayıcılar 2009 yılındaki standartları desteklemektedir ve yeni standartlaşan özelliğinde mantık olarak çok büyük farklılığı yok.

display:box

İlk olarak kapsayıcı esnek kutuları çevreleyen eleman display:box tanımı yaparak başlıyoruz. Farklı tarayıcılar önek ile birlikte desteklemektedir;

#esnekKutu{
display: -webkit-box;
display: -moz-box;
display: -ms-box;
display: box;
}

Tanımı ile kapsayıcı elemanı tanımlıyoruz. Bu tanım ile kapsayıcı eleman içersindeki alt elemanların artık esnek yapılı olacağını ve EKYM özellikleri alabileceğini belirliyoruz.

Çok basit bir şekilde kutularımızı yanyana dizebiliriz mesela

#esnekKutuKapsul{
 display: box;
 display:-webkit-box;
 display:-moz-box;
 display:-ms-box;
 width:600px;
 border:1px solid #03C;
}

Kapsayıcı tanımlanan display:box tanımı ile içindeki elemanlar birer inline-block eleman gibi davranır ve yanyana sıralanır.

box-orient

Yapısı: box-orient: <deger>
Aldığı Değerler: horizontal | vertical | inline-axis | block-axis
Başlangıç değeri: inline-axis
Uygulanabilen elementler: display:box ve display:inline-box değeri alan elemanlara
Kalıtsallık: Yok

box-orient özelliği ile esnek kapsayıcı eleman içindeki kutuların hangi eksende sıralanacağını belirleriz. Yukarıdaki örnekte gördüğümüz gibi eğer bir tanım yapılmadı ise ve kapsayıcı eleman genişliği müsait ise kutular yatayda yanyana sıralanır.

Biz bu durumu değiştirmek için box-orient özelliğini kullanırız. 3 adet değer alır.

  • horizontal: Kutular yatay eksende soldan sağa doğru sıralanır.
  • vertical: Kutular dikey eksende yukarıdan aşağıya doğru sıralanır.
  • inherit: Üst elemanın değerini alır.

Bunlardan başka iki değer daha mevcuttur. inline-axis yatayda ve block-axis dikeyde sıralamayı sağlar. Bu tanımlar horizontal ve vertical gibi davranırlar.

#esnekKutuKapsul{
 display: box;
 display:-webkit-box;
 display:-moz-box;
 box-orient:vertical;
 -moz-box-orient:vertical;
 -webkit-box-orient:vertical;
 width:200px;
 height:600px;
 border:1px solid #03C;
}

box-orient:vertical ile esnek kutularımızı dikeyde sıraladık.

box-direction

Yapısı: box-direction: <deger>
Aldığı Değerler: normal | reverse
Başlangıç değeri: inline-axis
Uygulanabilen elementler: display:box ve display:inline-box değeri alan elemanlara
Kalıtsallık: Yok

box-direction özelliği kapsayıcı eleman içindeki esnek kutuların sıralama yönünü belirler. İki değer alır; normal ve reverse. reverse tanımlandığında sıralama yönü normalin tam tersine döner.

#esnekKutuKapsul{
 display: box;
 display:-webkit-box;
 display:-moz-box;
 box-orient:vertical;
 -moz-box-orient:vertical;
 -webkit-box-orient:vertical;
 box-direction: reverse;
 -moz-box-direction: reverse;
 -webkit-box-direction: reverse;
 width:200px;
 height:600px;
 border:1px solid #03C;
}

Yukarıdaki örnekte sıralama yukarıdan aşağı Esnek Kutu1, Esnek Kutu2 ve Esnek Kutu3 iken box-direction: reverse; tanımı ile sıralama Esnek Kutu3, Esnek Kutu2 ve Esnek Kutu1 şeklini almıştır.

Not: box-orient ve box-direction yerine ikisini kapsayan flex-direction üzerinde çalışılmaktadır.

flex-direction lr, rl, tb, bt, inline, inline-reverse, block ve block-reverse değerlerini alabilecek. sol(left – l), sağ(right – r), üst(top – t) ve alt(bottom – b) kısaltmaları kullanılmıştır. CSS3’ün birçok özelliği üzerinde halen çalışılan canlı bir yapıdır. Değişikliklerin olabileceği dikkate alınmalıdır.

box-pack

Yapısı : box-pack: <deger>
Aldığı Değerler : start | end | center | justify
Başlangıç değeri: start
Uygulanabilen elementler: display:box ve display:inline-box değeri alan elemanlara
Kalıtsallık: Yok

box-pack özelliği kapsayıcı kutunun içindeki esnek kutuların kapsayıcıya göre konumunu belirlemek için kullanılır. Dört adet değer alır başlangıç(start), son(end), ortalı(center) ve iki yana yasla(justify)

Alt elemanların genişliğinin kapsayıcı elemandan küçük olduğu durumlarda kalan boşluk alanına göre değerlendirme yapılır.

Bu özellik tanımı 2009’da tanımlandı şu an yenileniyor flex-pack olarak değişecek. Tarayıcılar destekleyen kadar bu şekilde devam edecek.

    #esnekKutuKapsul{
     display: box;
     display:-webkit-box;
     display:-moz-box;
     width:600px;
     border:1px solid #03C;
     box-pack:center;
     -webkit-box-pack:center;
     -moz-box-pack:center;
    }

box-align

Yapısı : box-align: <deger>
Aldığı Değerler : stretch | start | end | center | baseline
Başlangıç değeri: stretch
Uygulanabilen elementler: display:box ve display:inline-box değeri alan elemanlara
Kalıtsallık: Yok

Kapsayıcı elemana atanan box-orient değerine göre kalan boşluğa göre hizalama yapmak için kullanılır.

Beş adet değer alır. stretch | start | end | center | baseline Başlangıç değeri stretch’dir; bunun anlamı box-orient değeri horizontal ise stretch uygulanan elemanın alt elemanlarının yükseklikleri yayılacaktır, eğer box-orient değeri veritcal ise genişlikleri yayılacaktır. start ve end değerleri eğer horizantal tanımlı ise sol ve sağa yaslayacaktır, vertical tanımlı ise üste ve alta yaslayacaktır. center değeri ise ortalayacaktır.

    #esnekKutuKapsul{
     display: box;
     display:-webkit-box;
     display:-moz-box;
     width:600px;
     border:1px solid #03C;
     box-orient:horizantal;
     -moz-box-orient:horizantal;
     -webkit-box-orient:horizantal;
     box-align: center;
     -webkit-box-align: center;
     -moz-box-align: center;
    }
    .esnekKutu{
     background-color:#999999;
     width:150px;
     height:150px;
     margin-right:15px;
    }

box-lines

Yapısı : box-lines: <deger>
Aldığı Değerler : single | multiple
Başlangıç değeri: single
Uygulanabilen elementler: display:box ve display:inline-box değeri alan elemanlara
Kalıtsallık: Yok

Esnek Kutu Yerleşimi ile yerleştirilen kutular genelde bir eksen üzerinde blok halinde hareket eder, blox-line özellik bu elemanların alt satıra geçip geçmemesini ayarlar. İki değer alır.

  • single: Başlangıç değerdir. Bu değeri alan kutular kapsayıcı eleman üzerine taşma yapacaktır. Taşma durumunu kontrol etmek için overflow özelliği kullanılabilir.
  • multiple: Bu değer alan kutular tek satırda kendini sınırlamayacaklardır ve ikinci satıra inecektir.

Şu anki tarayıcılar bu özelliği henüz desteklemiyor. İE10 desteklediğine dair duyumlar var.

Yenilenen EKYM standartlarında box-line özelliği görünmüyor. Onun yerine benzer etki yapacak flex-flow tanımı gelecek gibi.

box-ordinal-group

Yapısı : box-ordinal-group: <deger>
Aldığı Değerler : <sayı>
Başlangıç değeri: 1
Uygulanabilen elementler: display:box ve display:inline-box değeri alan elemanların normal akıştaki alt elemanları
Kalıtsallık: Yok

box-ordinal-group özelliği kapsayıcı kutunun içindeki esnek kutuların sıralamasını belirlememizi sağlar.

#esnekKutu1 {
    box-ordinal-group: 2;
    -webkit-box-ordinal-group: 2;
    -moz-box-ordinal-group: 2;
    background-color:#0CF;
}
#esnekKutu3 {
    box-ordinal-group: 2;
    -webkit-box-ordinal-group: 2;
    -moz-box-ordinal-group: 2;
    background-color:#9C3;
}
#esnekKutu4 {
    box-ordinal-group: 1;
    -webkit-box-ordinal-group: 1;
    -moz-box-ordinal-group: 1;
    background-color:#FC9;
}

Dört adet kutumuz var. Bunların üç tanesine box-ordinal-group değeri tanımladık.

EsnekKutu1 ve EsnekKutu3 için 2 değeri tanımladık bunlar ikinci sırada gelecek. EsnekKutu4’e 1 değer tanımladık, buda ilk sırada gelecek. EsnekKutu2 için bir tanım yapmadık buda başlangıç değeri olan 1 değerini almasına neden olacaktır. Buna göre sıralama 2,4,1,3 şeklinde olacaktır.

Bu özellik bize sıralama konusunda tam bir kontrol sağlamaktadır.

Yeni EKYM standardında box-ordinal-group yerine flex-order özellik ismi kullanılması düşünülmektedir.

box-flex

Yapısı : box-ordinal-group: <deger>
Aldığı Değerler : <sayı>
Başlangıç değeri: 0
Uygulanabilen elementler: display:box ve display:inline-box değeri alan elemanların normal akıştaki alt elemanları
Kalıtsallık: Yok

blox-flex özelliği tanımlanması durumunda alt elemanların esnek davranmasını sağlar. Tanım yapılmadığında ise alt elemanlar esnek olmaz.

Hesaplamanın mantığı şöyledir;

Gruptaki tüm esnek kutuların box-flex değeri toplanır ve her kutu için toplam boşluk genişliği(Kapasayıcı eleman ile kutuların genişliği toplamı arasındaki fark) bu sayıya bölünerek elde edilen değer kutu genişliğini belirler.

#esnekKutuKapsul {
     background: gray;
    border: blue;
    display: box;
   display: -webkit-box;
   display: -moz-box;
   display: -ms-box;
   width:100%;
}
.esnekKutu {
   background-color:#999999;
   height:150px;
}
#esnekKutu1 {
    background-color:#0CF;
    border: orange solid 1px;
    box-flex: 2;
    -webkit-box-flex: 2;
    -moz-box-flex: 2;
    -ms-box-flex: 2;
}
#esnekKutu2 {
    background: lightgray;
    border: red solid 1px;
    box-flex: 1;
    -webkit-box-flex: 1;
    -moz-box-flex: 1;
    -ms-box-flex: 1;
}
#esnekKutu3 {
    background-color:#9C3;
    border: red solid 1px;
    box-flex: 0;
    -webkit-box-flex: 0;
    -moz-box-flex: 0;
    -ms-box-flex: 0;
}
#esnekKutu4 {
    background-color:#FC9;
    border: red solid 1px;
}

Daha sabit bir örnek verelim; genişliği 600px olan kapsayıcı eleman ve  üç adet 100px’lik kutumuz olsun(Bu durumdan boşluk değeri 300px olacaktır), bunların box-flex değerleri 1 olsun, her bir kutunun genişliği 200px(100 + 300/3 * 1 = 200) olacaktır. Eğer bu kutulardan bir tanesinin box-flex değeri 2 olarak değiştirilirse, değiştirilen kutunun genişliği 250px(100 + 300/4 * 2 = 250) olurken diğer iki kutunun genişliği 175px(100 + 300/4 * 1 = 175) olacaktır.

#esnekKutuKapsul {
     background: gray;
    border: blue;
    display: box;
   display: -webkit-box;
   display: -moz-box;
   display: -ms-box;
   width:600px;
}
.esnekKutu {
   background-color:#999999;
   height:150px;
     width:100px;
}
#esnekKutu1 {
    background-color:#0CF;
    box-flex: 2;
    -webkit-box-flex: 2;
    -moz-box-flex: 2;
    -ms-box-flex: 2;
}
#esnekKutu2 {
    background: lightgray;
    box-flex: 1;
    -webkit-box-flex: 1;
    -moz-box-flex: 1;
    -ms-box-flex: 1;
}
#esnekKutu3 {
    background-color:#9C3;
    box-flex: 1;
    -webkit-box-flex: 1;
    -moz-box-flex: 1;
    -ms-box-flex: 1;
}

Eğer kutu genişlikleri toplamı kapsayıcı kutunun genişliğinden büyük ise genişlik hesaplamasında benzer birim hesabına göre küçülme olacaktır. 0 değeri kutunun esnek olmayacağı anlamına gelir.

Raphael Goetter’ın yaptığı örnek bu işin geleceği hakkında bize güzel bir ipucu veriyor. Fantastik örnekler.(Chrome da daha iyi gözüküyor)

box-flex özelliği 2009 yılındaki standartlardaki hali idi, yenilenen standartlarda box-flex vede box-flex-group özelliklerini kapsayan flex() fonksiyonu ile yenilenmektedir.

Tarayıcı Destekleme Listesi
Firefox 3+ (-moz- öneki ile)
Chrome 5+ (-webkit- öneki ile)
Safari 3.2+ (-webkit- öneki ile)
Opera desteklemiyor
İnternet Explorer 10+ (-ms- öneki ile)
Mobil Tarayıcılar
iOS Safari 3.2+ (-webkit- öneki ile)
Opera Mini desteklemiyor
Opera Mobile destelemiyor
Android Browser 2.2+ (-webkit- öneki ile)

Sonuç

Gerek CSS3 ve gerekse EKYM yeni özellikler ve hala gelişmektede olan mecralar. Benim burada anlatmak istediğim CSS3’ün en büyük yeniliklerinden biri olan sayfa planlamaya yönelim yeniliklerine bir göz atmak, mantığını kavramak, geleceğe dair fikir edinmeyi sağlamaktır. Ben burada sadece EKYM anlattım, ancak CSS3 ile sayfa planlamaya yönelik başka modüllerde geliştirilmekte; Çoklu Kolonlar(Multiple Column), Izgara Yerleşim Modeli(Grid Layout), Şablon Yerleşim Modeli(Template Layout Model), CSS Exclusions Module, CSS regions Module

CSS3 ile sayfa yerleşimi daha kolay olacağı kesin, bu konuda bir çok modül üzerinde çalışma bitmek üzere veya bitmiş bulunmakta. Gelecekte daha güzel şeyler olacağı kesin.

Yukarıda özelliklerin nasıl kullanıldığını göstermek için daha basit örneklerler verdik, daha karmaşık örneklerde yapılabilir http://oli.jp/2011/css3-flexbox/ sitesindeki örnekler incelenebilir.  

Kalın sağlıcakla

Kaynaklar

Git Öğreniyorum -2

Daha önce Sürüm Kontrol Sistemi Git adlı bir makale yazmıştım, öğrenme sürecim devam ediyor. Git kullanırken komut satırını kullanıyoruz. MacOs’da Terminal’e denk geliyor. Bu nedenle genel Terminal komutlarınıda bilmekte yarar var. Benim gibi mac terminaline yabancı biri iseniz(aslında linux komut satırı ile benzer kodlar) aşağıdaki basit komutları bilmenizde yarar var.

Terminal giriş görünümü yukarıdaki gibidir. (Renklere takılmayın bu benim seçimim)

ls (list files)

Çalıştığımız klasörün içeriğini göstermek için kullanılır. Windows’taki dir ile aynı anlamdadır.

Sonuç aşağıdaki gibi olacaktır

  ls
  aFolder    another.txt    bilgilendirme.txt   deneme.html

cd (Change Directory)

Bu komut ile dosyalar arası geçiş için kullanırız. Mesela image klasörüne geçmek için

  cd images

Tek seviyede değil birden fazla seviyede geçişte yapabiliriz.

  cd images/icons/ust

Bir alt klasöre inmek için

  cd ..

Kök dizinine(root) inmek için ise

  cd

yazmak yeterlidir. Ufak bir ipucu klasör isimlerinin uzun olması durumunda akılda tutmak zor oluyor. Klasör veya dosya isminin başında bir kaç karakter yazdıktan sonra tab tuşuna basarak gerisini tamamlayabilirsiniz.

mkdir (Make Directory)

Yeni klasör oluşturmak için kullanıyoruz. Mac ve Windows’ta kullanımı aynıdır.

  mkdir yeniKlasor

rm (remove)

Dosya ve klasörleri silmek için kullanılır. Silme işlemlerinde her zaman dikkatli olmak lazım.

  rm deneme.html
  rm images_klasoru

cp (copy) ve mv (move)

Çok basit bir kullanımı vardır. İlk parametre kopyalanacak dosyayı ikinci parametre ise hedefi gösterir.

  cp deneme.html ~/dosya/deneme.html

Eğer taşımak istiyorsanız, aynı şekilde kullanabiliriz.

  mv deneme.html /dosya/deneme.html

mv komutu dosya ismini değiştirmek içinde kullanılabilir.

  mv deneme.html /dosya/test.html

deneme.html dosyası ismi test.html olarak değiştirilip taşınmıştır.

clear

Terminal ekranını temizlemek için kullanılır.

Dosya Açmak

Komut satırlarından harici programlarda da açabiliyoruz veya kendi içinde açabiliyoruz.

Mesela MacOs için ilgili klasörde iken

  nano deneme.html

komutu deneme.html dosyamızı nano editöründe açmamızı sağlayacaktır.

exit

Eğer uzak dosya yönetimi ile çalışıyorsanız. Kurduğunuz bağlantıyı sonlandırır.  exit komutu ile Terminalide kapatmak mümkün. Terminal – Preferences.. – Settings – Shell oradanda “Close the Window” işaretleyerek exit komutu ile hem bağlantıyı hemde pencereyi kapatabiliriz.

Benim ihtiyaç duyduğum komutlar bunlar tüm liste için http://ss64.com/osx/ sitesineden yardım alabilirsiniz.

Git Kullanırken Öğrendiğim İpuçları

Yukarıda genel komutları anlattım, aşağıda ise kullandıkça gördüğüm komutları ve ipuçlarını paylaşacağım.

İki dosya arasındaki farkı görmek

Bir branchdeki veya bir dosya üzerindeki değişiklikleri görmek için branchde iken

  $git log

yazarız bu komut bize

commit f491239170cb1463c7c3cd970862d6de636ba787
Author: Matt McCutchen &lt;matt@mattmccutchen.net&gt;
Date:   Thu Aug 14 13:37:41 2008 -0400

git format-patch documentation: clarify what --cover-letter does

commit 7950659dc9ef7f2b50b18010622299c508bfdfc3
Author: Eric Raible &lt;raible@gmail.com&gt;
Date:   Thu Aug 14 10:12:54 2008 -0700

bash completion: 'git apply' should use 'fix' not 'strip'
Bring completion up to date with the man page.

gibi bir sonuç döndürür. O dosya veya o branch üzerinde yapılan tüm değişiklikler hakkında bilgileri içeren bir listedir bu. Bu listede commit … ile başlayan satırda verilen numara yapılan ve gönderilen her iş için farklıdır biz bu sözdizimini kullanarak iki farklı gönderi arasındaki farkı bulabiliriz.

  $git diff f491239170cb1463c7c3cd970862d6de636ba787 7950659dc9ef7f2b50b18010622299c508bfdfc3  Html/index.html

İki farklı branchdeki HTML/index.html dosyasındaki farklılıkları gösterir yukarıdaki kod. Farkları renkli görmek için –color parametresini kullanabiliriz.

  $git diff --color  d76192b2c7a61d2aea62c7aec21e14cda72f9e32 fe0dba7b841e86b095d2aefbd6bd755a0d9d1e90  Html/index.html

Eklenenleri yeşil, çıkarılanları kırmızı renkte gösterecektir. Ayrımı görmek için renkler güzel oluyor.

Dallanma (Brach) Silmek

git branch -d: Yanlışlıkla açtığımız branchlerı silmek için

  $git branch -d branch_ismi

Kısayol kullanmak

Git kullanırken aynı kodları tekrar tekrar çok kullanıyoruz. Bu komutları kısaltarak daha hızlı kod yazabilme imkanı sağlıyor bize komut sistemi.

git config dosyasına kısayolllarımızı ekleyebiliyoruz. git cofig ile ilgili ayrıntılı bilgiyi http://tybarts.wordpress.com/2011/05/07/git-global-config-dosyasini-ayarlamak/ bağlantısından edinebilirsiniz.

Global congif dosyasına eklemek için

  $git config --global alias.ci commit

ci kısaltma commit normali. Eğer projeye özgü kısayollar oluşturmak için

  $git config alias.ci commit

–global parametresini kaldırmamız yeterli olacaktır. git config dosyasını görmek için

  $git config --edit

yazmamız yeterli burada eklediğimiz kısayolları görebiliriz. Benim listem aşağıdaki gibi.

[alias]
st = status
br = branch
co = checkout
ci = commit

Siz bu listeyi kendinize göre düzenleyebilirsiniz.

Git için kaynaklar

http://sixrevisions.com/resources/git-tutorials-beginners/ bu bağlantıda Git kaynakları listelenmiş. Git’in güzel yanlarında birisi öğrenmek için kaynağın bol olması.

Başka Branch’den dosya almak

  $git checkout branch_adi dosya_adi

Benzer bir şekilde branchde yaptığımız değişikliği geri almak için master’dan dosyayı alabiliriz.

  git checkout master dosya_adi

Değişen dosya isimleri

Çalıştığımız branchde değişiklik yaptığımız dosyaları görmek için

  $git diff master --name-only

kodunu kullanıyoruz.

Bana üşenmeyip bunları ve aklımda kalmayan bir çok bilgiyi öğreten Onur Yerlikaya’ya şükranlarımı sunarım. Gitmeyeydin Git daha kolay olacaadı. :D

Kalın sağlıcakla

Kaynaklar

Firefox 6

Firefox 6

Firefox6 çıktı. Mozilla’da artık hızlı tarayıcı sürümleri çıkarmaya başladı. Her neyse ki otomatik güncelleme özelliği sayesinde kullanıcılar hızla yeni sürüme geçiyor. Otomatik güncelleme kullanıcının Firefox Hakkında penceresini açması ile çalışıyormuş. İlginç bir yöntem.

Firefox 5 çıkalı yaklaşık 2 ay olmuştu ve 16 Ağustos’ta Firefox 6 çıktı tabi bu kadar hızlı sürüm çıkınca yeni sürüm ile birlikte hata düzeltmeleri ve bir kaç özellik ile yetinmemiz gerekiyor. Yeni sürümün Firefox’daki en büyük sorunu eklentilerin uyumsuz olması, eklentiler daha yeni Firefox5’e uyum sağlamışken şimdi Firefox6 ile bu sorunu tekrar yaşacayacağız.

Hız konusunda Google Chrome’a yetişmeye çalışan Firefox bu yeni sürümde hızlanmanın bir önceki sürüme göre %20 olduğunu söylüyor. Linux kullanıcıları için daha kararlı ve hızlı bir sürüm olduğu söyleniyor.

Adres barda web sitesinin isim kısmını ön plana çıkaran bir değişiklik yapılmış. Bu özellik bir çok yeni nesil tarayıcıda vardı zaten. Hatta İnternet Explorer’da bile vardır :

Firefox 6

Detaylı yetkilendirme özelliği ile artık site bazlı yetkilendirme imkanı sunuyor bize Firefox6. İzin Yöneticisi penceresini adres bara about:permissions yazarak açabiliyoruz. Bu pencereden web sitelerinin tek tek çerezlerin, parolaların, popup pencerelerini, çevirim dışı depolamayı ve konum bilgilerini kullanmasına dair izinleri ayarlayabiliyoruz.

Firefox 6

JavaScript Karalama Defteri(Scratchpad): FireBug’ın konsolune benzer bir işleve sahip bu uygulama herhangi bir eklenti kurmadan tarayıcının kendi özelliği olarak geliyor. Bu araç ile javascript kodlarımızı çalıştırabiliyoruz.

Firefox 6

Daha fazla HTML5, CSS3 ve DOM özelliği desteği geldi.

  • WebSocket son hali desteği geldi. Websocket özelliği sunucu ile tarayıcı arasında bir bağlantı kurulmasını sağlıyor, bu sayede biz mesajlaşma servisi, çok kullanıcılı oyunlar vb çok güzel uygulamalar yapma imkanı sağlıyor. Aslında ajax teknolojisinin standartlaştırılmış hali gibi geldi bana.
  • HTML5 <progress> etiketi destekleniyor. ::-moz-progress-bar özelliği ile stilini ayarlayabiliyoruz.
  • Yeni -moz-orient özelliği örneğin progress barın dikey mi yataymı olacağını ayarlayabiliyoruz.
  • HTML5 ses ve video elementlerinde metinleri izleyebilmemizi sağlayan <track> elementini destekliyor.
  • CSS3 border-radius özelliği artık iframelerde uygulanabiliyor.
  • Özel veri özelliklerine(data-*) DOM’un element.dataset özelliği erişebilme imkanı sağlıyor.
  • -moz-text-decoration-color Bu yeni özellik text decorations’a renk veriyor, örneğin underlines, overlines ve strikethroughs olarka tnaımlanan çizgilere.
  • -moz-text-decoration-line Bu özellik bir elemena atanacak text decorations çeşidini belirliyor.
  • -moz-text-decoration-style Bu özellik text decorations stilini belirlememizi sağlıyor, örnek underlines, overlines, and strikethroughs, single-strokes, double strokes, wavy lines, dotted lines vb.
  • -moz-hyphens özelliği ile kelimelere tireleme yapabiliyoruz. (none, manual, auto).
  • window.matchMedia() metodunu kullanarak medya sorgularını programatik olarak kontrol edebiliyoruz.
  • Server-Sent Events desteği eklenmiş. Bu API sunucuya istemci tarafından uyarı mesajları göndermeye izin veriyor. Bir mesajlaşma örneği
  • Touch eventları destekliyor. Dokunmatik ekranlar ve trackpadlerde bu özellikleri kullanabiliyoruz artık.
  • Tüm destek listesini görmek için tıklayınız.

Kaynaklar

Firefox 5

Firefox’un 5. sürümü çıktı. En güzel yanlarında birisi artık Chrome gibi otomatik güncellenmesi. Her sürümde tekrar tekrar indirme dönemi bitti Firefox içinde darası diğer tarayıcıların başına, özellikle İnternet Explorer’un. Otomatik güncelleme olmadı ise Yardım- Firefox hakkında penceresinde güncelle butonu ile de yapabilirsiniz.

Chrome’un hızlı sürüm numarasını kıskanan Firefox, 4.5 sürüm diyebileceğimiz bir sürümü yeni bir sürüm olarak bizlere sundu. Yeniliklerine göz atalım.

  • CSS animasyon özelliğini destekliyor
  • Canvas, javascript, hafıza ve ağ performansını arttırmış
  • HTML5, XHR, MathML, SMIL ve canvas standartlarını geliştirmiş
  • Aktif olmayan sekmelerdeki setTimeout ve setInterval değeri 1000ms ile sabitlenerek performans artışı sağlanmış.
  • Firefox 5 daha az kullanıcı bilgisini göndererek kullanıcı mahremiyetine daha fazla duyarlı olacakmış. Do-Not-Track başlık özelliği ile daha iyi gizlilik sağlıyor.
  • HTTP mantalitesi yenilenerek performans arttırılmış

Daha hızlı bir sürüm olmuş, bu hız meselesini gittikçe kavrıyor Firefox, yakında chrome’u yakalar gibi.

Ayrıca Firefox 5 ile gelen yeni bir site http://firefoxtweetmachine.com/ Twitter makinesi güzel olmuş.

Kaynaklar

Googe Chrome 12 ile birlikte gelen güzel bir özellik(Built-in de-obfuscation)

Javascript kodlarının daha hızlı yüklenmesi, dosya boyutunun azaltılması için ve kodları kopyala-yapıştır ile kolayca almak isteyenler engellemek için javascript kodlarını sıkıştırırız.

Evet güzel bu özelliklerin her biri güzel ancak bir sorun olduğunda kodu göremiyoruz. Chrome yeni sürümünde güzel bir özellik getirmiş. “Sıkıştırmayı geri al” diye Türkçe’ye çevirebileceğim bir özellik ile tek tıkla kodu anlaşılabilir bir hale getirebiliyoruz.

Değişken isimlerini kısa göstermesi gibi küçük bir sorun dışında gayet başarılı bir özellik olmuş.

Yeni sürümlerde ikon olarak eklenmiş.

« Önceki Yazılar

Kategoriler

Kitap

CSS'e başlangıç Uzun süredir üzerinde çalıştığım CSS’e başlangıç kitabımı bitirdim. Aslında buna bir kitap demek ne kadar doğru bilmiyorum. Tam doğru tanımı makalelerimin derlenip düzenli hale getirildiği bir e-doküman demek daha doğru olur. Bu kitap makalelerimi derleyip hazırladığım ilk kitap. İnşallah ikinci kitabıda yazmayı düşünüyorum. Zaman ve imkânlar nispetinde 2. kitapta çıkacaktır.