Herkesin kardeşçe, sağlıklı, mutlu bir bayram geçirmesi dileğiyle...
Bilgisayar alanından hareketle yaşamla ilgili her şeyi paylaşmaya çalışan arkadaşların oluşturduğu kollektif bir günlüktür.
Buruk bir bayram daha...
Herkesin kardeşçe, sağlıklı, mutlu bir bayram geçirmesi dileğiyle...
En iyi açık kaynak raporlama araçları
Öncelikler ve zaman kullanımı
Yapmamız gerekenler, yapılması gerekenler var. Mutlaka bir şeyler üretmeyi kafamıza koyuyoruz. Belki de hiç bir şey üretmeden sadece zamanı tüketmeyi kafamıza koyuyoruz. Her halükarda en değerli şey olan zamanı planlamamız gerekiyor. 24 saat aralıksız üretemeyeceğimiz gibi, 24 saat aralıksız zamanı boşa da tüketemiyoruz. Bu durumda 24 saati nasıl değerlendireceğimiz planlamamız gerekiyor. Her ne kadar her zaman hoşunuza gitmeyen şeyleri yapmayın gibisinden öneriler olsa da bazen hoşunuza gitmeyen bazı şeyleri de yapmanız kaçınılmaz. Bunları da zaman planımıza koyuyoruz. Sadece soyut şeylere değil, somut şeylere, en önemlisi insanlara zaman ayırmamız gerekiyor. Bütün bu süreci en iyi şekilde planlamak ve disiplinli bir şekilde uygulamak gerekiyor. Hele ki uğraştığınız, yapmaya çalıştığınız onlarca konu, çalışma, yazı, çizi, düşünme, üretme gibi şeyler varken. İnsanları, sevdiklerinizi dışarıda tutmadan bütün bunları iyi bir şekilde yapmanız gerekiyor. O zaman ne yaparsınız? Öncelik sırası oluşturursunuz. Gerçekten önemsiz olduğunu düşündüğünüz şeyleri yapmazsınız veya geç yaparsınız. Önem sırasına göre işleri yapmaya başlarsınız. Yapamayacağınız, zaman ayıramayacağınız konulara girişmezsiniz. Başkalarından gelen istekleri kendi öncelikleriniz ve konuya göre değerlendirirsiniz.
Düşüncelerim genel ve çok söylenen şeyler oldu sanırım. İlgili yazıdaki ana başlıkları paylaşıp sizi daha fazla sıkmayayım.
Yazıda özetle yaptığınız şeyden zevk alın, güçlü noktalarınıza odaklanın, yaptığınız işte nasıl mükemmel olacağınızı araştırın, önceliklerinizi oluşturun diyor. Ve SWOT adını verdiği bir yöntemi öneriyor.
Zaman planlamasına yönelik olarak bir başka yöntem de Getting Things Done yöntemi. GTD kısa ismiyle belirtilen yöntem için bir çok yazılım aracı da var. Bir ara denedim, ama beceremedim. Kaotik zaman planlaması sanırım benim karakterime yerleşmiş :)
2009 LOÇ Tırmanışı
Dağcılık Federasyonumuzun Kurucusu ve İlk Başkanı
merhum Latif Osman ÇIKIGİL(LOÇ) anısına
geleneksel olarak her yıl düzenlediği
LOÇ ANMA TIRMANIŞI
Bursa Uludağ’da 14 - 15 Kasım 2009 tarihinde gerçekleştirildi.
Zirve yüksekliği 2543 mt
Kamp alanı yüksekliği 2450 mt
Yürüyüş süresi 16 saat.
Gece sıcaklık ~= -10 C
Katılımcı sayısı ~= 160
Panel: Yeni Medyada Nefret Söylemi
İstanbul'da yaşayanlar için bir panel duyurusu.
“Yeni Medyada Nefret Söylemi” konulu bir panel düzenlememizin nedeni, Türkiye’nin gündelik yaşamında öteki olarak işaretlenenlere yönelik ırkçı, zenofobik ve homofobik nefret söyleminin geleneksel medyanın yanı sıra giderek daha yaygın bir şekilde yeni medya ortamında da dolaşıma girmesi ve yeniden üretilmesindeki dikkat çekici artış olmuştur.
Panelde, önce nefret söyleminin kökleri, nefret söyleminin ve nefret suçlarının hukuki zeminde yeri, ardından da yeni medya ortamında nefret söyleminin hangi mekanizmalarla nasıl üretildiği serimlenecektir. Son olarak da, yeni medya ortamında dolaşıma sokulan ve yeniden üretilen nefret söylemine karşı mücadele etmek için olası çözüm yolları tüm katılımcılarla birlikte tartışılacaktır.
Bu panelin düzenlenişinin bizati kendisi de nefret söylemine karşı bir farkındalık bilinci uyandırmayı amaçlamaktadır.
Tarih: 21 Kasım 2009, Saat:13.30 - 17.00
Yer: Tarık Zafer Tunaya Konferans Salonu Tünel/Taksim
Yöneten: Mutlu Binark / Başkent Üniversitesi İletişim Fakültesi
Düzenleyen: Alternatif Bilişim
Konuşmacılar:
- Nefret Söylemi Nedir ve Geleneksel Medyada Nefret Söylemi
Aslı Tunç / İstanbul Bilgi Üniversitesi İletişim Fakültesi - Nefret Söylemi ve Nefret Suçları: Hukuki Boyutu
Ayşe Kaymak/İstanbul Barosu Avukat, Alternatif Bilişim Hukuk Danışmanı - Ana Akım Medyanın Haber Portallarında Nefret Söylemi
İlden Dirini/Özgür Radyo - Toplumsal Paylaşım Ağlarında Nefret Söylemi
Kolektif Üretim adına Eser Aygül/Gazi Üniversites SBE. - Video Paylaşım Sitelerinde Dolaşıma Sokulan Nefret Söylemi
Tuğrul Çomu/Ankara Üniversitesi SBE. - 6.Genel Değerlendirme ve Tartışma
www.alternatifbilisim.org
Java geliştiricilerinin bilmesi gereken 10 şey
- Java'nın ve Nesne Yönelimli Programlamanın hemellerini hatırlayın: Hatırlayın yerine hiç unutmayın demek daha doğru olur sanırım. Buna karşı çıkacak birini de düşünmüyorum.
- Teknoloji kümenizi bilin: Evet, hızlı yazılım geliştirmek, tekerleği tekrar tekrar tasarlamamak, uygun hedef uygun ortam ve teknoloji kullanabilmek için Java'yı, sanal makinelerini, farklı teknolojileri, kütüphaneleri bilmek yararlı olacaktır.
- Farklı J2EE anaçatıyla denemeler yapın: Spring, EJB, vb. farklı J2EE teknolojileriyle denemeler yapıp, uygun olanı seçmeniz iyi olacaktır.
- Bir betik dili öğrenin: Mutlaka Java içerisinde kullanabileceğiniz hatta başka zamanlarda da kullanabileceğiniz bir betik dilini öğrenin (bence Python öğrenin :D )
- Web servislerini nasıl geliştireceğinizi öğrenin: Web servisleri yükselen trend olduğu söylenen ve IBM, Sun gibi büyük firmalar tarafından "pompalanan" şeyler. Gerçekten iyice öğrenin, kullanım gerektiren zamanlarda kullanın.
- Multithread kavramlarını ve uygulamanızda ne zaman kullanmanı gerektiğini öğrenin.
- JDBC ve JPA ile veritabanı geliştirme: Buna açıklama gerekmez sanırım :)
- AJAX ve İstemci tarafında çalışan bir betik dilini (JavaScript) öğrenin.
- Java'nın rakiplerini öğrenin (.NET, Ruby, vb.) ve en iyi IDE hangisidir tartışmalarından uzak durun.
- Ant (hatta MAVEN) öğrenin, Tomcat vb. bir uygulama sunucusunu kavrayın.
Java ve İlişkiler
Association (Birliktelik): İki sınıf arasındaki yapısal ilişkiye verilen isim. Herhangi bir dereceye sahip olacak şekilde aralarında ilişki bulunan sınıflar bu birlikteliğe sahip olurlar. UML gösteriminde düz bir çizgi ile temsil edilmektedir. Bu ilişki bize o iki sınıf arasında mesaj alışverişini sağlayan bir kanalın olduğunu anlatır. Burada Java'da mesaj alışverişinin metot çağrımlarıyla gerçekleştiğini hatırlatmak gerekir. Birliktelikler genellikle referanslar ile gerçekleştirilir.
Aggregation (Münasebet): "Sahip olma" ("possession") ilişkisini temsil eden özel bir birlikteliktir. Dairesel olmama koşulu vardır. Bunun anlamı nesne kendisiyle münasebet kuramaz. Bu yüzden münasebet çizge değil, ağaç yapısı oluşturur. Aggregation "has-a" ilişkisidir. Her iki nesne de kendi bağımsız varoluşlarına sahiptir.
Aggregation-Composition arasındaki farklar
- Aggregation "has-a" (var) ilişkisidir, Composition "contains-a" (içerir) veya "bütün-parça" ilişkisi
- Aggregation'da iki nesne de kendi bağımsız varoluşlarına devam ederler, Composition'da parça'nın ömrü bütün nesnesiyle temsil edilir.
- Composition'ın daha güçlü ilişki olmasına karşın Aggregation daha gevşek bir ilişkidir.
- UML'de Aggregation işi boş köşegen ve düz çizgi, composition dolu köşegen ve düz çizgi ile gösterilir.
- Composition ilişkisindeki "parça"nın sadece bir "bütün"ü olabilir. Aggregation kapsanan tarafta 0..* derecesine sahip olabilir.
Bir örnek Arabadır. Araba Parçalarından oluşur. Bu parçalara sahiptir. Eğer bir Parça yoksa araba bozuktur. Araba Parçalarıyla Composition oluşturur.Kaynaklar:
Ayrıca Arabanın Yolcuları vardır. Yolcular Arabanın Parçası değildir. Eğer bir Yolcu yoksa Araba bozuk değildir. Araba Yolcularına sahip değildir. Araba'da değillerse başka bir yerdedirler. İlişki geçicidir. Yolcular gelir ve gider. Araba ve Yolcular arasında Aggregation ilişkisi vardır.
Her iki ilişki aslında compositiondır. Arabanın hem Parçaları hem de Yolcuları vardır. Farklılık süresindedir. Parçalarla olan ilişki daimidir, Yolcularla olan ilişki geçicidir.
http://faq.javaranch.com/view?AssociationVsAggregationVsComposition
http://ootips.org/uml-hasa.html
http://www.javaworld.com/javaworld/jw-06-2001/jw-0608-java101.html
http://geekexplains.blogspot.com/2008/07/composition-vs-aggregation-whats.html
http://www.bilgisayarkavramlari.com/2008/12/20/birliktelik-munasebet-ve-olusum-association-aggregation-and-composition/
http://stackoverflow.com/questions/1384426/distinguishing-between-delegation-composition-and-aggregation-java-oo-design
http://www.coderanch.com/t/468736/Java-General/java/Aggregation-Java
DISTINCT yerine IN veya EXISTS
DISTINCT kullanmak yerine mümkünse JOIN ifadesinde kullanılan tablo ve koşullar ayrılarak altsorguya dönüştürülebilir, aranan değere ulaşmak için performansı bu tür durumlarda JOIN den daha yüksek olan IN veya EXISTS kullanılabilir(2).
(1)
select distinct m.musteri_no
from tbl_musteri m
join tbl_hesap h
on h.musteri_no = m.musteri_no
and h.kayit_durum = 'A'
and m.musteri_no = 123456
(2)
select m.musteri_no
from tbl_musteri m
where exists (select h.musteri_no
from tbl_hesap h
where h.musteri_no = m.musteri_no
and h.kayit_durum = 'A')
and m.musteri_no = 123456
Özgür Yazılım Göçleri
Basit kod için 7 kural (KISS - Keep It Simple Stupid)
- Okunması kolay olmalı
- Kullanımı kolay olmalı
- Değiştirmesi kolay olmalı
- Gereksiz yere üçüncü parti kütüphane, araç veya teknoloji kullanmamalı
- Basit görünmeli
- Zarif olmalı (sadece gerekli olanı yapmalı, fazlasını değil, az ve öz olmalı)
- Dobra olmalı (gereksiz yere yönlendirmeler içermemeli)
Aynı yazıda ayrıca önemli bir vurgu yapılmış. Bu vurgu basit kodun geliştirilebilmesi için sürekli sınama ve sürekli yeniden yapılandırmanın (refactoring) yapılması (zaten sürekli yeniden yapılandırma yapıyorsanız sürekli sınama da yapmanız ve dolayısıyla bol bol testlerinizin olması gerekir, bu noktada birim testler devreye girer) gerektiğidir.