01 Ağu 2008 Yaratıcı Programcılardan Öğrenmenin 14 Yolu Kategori: Yazılım Etiketler: MicrosoftYazılım 0 Yorum Programcılar için genellikle "inek", "asosyal" ve "çok çok sıkıcı" denir. Yaratıcı bireyler olarak düsünülmezler. Fakat bunun gerçekle uzaktan yakından alakası yok. Kod yazmak, dünyanın en yaratıcı islerinden bir tanesidir. Programcılık gerçek kontrol demektir. Sıfırdan bir sey yaratmak muhtemelen yaratcılıgın en iyi örnegidir. Bir yazılım veya web sitesi, programcı nereye isterse oraya gider. Bir seyi yapmanın bir çok yolu vardır. Bir web sitesi için programcının bir framework yazması gerekir. Ve bu noktaya ulasmak için elinde olan tek sey bir fikirdir. Programcılar yaratıcı çözümler bulmak zorundalar, yoksa yaratamazlar.Programcılar sıradısı düsünmenin harika örneklerini sergilerler, çünkü sırayı onlar yaratır. Bakın yaratcılıgımızı doruga çıkarmak için programcılardan neler ögrenebiliriz: 1. Yeni Bir Dil Ögrenin Programcılar sürekli yeni diller ögrenirler, bazen gerektigi için, bazen eglenmek için. Kendinizi bildiklerinizle ve rahat kullandıklarınızla sınırlamayın, gidin ve yeni bir yetenek edinin. 2. Sıfırdan Baslayın Eger yazılım üretiyorsanız, ise yarı yoldan baslayamazsınız. Önce ilk adımı atmak zorundasınız. Bazen bir probleme yaratıcı bir çözüm bulmanın yolu en basa gidip tekrar ileri bakmaktır. 3. Her Seyi Sorgulayın Her seyi sorgulamak, her kabullenmeyi yeniden ele alıp dogrulugundan emin olmak demektir. Programcılık tamamen, en temel varsayımları ele alıp bunların üzerine insa etmektir. Eger temelde bir yanlıs varsa, yazılım düzgün çalısmaz.Yaratıcılık bazen kabullenmelerle sınırlıdır. Yeni çözümler varsayımları tekrar ele alıp yeni bakıs açılarıyla yeniden baslayarak ortaya çıkar. 4. Keyif Için Yapın Eger bir programcı tanıyorsanız bilirsiniz ki sürekli bir seyler üretiyor. O günkü isini bitirse bile sırf zevk için daha saatlerce kod yazıyor. Isi aynı zamanda hobisi.Sürekli yeni fikirler ve çözümlerle ugrasmak angarya olmamalı. Bunu bir refleks olarak sürekli yapmalısınız. Ve bu sizi heyecanlandırmalı. 5. Denemenin Yollarını Arayın, Hiç Durmadan Programcılar, yazdıkları kodun mümkün olan en etkili kod olduguna emin olmak için onu sürekli degerlendirirler. En ufak bir degisiklik bile bir yazılıma diz çöktürebilir. Sürekli test etmek ve gelistirmek, yazılımın her parçası için çok önemlidir.Fikirler sürekli olarak titizlikle denenmeli ve ara ara gözden geçilirilmeli. Fikirleriniz zamanla degisir, az ya da çok. Onları sürekli denemek ve sadece üzerlerinde düsünmek, fikirlerinizi degerlendirmenin en iyi yoludur. 6. Tutkuyla Baglanacagınız Bir Sey Bulun Eger bir programcıyla iki dakikadan fazla konusma fırsatınız olmussa farketmissinizdir ki programcılar islerine tutkuyla baglıdırlar. Programcılıgı yerler, içerler ve solurlar.Kendi fikirlerinize ve projelerinize tutkuyla baglı mısınız? 7. Araçlarınızda Uzmanlasın Programcılar kullandıkları araçlar hakkında sürekli bir seyler ögrenir ve sürekli onları kullanmak konusunda uzmanlasırlar. Iyi bir programcı sürekli olarak ihtiyacı olan yazılımları daha etkili kullanmanın yollarını arar. Araç kutusunu sürekl i gelistirmeyen bir programcıya zor rastlarsınız.Yeteneginiz ne olursa olsun, yaratıcılıgınız kullandıgınız araçlarla sınırlı. Onları kullanmak konusunda ne kadar uzmanlasırsanız o kadar yaratıcı olursunuz. 8. Soyut Iliskiler Kurun Bilgisayarı telefon olarak kullansaydınız ne olurdu? Bir web sitesini kelime islemci olarak kullansaydınız? Insanlar digerlerinin tam su anda ne yaptıgıyla ilgilenirler miydi? Skype, Google Docs ve Twitter gibi projeleri yaratan insanların ortak bir özelligi var: Görünüste soyut olan kavramları iliskilendirebiliyorlar. "Söyle bir sey olsa?"'ları alıp denemek, farklı ve yaratıcı düsünmek için mükemmel bir yol. 9. Yapıyı Bir Araç Gibi Düsünün, Bir Kısıt Gibi Degil Insanlar yaratıcılıgı büyük bir boslukla iliskilendirip fikirlerini sınırlardan bagımsız olusturmaya çalısırlar. Ancak bu, yaratıcılık konusunda büyük bir aldatma. Sınırlar her yerde. Onları görmezden gelemezsiniz, ancak onlarla çalısmayı umabilirsiniz. Programcı, kullanıdıgı dilin ve araçların sınırlarını bilir ve onların etrafından dolasır. Bu sınırlar onun, sınırlar etrafında dolasan yapılar kurmasını saglar. Bir seyin etrafından nasıl dolanılacagını bulmak, bazen daha büyük bir fikir dogurur. Gereklilik, icadın yaratıcısıdır. 10. Hiç Bir Seyi Denemeden Silip Atmayın Anaokulu ögretmeniniz haklıydı: Aptalca soru diye bir sey yoktur. Eger üçüncü kurala uyup tüm varsayımlarınızı sorguluyorsanız, bir seyi denemeden çalısmayacagına emin olamazsınız. Çalısmasa bile, yeni bir fikir üretmenizi saglayabilir.Bazen bir prototiple baslayıp onu denemek en iyisidir. Eger çalısmazsa çöpe atın. Çalısırsa tebrikler: bir sonraki harika fikrinizi buldunuz. 11. Her Zaman Daha Basit ve Zarif Çözümler Arayın Iyi bir programcı en basit çözümün her zaman en iyisi oldugunu bilir. Karmasık çözümler tek bir sey ortaya çıkarır: karmasa. Pratik çözümler her zaman uzun vadede daha iyi çalısırlar.Fikirlerinizin yeniliginin büyüsüne kapılıp pratikligini unutmayın. Bir problemi çözmenin en iyi yolu, en basit olandır. 12. Baskalarının Isleri Üzerinde Çalısmaktan Çekinmeyin Internet'in güzelligi, her zaman aradıgınız çözümü bir baskasının zaten bulmus olmasıdır. Yeni bir yazılım üretirken her zaman mevcut kodları kullanmak iyidir. Tekrlegi tekrar icad etmenin manası yok.Yeni bir fikri uygularken her parçasını bastan yapmak zorunda degilsiniz. Zaten bulunmus fikirleri kullanın ve onları daha iyi bir seye dönüstürün. Mükemmel bir fikir bazen yalnızca baska bir fikri degistirmekten ibarettir. Gmail harika bir örnek. Klasik e - postaya yeni özellikler ekleyerek e - postayı bastan yarattılar. 13. Isbirliginden Çekinmeyin En iyi projeler, tek bir programcı tarafından degil, aynı amaç etrafında toplanmıs bir çok harika programcıların ellerinden çıkmıstır. Müthis bir ekip kurun, en iyi fikirleri kimden gelirse gelsin kullanın, ve herkesin katılmasını saglayın. 14. En Basitten En Güzeli Çıkarın Programcılar en basit kodları tekrar tekrar kullanırlar ve bu kod parçaları tek baslarına basit de olsa bir araya geldiklerinde harika bir ürüne dönüsürler. Hangi yaratıcı projede çalısırsanız çalısın, detaylara önem verin ancak en önemlisi, o detayların tüm resim üzerindeki etkisine dikkat edin.Kaynak:bildirgec.org
25 Tem 2008 Yazarx.Com Yayında + Sporyazarlari.Com Yenilendi ! Kategori: Benden Etiketler: ASP.NET 1 Yorum Sporseverlerin yakından takip ettigi sporyazarlari.com`da yeniledi ve kullanıcılarını bir çok sürpriz bekliyor. Sizlerin islerini kolaylastırmak için bir çok yeni modül eklendi. Yepyeni bir site Yazarx.Com yayında ! Aylarca üzerinde çalıstıgım proje yazarx.com sonunda bitti ve siteyi bugün yayına alabildik. Her iki site içinde sunu söyeleyebilirim ki "Yok Böyle Bir Site"...
25 Tem 2008 Her Yazılımcının Bilmesi Gereken 10 Konsept Kategori: Yazılım Etiketler: MicrosoftYazılım 1 Yorum 10 Iliskilsel VeritabanlarıIliskisel veritabanları, çok büyük web servislerinde kötü performanslar sergiledigi için son zamanlarda sevilmiyor. Ancak yazılım dünyası daha uzun bir süre onları kullanmaya devam edecek. Iliskisel veritabanlarında veriler tablolarda kayıtlar olarak tutuluyor ve genellikle SQL adı verilen dil ile bu veriler sorgulanıyor. SQL'in veri ekleme, silme, güncelleme, filtreleme ve birden çok tablodaki verileri bir arada getirme gibi güzel yetenekleri var.Iliskisel veritabanlarında veri yazıp okuma isini performanslı bir sekilde halledebilmek için SQL, stored procedure'ler (yerlesik yordamlar), constraint'ler (kısıtlamalar) gibi pek çok konuya hakim olmak gerekiyor.9 GüvenlikHack olayları ve veri güvenligi önem kazandıkça güvenlik bilgisinin de önemi artıyor. Veri güvenligi; kullanıcı yönetimi, yetkilendirme, bilgi aktarımı gibi pek çok kavram içeren genis bir konu.Kullanıcı yönetimi, bir sistemde her kullanıcının kendisini ilgilendiren bilgilerle muhattap olması ve diger kullanıcıların bilgilerini görememesi ile alakalı. Yetkilendirme, kullanıcıların yalnızca izin verilen islemleri yapabilmeleriyle alakalı. Daha çok sirketleri ve is akısı bulunduran sistemleri ilgilendiriyor. Yeni gelistirilen OAuth protokolü, web servislerde güvenligi saglamak konusunda yardımcı oluyor. Bu sistemi flickr kullanıyor.8 Cloud ComputingCloud Computing, bir isin daha hızlı yapılması için aynı anda birden fazla bilgisayarın çalıstırılması esasına dayanan paralel programlamadan yola çıkılıp gelistirilmis bir yöntem. Yararlananılabilecek hizmetlerin zaman, kullanıcı yogunlugu gibi parametrelere baglı olarak degismesi esasına dayanıyor.7 Es ZamanlılıkEs zamanlılık, birden fazla isin bir programın kendi içinde aynı anda yapılması ile alakalı. Örnegin java ile yazılan uygulamalarda bunun için thread'ler kullanılıyor.Üretici / Tüketici modeli tipik bir örnek. Üretici durumunda olan kısım sürekli olarak islenecek verileri üretiyor, tüketici olan kısım ise sürekli olarak bu verileri alıp isliyor. Bu iki kısım aynı anda çalısıyor. Her thread'in kendi içinde çalısma mantıgı ayrı olsa da thread'ler verileri aynı anda ve ortak olarak kullandıgı için çalısırlarken yapabilecekleri hataları önlemek uzmanlık gerektiriyor. En karmasık thread kütüphanelerinden birisi Doug Lea tarafından üretilmis ve java çekirdeginde yerini almıs.6 CachingHafif uyku'nun kaseleme dedigi caching, normalde veritabanında tutulan verilerden çok sık kullanılanların hızlı ulasılabilecek bir yere alınması ve buradan hızla kullanılması anlamına geliyor. Örnegin bir kitap siteniz varsa ve geçen haftanın popüler kitaplarını listeleyen bir kısım mevcutsa, bu verileri her gerektiginde hesaplamak yerine haftada bir kez hesaplayıp uygun bir yere kaydediyor ve gerektiginde buradan okuyorsunuz.Cache'lenen verilerin tamamını bellekte tutmak maliyetli bir islem oldugu için, bellekte tutulacak verilerin seçilmesi için uygulanacak yöntemleri seçmek yine uzmanlık gerektiriyor.Facebook'un da aralarında oldugu bir çok modern uygulama, Brad Firzpatrick tarafından gelistirilen memcached adlı sistemi kullanıyor.5 HashingHashing, verilere hızlı ulasmak için baska bir yöntem. Bu yöntemde, her verinin içerigine bakılarak bu veriye özel daha kısa bir veri üretiliyor ve bu kısa veriler index olarak kullanılıyor. Index içerisinde arama yapmak da çok daha hızlı oluyor.Hashing yapılırken her verinin farklı bir hash kodunun olması ve bu hash kodlarının hızlı ulasımı mümkün oldugu kadar kolaylastıracak sekilde ayarlanması farklı bir uzmanlık gerektiriyor.4 Algoritmik Karmasıklık SeviyesiÇok yaygın olarak büyük O harfi notasyonuyla ifade edilen karmasıklık seviyesi, bir algoritmanın hızının, algoritmanın isledigi veri miktarına göre degisimini belirliyor. Örnegin O(n) ile ifade edilen bir algoritma, n tane veriyi t zamanda isliyorsa 2n tane veriyi 2t zamanda isler. O(n^2) ile ifade edilen algoritma ise n tane veriyi t zamanda islerken 2n tane veriyi t'nin karesi kadar zamanda isler. Islenen veri miktarları çok büyük olunca, bunları isleyen algoritmanın karmasıklıgı çok büyük önem kazanıyor.3 Katmanlı MimariKatmanlı mimari, bir yazılımın çalısması için gereken bilesenlerin piramit seklinde yapılandırılması gerektigini ifade ediyor. Piramitin her katmanındaki bilesenin çalısması, kendi altında bulunan bilesenlere baglı olabilir ancak kendi üzerinde çalısanlara baglı olamaz.Bu konuda bilgi alınabilecek Structure 101 ve SA4J adlı iki güzel kaynak var.2 Kurallar ve SablonlarIsimlendirme kuralları ve sablonlar üzerinde en çok durulan ve muhtemelen en önemli tasarım desenleri.Isimlendirme kuralları yazılım gelistirilirken kullanılan tüm isimlendirmelerin ortak kurallara dayanmasını gerektiriyor. Örnegin JUnit adlı java bileseni, test metodlarını, isimlerinin basında yer alan test kelimesi sayesinde tanıyor.Sablonlar ise verilerin gösterimlerinin verilerden bagımsız bir sekilde yapılması ile ilgili. Örnegin XML verilerini göstermek için XSL sablonları kullanılır.1 ArayüzlerArayüz, yazılımdaki en önemli konsept. Yazılım gelistirirken problemleri mümkün oldugunca basit modellemek ve bu modellere mümkün oldugunca basit ve anlasılır arayüzler sunmak gerekiyor.Bu konudaki tavsiyeler söyle:Asla ileride kullanıslı olabilecek metodlar yazmayın. Minimalist olun. Daha önce yaptıgınız hatalar ile yüzlesmekten korkmayın. Hatalarınızı düzeltmeye açık olun. Sabırlı olun ve süreçten zevk alın. Adım adım ilerleyin. Kaynak:bildirgec.org
18 Tem 2008 Dünya Fenerbahçeliler Günü... Kategori: Fenerbahçe Etiketler: FenerbahçeFutbol 1 Yorum Tüm FENERBAHÇE'lilerin dünya Fenerbahçeliler gününü kutlarım...
17 Tem 2008 INETA Summer Hit 2008 Kategori: Yazılım Etiketler: Seminer 1 Yorum Aktiviteye katılım için kayıt olmanız gerekmekte. Kayıt için tıklayınız.