Kısaca Grunt

Grunt bir görev çalıştırıcısı. Web geliştirme sürecinde ihtiyacınız olan operasyonları otomatize etmenize yarayacak bir araç. Daha çok platforma dönüşmüş olan grunt, yüzlerce eklentiyle istediğiniz forma sokabileceğiniz bir yapılandırma aracı. Hızlıca bir örnek vereceğim. Basit bir web sitesi hazırlıyorsunuz ve stillerinizi css yerine less ile yazdınız, javascriptlerinizi cosnole.log debug satırlarıyla ve bir sürü yorum ile yazdınız. Sitenizi her yayına alacagınızda bir toparlama ve paketleme işi yapmanız gerekiyor, lessilerinizi css'lere derlemek, belki cssmin gibi ufaltma operasyonuna sokmak, imajlarınızı sıkıştırmanız, javascriptlerinizi temizleyip küçültmeniz belki birden fazla kaynağı tek dosyada birleştirmeyi isteyeceksiniz. Her değişiklik yaptığınızda bu işlemleri tekrarlamanıza imkan yok. İşte bu noktada grunt devreye giriyor.

Grunt ile neler yapabilirsiniz?

Sonu yok çünkü kendi eklentilerinizi yazarak node.js yeteneklerini kullanarak yapamayacağınız şey yok. Ama eklenti veritabanından erişebileceğiniz o kadar çok şey var ki.
- Less, Scss, Sass vb... herhangi bir css derleme işinizi
- Kod validasyonu (css, js, html)
- Imaj optimizasyonu
- Birden fazla javascript veya css kaynağını birleştirme
- Css veya javascript sıkıştırma
- Kodunuzdaki yorumları, debug için geriye kalan artıkları temizleme
- Kaynak versiyonlama

Daha sayamadığım bir çok operasyonu grunt ile farklı kombinasyonlarda hazırlamanız mümkün.

Örnek

Versiyonlamayı denemek için kendime bir örnek kod hazırladım ve github'da paylaştım. Basit bir css javascript projesinde kodumu yayınlamadan önce bütün css ve javascript kaynaklarımı sıkıştırıp adlarını versiyonlamarak yayındaki tüm dosyaların en taze kodu kullanmasını sağlamak için grunt kullandım. Projeyehttps://github.com/mfyz/grunt-release-boilerplate adresinden erişebilirsiniz.

Grunt hakkinda daha fazla bilgiye sitesinden erişebilirsiniz:http://gruntjs.com/
10 Ekim Pazartesi ´05   —   3 Yorum

XML Nedir?


XML (Extensible Markup Language) verinin platform ve donanım bağımsız olarak taşıma ve saklama işini yapan bir işaretleme dilidir. Platform ve donanımdan bağımsızdan kastımızı biraz açmamız gerekirse şunları söyleyebiliriz.

  • İki ayrı platform üzerinde geliştirilmiş yazılımların konuşması için en etkili yoldur. Mesela .NET platformu ile J2EE platformunda geliştirilmiş iki yazılımın ortak veri kullanıp bir birlerine bilgi akışını XML ile yapmak mümkündür.
  • İki ayrı donamın içinde de mümkün olmaktadır. İki ayrı telefon hattının telefon tuşları ile bilgi topladığını düşünelim. Toplayan bu bilgilerin uygulamaya iletilmesinin en etkili yolu yine XML kullanmak olacaktır. Çağrı merkezlerindeki tuşlar ile girilen bilgilerin sorgulanıp cevap dönmesi işlemlerinin hepsinde akış XML formatındaki veri ile gerçekleştirilmektedir.
  • Aynı şekilde çok büyük bir firmanın topladığı bilgiler olduğunu düşünelim. ve bu bilgilerini veritabanlarında tutuyor olsunlar. Başka firmaların bu bilgiyi kullanma taleplerine en iyi cevap bilgiyi bir web servisi ile XML olarak sunmak olacaktır. Çünkü veritabanına doğrudan erişim yapmalarını istemeyeceklerdir.
  • Bu konuda bir çok örnek verilebilir fakat bu kadarının konuyu anlamaya yardımcı olacağını düşünüyorum.


    XML ile HTML Arasında Ne Fark Vardır?


    Başta da söylediğim gibi XML verinin taşıma ve saklama işini yapar. Fakat HTML verinin görünümü ile ilgili düzenlemeleri yapmamıza olanak sağlayacaktır. Mesela bir yazının italik mi, kalın mı, font değeri gibi bilgileri HTML'i kullanarak ayarlayabiliriz fakat verini türünün ne olduğu bilgisini HTML ile belirleyemeyiz. XML ise kullanıcının kendi oluşturduğu etiketlerle verinin biçimi koruyarak onu istediği sisteme ve uygulamaya kolayca taşıyabilmektedir. Aralarındaki en önemli fark HTML'de belirli olarak etiketlerin olması fakat XML'de etiketleri kullanıcının belirliyor olmasıdır.

    Burada iki ayrı işaretleme diline ait bir örnek vermek gerekirse;

    1. Örnek : HTML
    <html>
      <head>
        <title> HTML </title>
      </head>
      <body>
        <h1>Başlık</h1>
      </body>
    </html>
    
    2. Örnek : XML
    <uye>
      <adi>Yahya</adi>
      <soyadi>ÖZTÜRK</soyadi>
      <email>[email protected]</email>
      <ozellikler>
        <boy>177</boy>
        <kilo>75</kilo>
      </ozellikler>
    </uye>
    
    İlk örnekte metinimizin görünümünü ayarladık. Ne nerede çıkacak nasıl olacak diye. İşte bunu HTML kullanarak yaptık fakat ikinci örnekte verimizin görünümünden çok biçimi ile ilgiledik.


    XML Dokümanı


    XML dokümanları ilişkisel veritabanlarından farklı olarak hiyerarşik bir yapısı vardır. Bu yapı kendine has kuralları da beraberinde getirmektedir. Şimdi örnek bir XML dokümanı oluşturalım ve buradaki birimleri teker teker tanıyalım.
    <Uyeler>
      <Uye uye_id=”1”>
        <adi>Yahya</adi>
        <soyadi>ÖZTÜRK</soyadi>
        <email>[email protected]</email>
        <yetkiDerece>1</yetkiDerece>
      </Uye>
      <Uye uye_id=”2”>
        <adi>Volkan</adi>
        <soyadi>VERİM</soyadi>
        <email>[email protected]</email>
        <yetkiDerece>1</yetkiDerece>
      </Uye>
      <Uye uye_id=”3”>
        <adi>Yaşar</adi>
        <soyadi>GÖZÜDELİ</soyadi>
        <email>[email protected]</email>
        <yetkiDerece>1</yetkiDerece>
      </Uye>
    </Uyeler>
    
    <?xml version="1.0" encoding="ISO-8859-9" ?> bu satır başlangıç etiketidir ve kapanış etiketi yoktur. Üç adet özniteliği vardır ve “version” özniteliği verilmek zorundadır. “version” özniteliği XML dosyasının versiyonunu belirtir ve bu bilgi dokümanı parse(okuma) edecek uygulama için gereklidir. “encoding” özniteliği doküman içerisindeki dil seçeneğini belirtmek için kullanılır. Ben burada Türkçe dil setini kullandım.

    <Uyeler> </Uyeler> etiketi ise kök (root) etikettir ve XLM dokümanın da en az bir tane bulunmak zorundadır. Bu etiket diğer bütün etiketleri içerisine almak zorundadır.

    <Uye uye_id="..."> </Uye> etiketi çocuk (child) etiket olarak isimlendirilir ve element olarakta bilinir. Buradaki uye_id bir özniteliktir ve öznitelik değerleri “” arasında verilmek zorundadır.


    Genel kuralları belirtmek gerekirse;
    • XML dokümanında her alan bir etiket çifti arasında belirtilir ve açılan her etiket kapatılmak zorundadır.
    • Etiketler büyük küçük harf (case sensitivity) duyarlıdır.
    • Bir element içerisinde başka bir element açılmış ise o element kapanmadan diğeri kapatılamaz, yani hiyerarşi bozulamaz.
    • XML'de boşluk karakteri (white space) göz önüne alınır.
    • <, >, ", ', & bu karakterler XML içerisinde kullanılamaz. Bunların yarine sırasıyla < yerine &lt;, > yerine &gt;, " yerine ", ' yerine &apos;, & yerine &amp; kullanılmalıdır.
    • Doküman içerisinde en az bir element olmalıdır.

    Tüm bu kurallara uyarak oluşturulmuş dokümanlara iyi yapılanmış anlamında, “well-formed” adı verilir.


    XML hakkında daha detaylı bilgi için :

    http://www.softwareag.com/turkiye/XML_Kutuphanesi/
    http://www.w3.org/XML/
    http://www.w3schools.com/xml/
    http://xml.silmaril.ie/

    kaynaklarını kurcalamanızı tavsiye ederim.


    Hazırlayan : Yahya ÖZTÜRK , Kaynak : Verivizyon

Really Simple Syndication

RSS Nedir?


RSS aslında bir veri paylaşma standardı, ben haber kağıdı diye adlandırıyorum. XML ile yazılmış ve w3c (http://www.w3.org/) tarafından belirlenmiş bir standart'da olmak zorunda olup mantık olarak dekont gibidir. Yani içerisinde bazı standart alanlar ve değerleri vardır. RSS de bunun gibi, haberleri "başlık", "eklenme tarihi", "haber" vs gibi bilgileri haber bazında standartlaştırarak çeşitli alanlarda rahat kullanılmasını sağlayan bir veri yayın türüdür.


RSS'in faydaları nelerdir?


RSS'leri çoğu sitede görür olduk artık. Bu neyi ifade eder; o sitedeki gelişmeleri RSS yayını ile RSS okuyucu bir programdan veya RSS okuma destekli internet araçlarından rahatça takip edebilmeyi sağlar. Şu an bir günde onlarca sitede onlarca yeni haber/gelişme çıkıyor ve yayınlanıyor. Bunların rahat takibi için RSS kullanırız. RSS okuyucu programımıza birkaç siteden RSS kaynağı belirterek tüm o sitelerdeki gelişmeleri anında TEK YAPIDA özelleştirebileceğimiz yapıda kolayca görebiliriz. Hatta artık çoğu eposta okuyucu rss destekli geliyor, tarayıcılar rss okuyabiliyor. Hatta birçok cep telefonunda bile rss desteği konmaya başlandı.


RSS Hangi alanlarda kullanılır?


Haber ve haber kaynaklı çoğu alanda kullanılabilir. Yenilikleri duyurmak adına çoğu alanda kullanıldığı gibi blog'lar da RSS destekleri ile günlüklerdeki yeni entry'leri RSS ile kolayca takip edebilirsiniz.


RSS teknik olarak nasıldır?


RSS kaynakları XML tabanlı bir etiketleme dili ile yazılır. Tam teknik detayları şu adreslerde bulabilirsiniz :
http://blogs.law.harvard.edu/tech/rss ()
http://www.mnot.net/rss/tutorial/ (*)
http://searchenginewatch.com/sereport/article.php/2175271


RSS okumak için hangi programları kullanabilirim?


Online (Web tabanlı) :
http://www.pluck.com/ ()
http://reader.rocketinfo.com/desktop/ ()

Windows için :
http://www.pluck.com/ (*)
http://www.sharpreader.net/ ()
http://www.rssbandit.org/
http://www.rssreader.com/
http://www.feedreader.com/

Linux için :
http://www.nongnu.org/straw/ (*)
http://liferea.sourceforge.net/ (*)
http://akregator.sourceforge.net/ ()
http://developer.imendio.com/wiki/Blam

MacOSX için :
http://www.newsgator.com/Individuals/NetNewsWire/ (*)
http://www.utsire.com/shrook/ (*)
http://www.newsfirerss.com/ (
*)
http://www.opencommunity.co.uk/vienna2.php (
*)


RSS Kaynkalarını nereden bulabilirim?


http://turkce.blogspot.com/ adresinden çok büyük bir arşiv bulabilirsiniz. Ayrıca :
http://www.syndic8.com/feedlist.php (alt kısımda language'den Turkish seçilerek sadece türkçe rss kaynakları listelenebilir)
Aynı zamanda mfyz.com'daki son yazılanlar, günlük gelişmeleri, yeni dökümanları rss ile takip edebilirsiniz. Bunun için sitenin alt bölümünde bulunan RSS butonuna tıklayarak ilgili rss'in url'sini rss okuyucunuza ekleyin.
Hazırlayan : Mehmet Fatih YILDIZ

PHP Nedir?


PHP sunucu tabanlı html içine gömülmüş (html-embed) bir betik(script) dilidir. Daha açık bir anlatım ile, internetteki forum, anket, oyunlar, mesaj tahtaları gibi kullanıcının aktif bir şekilde müdahalede bulunduğu yapıları oluşturmaya yarayan web programlama dillerinden biridir. PHP ile inanılmaz yetenekli, yazılımsal sayfalar oluşturabilirsiniz. Örnek olarak burada dökümanlara puan verebiliyor, kaç kişinin okuduğunu görebiliyorsunuz. Veya forumda istediğinizi yazıp cevaplar alabiliyorsunuz. Bunlar dinamik olarak kullanıcının hareket/isteklerine göre değim gösteriyor. Bunlar php ile yapabileceğiniz basit uygulamalar. Çok daha karmaşıklarını da görmüşsünüzdür/yapabilirsiniz. PHP dili C, Java ve Perl dilleri üzerinde geliştirildiğinden bu dilleri bilen arkadaşların php'yi öğrenmeleri zor olmayacaktır.


PHP'ye Nereden Ve Nasıl Başlamalı?


PHP'ye bence başlamanın iki yolu var. Eğer zaman çok önemli değilse, internetteki makaleleri inceleleyerek bol bol basit ve fonksiyonel kodlar yazmak. Bu sayede kodlardaki hatalarla uğraşırken, farklı yöntemler ararken inanılmaz bir pratik ve php bilgisi kazanırsınız. Kendiniz kodlar üreterek de php'yi daha iyi sindirerek öğrenmiş olursunuz.
İkinci yol ise zamanı kısıtlı ve/veya bir an önce öğrenmek isteyenlere... Öncelikle bir kitabevine gidip 1-2 saat php kitaplarını inceleyin. Aralarında en güzel ve en kolay öğreneceğinizi düşündüğünüz kitabı alın. Aslında kapağını sevmeniz bile yeterli. Zira hepsinin içeriği hemen hemen yakın ve giriş seviyesi için teorik bilgi dışında çok fazla uygulama içermiyorlar. Kitaptakileri teker teker uygulayın. Örnek kodları yazarak işin püf ve teorik genel kısımlarını öğrenmiş olursunuz. Bundan sonra internetteki makaleleri okuyarak php'nin içine girebilirsiniz. Kitapta öğendikleriniz php'nin "p"sini bile oluşturmaz. Çünkü php açık kaynak bir dil olduğundan, sürekli yeni kütüphaneler, her yeni kütüphane içinde yüzlerce yeni fonksiyon gelir. Şu anda php manual'daki fonksiyonların sayısı benim göz kararım ile 3-5 bin civarındadır. (Sadece listeye bir göz atmıştım.) Bu fonksiyonların hepsini öğrenmek için ne beyin dayanır ne de göz. İşinize yarayacak kütüphaneleri ve fonksiyonları öğrenmeniz için php ile neler yapılabilir? sorusunun yanıtısı iyi bulmanız gerekir.
PHP ile önereceğim kısımlar şimdilik bunlar; her iki yolda da interneti iyi kullanıp php manual'ı iyi kullanmanızı öneririm.

Hazırlayan : Mehmet Fatih YILDIZ

Popüler Etiketler

editor coding ide php phpstorm jetbrains deployment version control svn git html css less search google twitter jquery javascript widget oyun htaccess mod_rewrite url cookie assets iphone social mfyz facebook ie browser spam sql query injection kurulum nasıl pharma hack wordpress icon ikon grafik download firefox banner calendar logo startups radio button switch wanda digital workspace mdb2 pear form input textarea select network portfolio rss parse xml apple laptop notebook compile compiler macosx windows linux app on-the-fly cache apache istatistik sosyal medya lifestream proje css3 browsers support api generator mysql db code kontrol yapıları if while ajax opengraph optimization fql design table session job developer mail newsletter subscription fstab ntfs konsol terminal regex blog database mssql pgsql bootstrap ubuntu optimizasyon analyse procedure export tool dokuman ipad object internet statistics date diff zaman tarih internet explorer js license auth http wireless prepare execute kampanya doritos tytz framework gimp iOS media graph route router ui ux icons örnek kod server open source lisans signature imza music www subdomain redirect crossdomain link xmlhttprequest mootools seo meta mobile itunes nedir development web app service free ios kitap login webkit tebrik osx player plugin share app store store in-app purchase purchase verification integration storekit itunes connect cms connect sitemap ruffles subversion language style html5 chart screen box insanlar applications xhtml ipucu howto