Karabük Üniversitesi – AngularJS Sunumu

Karabük Üniversitesinde Bilişim Teknolojileri Kulübü‘nün yaptığı Programlama Günlerinde yaptığım AngularJS sunumunu iftiharla paylaşırım.
Speakerdeck üzerinden sunumu görüntüleyebilir, diğer adresten sunumdaki örnekleri indirebilirsiniz (örnekler arasında sunumun pdf hali mevcut).

Sunum: https://speakerdeck.com/rterzi/angularjs
Örnekler: http://rterzi.com/AngularJS.zip

4 Mart 2014 | Posted in Genel | Leave a comment

INET-TR’12 – Sunumlar

Eskişehir, Anadolu Üniversitesinde yaptığımız “PHP Nedir? PHP’ye Giriş” ve “Twitter Bootstrap Framework” sunumlarını speakerdeck’e uzun zaman önce yüklemiştim. Burdan follow backlink verip speakerdeck’i desteklemeye karar verdim (yazı yazmak için bahane).

Özellikle Twitter Bootstrap slaytını sunumdan tam bir gün önce hazırladığım için “Photoshop ile nasıl sunum hazırlanır?”  konusunda yetenek kazandım. Görsel olması dinleyicilerin de beğenisini kazandığı için içim rahat.

PHP Nedir? PHP’ye Giriş: https://speakerdeck.com/rterzi/php-nedir-and-giris
Twitter Bootstrap: https://speakerdeck.com/rterzi/twitter-bootstrap
Speakerdeck hesabım: https://speakerdeck.com/rterzi
Speakerdeck: https://speakerdeck.com/

14 Şubat 2013 | Posted in Genel | Leave a comment

iPhone – Bütün mailleri okundu olarak işaretlemek

iPhone’daki en sıkıcı olaylardan biri olan bütün mailleri tek tek okundu olarak işaretlemekten sıkılan birçok kimse vardır sanırım.

İşte bende onlardan biriydim ve sonunda telefonumda okunmamış 50+ maili görünce bu işe bir çözüm gerek diye düşünmeye başladım.

Sonucun Mortal Kombat’ta aduket çekmekten daha kolay olduğunu söyleyeyim şimdiden.

1. Mail uygulamasını açın ve sağ üst kısımdaki “Edit” butonuna dokunun
2. Herhangi bir okunmamış mesaj seçin (veya okunmuş mesajlara yapılacak işlemler için okunmuş seçin, size kalmış)
3. Sağ alt kısımdaki “Mark” butonuna basılı tutun
4. “Mark” butonunu basılı tutarken daha önceden seçmiş olduğunuz mesaja dokunarak seçimini kaldırın
5. “Mark” butonundan parmağınızı çekin ve yapılacak işlemi seçin (Flag, Mark as Read vs).

Ps: İngilizce dil kullanılan iPhone kullanılarak hazırlanmıştır. Benim telefonumda Edit-Mark butonları yok diyenler lütfen iPhone’unu Android destekli bir telefonla takas ederek üstüne para, buğday, un veya tavuk alsınlar ve ekonomiye can versinler.

17 Eylül 2012 | Posted in Genel | Tagged , , | Leave a comment

PHP Microblog uygulaması – Linux’12 Yaz Kampı AİBÜ

Merhaba arkadaşlar

Eğitimin son gününde yaptığımız microblog sisteminin kurulumu için gerekli olan birkaç adımı sizlere anlatacağım.

Öncelikle http://www.rterzi.com/microblog.zip adresinden projeyi indirin.

İlk olarak bir veri tabanı ve gerekli tabloları oluşturmalıyız.

Web tarayıcınızdan phpmyadmin’i (localhost:8080/phpmyadmin) açın ve yeni bir veri tabanı oluşturun. İstediğiniz ismi verebilirsiniz.

Collation (karşılaştırma) olarak utf8_general_ci veya utf8_turkish_ci seçin.

Boş bir veri tabanı oluşturduk, şimdi microbog’un çalışması için gerekli tabloları oluşturmamız gerek.
Tabloları yeniden oluşturmak yerine daha önce yaptığımız veri tabanını dump ettim (microblog.sql), size sadece bu dosyayı phpmyadmin’e yüklemek kalıyor.

phpmyadmin’de veri tabanımız seçiliyken üst menüdeki Import (içeri aktar) linkine tıklıyoruz.
File to import kısmından microblog.sql dosyamızı seçiyoruz ve Go butonu ile işlemi onaylıyoruz.
Karşımıza “Import has been successfully finished, 13 queries executed.” benzeri mesajı gelecek ve göreceğiniz gibi messages ve users adında 2 tablomuz oluşmuş olacak.

Daha sonra microblog sisteminin veri tabanına bağlanması için gerekli olan ayarları yapmamız gerekiyor.

microblog/includes/config.php dosyasını açın. Burada site ile ilgili ayarlar yer alıyor.

DOC_ROOT: Sitenizin bulunduğu dizin. Örneğin adresi localhost:8080/microblog ise değeri ‘/microblog’ olmalı.
DB_HOST: Veri tabanınızın bulunduğu sunucu adresi. Veri tabanınız kendi sunucunuzda olduğu için değer olarak ‘localhost’ yazıyoruz.
DB_USERNAME: Veri tabanına erişimi olan bir kullanıcı adı girmemiz gerekiyor. Sadece microblog için bir veri tabanı kullanıcısı oluşturup bu ismi girebilirsiniz fakat biz varsayılan kullanıcıyı yazdık ‘root’.
DB_PASSWORD: Veri tabanı kullanıcısına ait parolayı yazıyoruz.
DB_NAME: Oluşturduğumuz veri tabanının adını giriyoruz.

Daha sonra microblog klasörünü web sunucunuza taşıyın.

Son olarak kullanıcıların profil resimlerini yükleyeceği klasöre yazım izni vermemiz gerekiyor.
Debian’da yazım izni vermek için aşağıdaki adımları izleyin:
Sanal makinaya root olarak login olun.
public klasörünün bulunduğu dizine giriş yapın: cd /var/www/microblog/public
uploads klasörüne yazım izni vermek için kodu çalıştırın: chmod 777 uploads

Window$ üzerinde paylaşımlı klasör kullananlar ekstra olarak windogs üzerindeki klasöre de yazım izni vermeli.

Artık sisteminiz kullanıma hazır. Kendi üyeliğinizi oluşturabilirsiniz.

Uygulamanın çalışan örneğine http://rterzi.com/microblog/ adresinden erişebilirsiniz.

Herhangi bir sorunla karşılaşmanız durumunda yukarıdaki microblog’a mesaj atabilir veya rt [at] rterzi.com adresine e-mail gönderebilirsiniz.

Vatana millete hayırlı olsun.
Ramazan

Not: Bu yazının kopyası microblog.zip arşivinin içinde README.txt olarak yer alıyor.

4 Temmuz 2012 | Posted in PHP | Tagged , , , | Leave a comment

jQuery Dropdown Menu

Yapılmışı varken sıfırdan yapmak pek mantıklı olmasa da, piyasada bulunan pluginlerin çıkarttığı sorunlar yüzünden (eski tarayıcılarda kıçının başının oynaması vs.) kendim olabildiğince basite indirgenmiş bir plugin yazdım.
Sadece menü olarak değil, farklı şekillerde de kullanmak mümkün. Demo sayfasından inceleyebilirsiniz.

jQuery fonksiyon:

// drop-down menu
(function( $ ) {

    $.fn.dropdown_menu = function(o){

        var settings = $.extend({
            'auto_hide'      : false,
            'save_state'     : true,
            'sub_menu_class' : 'sub',
            'ico_down_class' : 'ico_down',
            'ico_left_class' : 'ico_left'
        }, o);

        $(this).each(function(){

            var menu_ul = $(this);
            var sub_menus = menu_ul.find('.' + settings.sub_menu_class);

            sub_menus.hide();

            sub_menus.each(function(){

                var that = $(this);
                var menu_id = menu_ul.attr('id');

                $(this).parent().find('a:first').addClass('ico_left').click(function(){

                    var siblings = $(this).parent().parent().find('li');

                    if(settings.auto_hide) {
                        sub_menus.slideUp();
                        menu_ul.find('.' + settings.ico_down_class)
						       .removeClass(settings.ico_down_class)
							   .addClass(settings.ico_left_class);
                    }

                    if(settings.save_state) {

                        if (!that.is(':visible')) {
                            $.cookie('menu_order_div', menu_id, {path: '/'});
                            $.cookie('menu_order', siblings.index($(this).parent()), {path: '/'});
                        } else {
                            $.cookie('menu_order_div', '', {path: '/'});
                            $.cookie('menu_order', '', {path: '/'});
                        }

                    }

                    if (that.is(':visible')) {
                        that.slideUp();
                        $(this).removeClass(settings.ico_down_class)
						       .addClass(settings.ico_left_class);
                    } else {
                        that.slideDown();
                        $(this).removeClass(settings.ico_left_class)
						       .addClass(settings.ico_down_class);
                    }
                    return false;
                });
            });

        });

        if(settings.save_state && $.cookie('menu_order') && $.cookie('menu_order_div')) {
            var li_items = $('#' + $.cookie('menu_order_div')).find('li');
            var active_li = li_items[$.cookie('menu_order')];
            $(active_li).find('.' + settings.sub_menu_class)
                        .show()
                        .parent()
                        .find('a:first')
                        .removeClass(settings.ico_left_class)
                        .addClass(settings.ico_down_class);
        }

    }

})( jQuery );

Örnek html:

<ul id="left_menu_1" class="left_menu">
	<li class="title">Main Title</li>
	<li>
		<a href="#">Title</a>
		<ul class="sub">
			<li><a href="#">Sub menu 1</a></li>
			<li><a href="#">Sub menu 2</a></li>
			<li><a href="#">Sub menu 3</a></li>
			<li><a href="#">Sub menu 4</a></li>
		</ul>
	</li>
	<li><a href="#">Title 2</a></li>
	<li>
		<a href="#">Title 3</a>
		<ul class="sub">
			<li><a href="#">Sub menu 1</a></li>
			<li><a href="#">Sub menu 2</a></li>
			<li><a href="#">Sub menu 3</a></li>
			<li><a href="#">Sub menu 4</a></li>
		</ul>
	</li>
	<li><a href="#">Title 4</a></li>
</ul>

<script type="text/javascript">
$(document).ready(function() {
    $('.left_menu').dropdown_menu();
    //$('.left_menu').dropdown_menu({auto_hide:true, save_state:false});
});
</script>

Demo: http://www.rterzi.com/blog/demo/jquery.dropdownmenu/dropdownmenu.html
Download: http://www.rterzi.com/blog/demo/jquery.dropdownmenu/jquery.dropdownmenu.zip

22 Haziran 2012 | Posted in jQuery | Tagged , , | Leave a comment

İlk makale

Merhaba,
Uzun zamandır aklımda olan ve iş-güçten vakit ayıramayıp açamadığım blogu sonunda açmış bulunuyorum. Bu sefer de makale yazmaya vakit ayıramıyorum. Bu işe bir el atmak gerek dedim ve öyle de yaptım, sonunda ilk makalemi yazıyorum.
Pek zorlanmıyorum çünkü klasik bir başlangıç olacak bu. Hiçbir zaman değişmeyen ve değişmeyecek olan bir başlangıçla açılışı yapıyorum:

<?php
echo "Merhaba Dünya.";
?>

Hadi hayırlı olsun.

1 Mayıs 2011 | Posted in PHP | Leave a comment