jQuery ile yatay açılır menü yapımı (horizontal menu)

Sürekli site açılış
haberi verecek değilim :) Şimdi ki yazımda jQuery ve css ile basit bir yatay
açılır menünün nasıl yapılacağına göz atacağız. Başlangıç noktasında ul ve li
etiketlerinden bir hiyerarşi yaratıyoruz. Eğer kodumuza bakarsak yapıyı rahatlıkla anlayabiliriz, bir nevi ağaç yapısı.

	<ul>
		<li><a href="">Deneme</a></li>
		<li><a href="">Deneme</a>
			<ul>
				<li><a href="">asdasd</a></li>
				<li><a href="">fasdfasdf</a></li>
				<li><a href="">asdfasdf</a></li>
			</ul>
		</li>
		<li><a href="">Deneme</a></li>
		<li><a href="">Deneme</a>
			<ul>
				<li><a href="">sdafasgdasdf</a></li>
				<li><a href="">sdgsadf</a></li>
				<li><a href="">sdfsdfasd</a></li>
			</ul>
		</li>
		<li><a href="">Deneme</a></li>
	</ul>

Sonrasında css ile birlikte biçimlendirmemizi yapıyoruz. Buradaki önemli olan nüans ikinci seviyedeki ul etiketlerini
display:none yaparak ilk etapta görünmemesini sağlamak sonrasında da
position:absolute ile pozisyonunu sabitliyoruz.

    body{font-family:Verdana,Helvetica;font-size:11px;background-color:#333}
	.menu{}
	.menu ul{list-style:none;padding:0;margin:0}
	.menu ul li{float:left;padding:5px;margin:2px;}
	.menu ul li a{color:White;text-decoration:none;font-weight:bold;}
	.menu ul li:hover{background-color:#5a5a5a}

		.menu ul li ul{display:none;position:absolute;}
		.menu ul li ul li{float:none;border-bottom:1px solid #ededed}
		.menu ul li ul li:hover{border-bottom:1px solid #5a5a5a;background-color:Transparent}

En son işlem olarak da jQuery ile üzerine gelinen li nin altında bulunan ul nin görünmesini sağlamak. Neden bu ul görünmüyordu çünkü css de displayını none yapmıştık ;) Koda
baktığımızda gayet basit bir mantığın olduğunu göreceksiniz. Daha değişik açılma
efektleri için
jQuery’ nin efekt
kategorisine göz atabilir ve rahatlıkla
uygulayabilirsiniz. Burada aklıma gelmişken projenize

jquery.js
yi eklemeyi unutmayın ;)

 $(document).ready(function() {
        $("#menu1 ul li").hover(
            function() {//mouse üzerindeyken çalışacak fonksiyonumuz. (mouseover)
                $("ul", this).slideDown("fast");
        },
            function() {//mouse üzerinde değilken çalışacak fonksiyonumuz. (mousout)
                $("ul", this).slideUp("fast");
        });
    });

Aşşağıda ki örneklerde menülerin farklı şekillerde nasıl çalıştığını görebilir ve kaynağı görüntüleyerek kodları alabilirsiniz. Bir yazının daha sonuna geldik, kalın sağlıcakla..

Burak Yılmaz resmi web sayfası yayında

Trabzonspor’ a Fenerbahçe’ den Gökhan Ünal karşılığında gelen Burak Yılmazın resmi web sayfası yayına girdi. Vallahi biz yaptık diye demiyorum gayet hoş bir site oldu. Özellikle Emrah‘ ı tebrik ediyorum güzel bir iş çıkardı. Allah izin ederse ilerleyen günlerde daha güzel işlerede imza atacağız. Burağa bol gollü günler bizede bol eğlenceli bol bol kahkahalı sevgi ve huzurlu günler diliyorum.

Burak yılmaz resmi web sayfasi

EYOF 2011 Avrupa Gençlik Olimpiyatları – Trabzon Resmi web sayfası yayında

Olimpiyat bayrağının Türkiye’ de ilk kez dalgalanacağı ve 49 ülkeden 4000 sporcunun katılacağı EYOF 2011 Avrupa Gençlik Olimpiyatları’ nın yeni resmi web sitesi yayına girdi. Szn Yazılım olarak bu işe imza atmaktan büyük gurur ve onur duyduk. Her gün geliştirmesine devam ettiğimiz sitenin önümüzdeki haftalarda çok daha güzelleşeceği inancındayız. Şimdilik eleştiriler hep olumlu yönde, elimizden geldiğincede her türlü fikir ve görüşü değerlendirmeye çalışıyoruz. Olimpiyatların Ülkemize ve Trabzon’ umuza hayırlı ve uğurlu olmasını ve kazasız belasız en iyi şekilde icra edilmesini diliyoruz.

EYOF 2011 Avrupa Gençlik Oyunları Trabzon'da

jQuery ile haber manşet yapımı

Hazırdan ne kadar kaçarsak yaptığımız işin kontrolüde bir okadar elimizde olur. Son zamanlarda elimden geldiği kadar hazır scriptlere bulaşmıyorum. Sebebide ekleme çıkarmalarda yada kişiselleştirmelerde yaşadığım problemler ve beraberinde çok büyük zaman kayıpları. Bu noktada jQuery dertlere deva oluyor desem sanırım abartmış olmam. Bu yazımda çoğu haber sitesinden aşikâr olduğumuz manşet mekanızmasından yapacağız. Kodları gördüğünüzde jQuery nin bize neler sunduğunu daha iyi anlayacaksınız. Kodlar gayet açık ve net, istediğiniz gibi istediğiniz yerini basitçe değiştirebilir, şekilden şekile sokabilirsiniz. Buyrun size jQuery manşet mekanızması;

Örneği buradan indirebilirsiniz !


Yazılım geliştirmek ve namaz kılmak !

İlk bakışta garip bir başlık gibi  gelebilir fakat bu tecrübemi sizlerle paylaşmak istiyorum. Her ne kadar başlıkta yazılım geliştiren yazdıysamda esasında işi bilgisayarda birşeyler üreten tüm kullanıcılar için geçerli olan en büyük sorun şüphesiz aşırı konsantrasyondan dolayı veya uzunca saatler aynı şeyler üzerinde çalışmaktan çok basit problemleri çözememe basit yerlerde takılı kalma gibi durumlar kaçınılmazdır. Bu seferde cümle devrik oldu. Şöyle yazmayı deneyeyim, eğer yüksek konsantrasyonlu bir işle meşgulseniz, yaşadığınız en büyük problem zaman zaman basit problemleri çözememe yada basit problemleri çok karmaşık şekilde çözümleme gibi durumlarla karşılaşıyorsunuzdur. Çoğu zaman öyle kapılırızki yemek saati gelir geçer, uyku saati gelir geçer fakat biz haleda kastırırız. Bunun yanında sürekli oturmaktan oramız buramız tutulur, şeklimiz şemalimiz değişir. Namaz kılarak bu durumlardan çok rahat kurtulabiliyoruz. Namaz saatlerinde işlerimizi bir kenara koyup bu dini vecibeyi yerine getirerek ilk etapta kafamız güzel bir şekilde dağılıyor, sonrasında namaz kılarak hareketsiz kalan vucudumuz kendine geliyor, namaz esnasında çoğu zaman aklımıza parlak fikirler yada çözüm yollarıda geliyor. Bu yazı kimilerine çok itici gelebilir fakat yazma gereği hissettim, eğer bir gün bunu denerseniz demek istediğimi çok daha iyi anlayacaksınız…

Visual studio jQuery otomatik kod tamamlama (IntelliSense)

Otomatik kod tanımlamayı garipsemeyin çünkü intelliSense kelimesinin Türkçe karşılığını bulamadım :) Kısaca intelliSense şu demek; kodu yazmaya başladığınızda otomatik olarak ilgili kodcuklar listeleyen, aynı zamanda fonksyionların açıklamalarını alacağı parametreleri görebildiğimiz, işimizi hızlandırmaktan başka bir şeye yaramayan bir özellik. Bu işlemi jQuery içinde yapabiliyoruz, yani $(document) noktaya bastığımızda ilgili fonksiyonlar geliyor. Bunun için http://code.jquery.com/jquery-1.2.6-vsdoc.js adresindeki vsdoc dosyasını indiriyoruz. Sonrasında http://docs.jquery.com/Downloading_jQuery#Current_Release adresinden en son jQuery dosyasını indiriyoruz. Yapmamız gereken tek şey indirdiğimiz jquery-1.2.6-vsdoc.js dosyasının adını, indirdiğimiz jQuery dosyası adı -vsdoc şeklinde düzenliyoruz. Garip bir cümle oldu bende farkındayım, resimlerden bakarsak daha iyi anlayabiliriz.

visual studio jQuery IntelliSense solution explorer

 Visual studio jQuery otomatik kod tamamlama (IntelliSense)

 Visual studio jQuery otomatik kod tamamlama (IntelliSense)

Artık önümüzde jQuery yazmak için hiç bir engel kalmadı. Başka bir yazıda görüşmek üzere..

Asp.Net projelerimizde neden jQuery kullanmalıyız ?

Bilmeyenler için jQuery bir javascript çatısıdır. (framework). Bilidiğiniz üzere web ortamında kullanıcı tarafında yapmamız gereken aksiyonları javascript ile yapabiliyoruz. Web 2.0 ile birlikte kullanıcı tarafındaki özellikler bir hayli arttı ve önem kazandı. Bu olayın şüphesiz öncüleri Facebook ve Google gibi isimler oldu. Hayatımıza giren yeni özelleklerden bazıları şu şekilde; sayfa yeniden yüklenmeden sunucu taraflı işlemler yapabilme (ajax), sekme (tab), aramalarda otomatik tamamlama (auto complete) gibi.. Asp.Net geliştiricilerinin bildiği üzere Ajax Control Kit ile yukarda bahsettiğim işleri çok basit bir şekilde projelerimize uygulayabiliyoruz. Böyle bir imkan varken neden jQuery kullanalım dimi ? Bunun bir çok sebebi bulunuyor, isterseniz bunlara bir göz atalım.

jquery logo

  1. Esneklik: Ajax control kit ile kalıpların az dışına taşmaya kalktığınızda önümüze öyle engeller çıkarki takla üzerine takla atmak zorunda kalırız. jQuery ile bir satırlık kod ile yapacağınız şeyi satırlarca kod yazarak ancak çözeriz, çoğu zaman çözemeyiz bile.
  2. Diğer scriptlerle olan çakışmalar: Projeniz bitmek üzeridir ve sizden istenen son bir özelliğin daha eklenmesi istenir. İnterneti didik didik ararsınız ve bu iş için mükemmel bir script bulursunuz. Scripti projenizde çalıştırmaya kalkarsınız fakat bir türlü çalışmaz çünkü control kit ile çakışmıştır. Durupda pirincin taşını ayıklamak çok uzun zaman alır hatta çoğu zaman taşı ayıklayamazsınız bile :) Burda şunu söyleyebilirsiniz, jQuery kullanılan bir sayfaya farklı bir script eklemeye çalıştığımızda da bu durumun olması olasıdır. Evet doğru fakat bu durum ajax control kit kadar sık karşılaşılan bir durum değildir. Ayrıca jQuery kullanıyorsanız sayfanıza çoğu zaman ekstradan bir script ekleme ihtiyacı duymazsınız, ya kendiniz yazarsınız yada yüzlerce eklentiden bir tanesini alır direk kullanır yada isteğinize göre düzenleyebilirsiniz.
  3. Performans: Siz kullanmasanız bile en basit işler için bile ajax control kit arka planda öyle şeyleri sayfanıza yüklerki performans bu durumdan ciddi anlamda etkilenir. Hatta çoğumuzun başına tarayıcının kitlenmesi gibi durumlar gelmiştir. jQuery ile herşeyin kontrolü bizdedir, biz ne yazarsak o olur, bu yüzden çok daha verimli çalışır.
  4. Tarayıcı uyumluluğu: Bu web tasarımı ile uğraşan herkesin ortak sıkıntısıdır, zaten tasarımı taracıya uydurmak için çeşitli taklalar atıyoruz birde bunun içine ajax control kit girince işkence kaçınılmaz oluyor. Çoğu zamanda elleriniz kollarınız bağlı hiç bir şey yapamıyorsunuz. jQuery tarafında ise böyle bir derdiniz yok bir kere yazın heryerde çalışsın, mobil cihaz tarayıcılarında bile..
  5. Kontrol edilebilirlilik: Eğer yapılan iş sizin kontrolünüz dışındaysa koda, ekleme, çıkarma veya düzenleme gibi işlemler çok zordur. Yeni açtığınız projenize jquery.js yi ekledikten sonra dışarıdan hiç bir scripte gerek kalmadan projenizi sonlandırabilirsiniz. Kodunu yazamayacağınız şeyler içinse jquery eklentilerini gönül rahatlığıyla kullanabilirsiniz.

jQuery dünyasına ilk adımı atmak biraz zor gelebilir fakat içine girdiğinizde kullanması ve kodlanması oldukça kolay bir çatı olduğunu göreceksiniz. Yaptığınız işten bir okadar daha zevk alacağınızın garantisinide ben veriyorum. Şimdilik benden bu kadar ilerleyen günlerde tekrar görüşmek üzere, hoşçakalın..

Uzunca bir aradan sonra..

En son yazımı 31.12.2009 tarihinde yazmışım, pehh epeyde olmuş ! Yazmamaktan çok sıkıldım, bundan sonra haftada en az bir yazı yazmayı planlıyorum. Yazılarımın ağırlığını jQuery ve Asp.net oluşturacak. Geçen süre içerisinde bu konularda epeyce bir şeyler öğrendim, bunları sizlerle paylaşmaya çalışacağım. Birde Blog Ödülleri 2010 var, katılmayı düşünmüyorum ama katılmam yönünde çevremden ciddi anlamda bir baskı var. Düşünmek için önümde 8-9 gün daha var bakalım ne olur, bu arada BÖ! yetkililerine sesleniyorum lütfen bu organizasyonu Aöf sınavlarının olacağa döneme getirmeyin :) Birazdan ders çalıp ardından soru çözeceğim, sonrada üzerimi kuvvetlice giyip Trabzonspor – Galatasaray maçına doğru yollanacağım. Heh tamda bu sırada çayım geldi ! :D Burayı çok özlemişim yahu, tekrar görüşmek üzere..

Pi sayısının paralel bilgisayarlarla hesaplanması

Geliştirme ortamı ve kullanılan süreçler aşağıdaki gibidir;
    ° Bilgisayarlara Pardus 2009 işletim sisteminin kurulması
    ° Bilgisayarlarda tam yetkili (ssh protokollü) aynı kullanıcı adı ve şifreye sahip kullanıcı oluşturulması.
    ° Bilgisayarlara gcc (C derleyicisi) ve OpenMPI (Mesaj Tabanlı Paralel Programlama Modeli) paketlerinin kurulması.
    ° Pi sayısını hesaplayan kodun MPI kütüphanesi ile C programlama dili kullanılarak yazılması
    ° Programın derlenmesi
        $mpicc MPIdeneme.c – o ck
    ° Programın tek bilgisayarda çalıştırılması
        $mpirun –np 10 ck
    ° Programın birden fazla makinada birden fazla süreçle çalıştırılması
        $mpirun –H 192.168.1.5 –H 192.168.1.3 –np 10 ck

MPI Nedir?
    MPI başta dağıtık bellekli sistemler olmak üzere paralel algoritma yazmaya yarayan bir kütüphane standardıdır.Bir programlama dili değildir.MPI kütüphanelerinin C, C++ ve Fortran dili aileleri için sürümleri bulunmaktadır.MPI, “mesaj geçme” mantığına dayalıdır. Değişik işlemciler, birbirleriyle iletiler sayesinde haberleşirler.

MPI kütüphanesine ait bazı fonskiyonlar;

MPI_Init(&argc,&argv)
    MPI_Init fonksiyonunu bütün kodlarınıza eklemeniz gerekmektedir. MPI_Init fonksiyonuna komut satırından da parametre verebilirsiniz ama mecbur değilsiniz. MPI_Init size bir değer dönmektedir bu “MPI_SUCCESS” olursa kod geri kalan MPI_X fonksiyonlarını kullanabilecektir, eğer bu değer dönmezse MPI_X fonksiyonlarını kullanamazsınız.

MPI_Comm_size(comm,&size)
   
Bu fonksiyonumuz proses sayısını bize vermektedir. Genellikle “comm” kısmına MPI_COMM_WORLD üst fonksiyonu yazılmaktadır.

MPI_Comm_rank(comm,&rank)

    Bu MPI fonksiyonu çağıran prosesin sırasını vermektedir. Başlangıçta bütün prosesler 0 veya -1 değerlerini almaktadır. Daha sonra MPI tarafından sıraya sokulunca bütün prosesler numaralandırılmaktadır. Aşağıda ki örneğimizde göreceğimiz gibi makineler 0 dan başlayarak rank(sıra) alacaklardır.

MPI_Get_processor_name(&name,&resultlength)
    İşlemcinin adını ve adın uzunluğunu dönmektedir.

MPI_Wtime( )
    Double deger olarak paralel kodun çalışmaya başlamasından sonra geçen zamanı vermektedir.

MPI_Send(buf, count, datatype, dest, tag, comm)
    Bir sürecin bir diğerine değişken göndermek istediği zaman bu fonksiyon kullanılır. Tek bir değişken gönderilebildiği gibi tamamen bir dizi veya bir dizinin bir kısmı da bir kerede gönderilebilir.

MPI_Recv(buf, count, datatype, source, tag, comm, status)
    Bir süreç, başka bir sürecin gönderdiği değişkeni veya değişkenleri bu fonksiyon yardımıyla alır.

MPI_Finalize( )
    Bütün işlemlerimizden sonra MPI_Finalize diyerek işlemlerimizi sonlandırıyoruz.

MPI_REDUCE(data, result, count, type, op, root,comm)
    Bu fonksiyonumuz N tane makinede oluşmuş sonuçları derleyerek ana proses’ te result dizisinde saklamaktadır. Geri kalan değişkenlerden count “reduce”(alınmış veri) sayısını, type alınan verilerin türlerini, op yapılan alınma işlemlerinin sonuçlarını, root verilerin alındığı prosesleri ve son olarak comm haberleşme ortamının adını (MPI_COMM_WORLD) almaktadır.

Derleyen Emre Tekelioğlu
Kaynaklar;
http://www.mpi-forum.org/docs/mpi21-report.pdf
http://en.wikipedia.org/wiki/Message_Passing_Interface
http://www.grid.org.tr/etkinlikler/egitim/sunumlar/mpi_ornekleri.pdf http://ab.org.tr/ab03/tammetin/114.pdf
http://www.emresururi.com/mpich2/mpich2_rehberi_v1_2.pdf

Projenin orjinal PDF dökümanını ve kaynak kodlarını indirmek için Tıklayın !

Bu akşam parti var !

Diye girmek isterdim fakat benim için yılın sonu, başı ve ortası arasında çok fazla bir fark bulunmuyor. Beni dini bayramlarımız daha çok ilgilendiriyor. Ama görüyorum ki bayramda evine şeker almayan insanlar yıl başında koli koli içkileri evlerine taşıyabiliyor. Her neyse herkes istediği gibi yaşamakta özgür, sadece aklımdaydı ekledim.

Kabaca 2009 da neler gördüm geçirdim bunları yazayım. Özellikle Aralık ayı bir hayli hareketliydi. Amcamın oğlunu (Samet UĞRAŞKAN) askere yollamamız benim için en önemli olaydı. İlk kez bir yakınımı askere uğurlamış olmamdan da olabilir, kendini manevi kardeşim gibi görmemden de olabilir bu olay her nekadar kimseye çaktırmamaya çalışsamda beni bir hayli etkiledi. Koçuma burdan hayırlı teskereler diliyor ve darısı benimde başıma diyorum.

2009′ u genel olarak ele aldığımda, bilgisayarımın masa üstü kağıdı yapacak kadar beni bunaltan bir “Kötü inanları tanıma senesi” oldu desem sanırım çok güzel bir tanım olur. Detaya çok fazla inmek istemiyorum. Ya büyüyorum ve insanları daha iyi anlıyorum yada insanlar gerçek anlamda raydan çıktı. Belkide benim bir kuruntumdur.

Annemin de dediği gibi ne para ne pul en değerli servet sağlık ! Allah’ ıma sonsuz şükürler olsun ki ailecek ciddi bir sağlık problemi olmadan bir seneyi daha geride bıraktık. En güzeli işte buydu, çünkü sağlığın yanında geri kala her ama her şey teferruattan bir adım ileri geçemez.. Hayatımdaki kritik noktalardan biri olan okulda fena gitmiyor, buda beni ayrı sevindiriyor. İnşallah 2010′ da da bu olaylar tekrarlanır.

Şirketi ele almadan geçmem mümkün değil, yukarıda da belirttiğim gibi Aralık ayı bir hayli hareketliydi. Yazılım işine gerekli ağırlığı yavaş yavaş vermeye başladık. Emre Tekelioğlu ve Emrah Karaalan‘ la artık bir aradayız, zaten bir aradaydık fakat şimdilerde aynı çatı altındayız :) Çok güzel ve heyecanlı bir ekip olduğumuza inanıyorum. İnşallah hedeflediğimiz yerlere gelebilir ve insanlara bu işin sadece büyük şehirlerde kokonaca yapılmadığını gösterebiliriz ki bundan en ufak şüphemiz yok. (Kokonaca ifadesini farklı bir yazıda ele alacağım.)

2009′ un bana kazandırdığı en güzel şeylerden biride Yunus Emre Çavuşoğlu oldu. Her konuda fikir alış verişi yaptığımız, kısa zamanda çok şey paylaştığımız güzel insanada buradan sevgilerimi sunmak istiyorum.

Özetlemem gerekirse 2009 güzel bir yıldı. Hayatı biraz daha anladığım, biraz daha büyüdüğüm güzel bir yıl oldu. İnsanları, hayatı, gülmeyi, kod yazmayı değil ama yazacağım şeyi düşünmeyi çok seviyorum. Herkese sevdikleriyle mutlu, huzurlu ve barış dolu yeni bir yıl diliyorum.

Sayfa 5 toplam 23 sayfa1234567891020...Sonraki »