by Suat TUNCER
31. July 2009 12:24
Bir veritabanı nesnesini yanlışlıkla sildiğinizi düşünün, bunun farkına fardığınız ilk beş saniye ağzınız açık gözleriniz irice açılmış bir şekilde ekrana bakakalırsınız. Ardından geçen iki saniye de okkalı bir ha...tir çekersiniz acı bir nidayla. Ardından içerdiği dataları düşünür, müşteriyi düşünür sonrada oluk oluk terlemeye başlarsınız. Ama bu durum Oracle'da başınıza geldiyse bu kadar sıkıntı yapmaya gerek yok, oldukça kolay bir şekilde geri alabilirsiniz. Silinen nesneler DBA_RECYCLEBIN ve USER_RECYCLEBIN tablolarında tutular, burayı sorgulayarak korkularımızla yüzleşiriz.
SELECT OBJECT_NAME, ORIGINAL_NAME FROM USER_RECYCLEBIN sorgusunu çalıştırdığınızda ORIGINAL_NAME sütününde sildiğiniz nesnenin adını görüyorsanız rahat bir nefes alın artık :).
Nesnenizin yanında bulunan OBJECT_NAME değerini aşağıdaki gibi sorulayıp datalarınızı görebilirsiniz.
SELECT * FROM "BIN$b/yFhnhEQCzgQ6wWAQtALA==$0"
tablonuzu geri almak için FLASHBACK TABLE [tablo_adi] TO BEFORE DROP sorgusunu çalıştırdığınızda tablonuz ve datalarınız geri gelecektir.
Hadi geçmiş olsun.
by Suat TUNCER
2. April 2009 08:34
Merhaba,
Uzun zaman önceydi .Net Framework ilk sunulduğunda yaygın güvenlik senaryolarından farklı olarak CAS (Code Access Security) adında bir güvenlik modeli ile karşılaşmıştık ve o zaman pek de önemsenmemişti. Daha sonra .Net Framework 2.0 ile biraz daha önemine değinilmiş fakat geliştiriciler yine de kullanmayı pek tercih etmemiş tercih edenlerde kısıtlı bir grup olarak kalmıştı. Şimdi 2009 yılındayız ve CAS, WPF ile Browser uygulamaları geliştiriken iyice farkediliyor artık. Düşünün ki bir browser application içerisinde, standart bir Windows Form instance'ı aldığınız anda bile StackWalk'lar ardı ardına tetikleniyor ve özel bir ayrıcalık verilmediyse doğrudan securtiy exception fırlatılıyor. Microsoft, "kendim yazdım kendime" tadında bir deyişle SilverLight ve WPF
için geliştirdiği Security SandBox'ı önemli ölçüde CAS ile modellemiş
durumda. Bu haliyle bakınca olabildiğine CAS'lı bir WPF application duruyor karşımızda.
CAS'in bir diğer güzelliği de WPF veya herhangi bir .Net uygulamasında kendinize özel Security SandBox'lar geliştirebilmenizi sağlamasıdır. CAS detayları için için buraya bakabilirsiniz.
by Suat TUNCER
28. March 2009 11:26
Merhabalar,
Son zamanlarda "Dependency Property" çok fazla kullanmaya başladım ve bu zamana kadar kullanmadığım için kızdım kendime. Özellikle WPF ile birlikte bir nesnenin hemen hemen bütün özellikleri "Dependency Property" olarak tanımlandığı için ve bazı özel noktalarda eventlara ihtiyaç duyduğumuzda imdadımıza yetişmektedirler. Aşağıya basit bir kod örneği ekliyeyim de tam olsun.
private void Page_Loaded(object sender, RoutedEventArgs e)
{
DependencyPropertyDescriptor dc; // bizim için bağlamayı çekecek olan nesne ;-)
dc = DependencyPropertyDescriptor.FromProperty(
Button.IsMouseOverProperty, // durumuna bağlanmak istediğimiz özellik
typeof(Button)); // bağlama çekilecek tip
dc.AddValueChanged( // nesne ve method ilişkilendiriliyor
button1, // IsMouseOver özelliği kullanılacak nesne
Button_MouseOver); // IsMouseOver özelliği değiştiğine çalışacak method
}
void Button_MouseOver(object sender, EventArgs e)
{
/*
method tetiklendiğinde eğer;
IsMouseOver true ise arkaplan kırmızı yapılıyor
IsMouseOver false ise arkaplan sarı yapılıyor.
*/
Button senderButton = sender as Button;
if (senderButton.IsMouseOver)
senderButton.Background = Brushes.Red;
else
senderButton.Background = Brushes.Yellow;
// böylece galatasaray selam gönderilmiş oluyor :-)
}
istenirse foreach döngüsü kullanılarak, bir control collectionın tamamına da uygulanabilir.
i love .net
by Suat TUNCER
23. March 2009 15:13
Merhabalar
Daha öncede belirtmiştimdir belki. Anadolu üniversitesinin e-öğrenme portalını oldukça başarılı bulurum. Malum 6 senedir AÖF'de okuyunca bolca kullanımış oluyor insan. Bu sene artık son sınıfdayım ve bitirmeye niyetliyim. Bu yüzden fırsat buldukça çözmek için sınav sorularını indirmiştim. Belki başkasınında işine yarar diye linkleri veriyorum. Sorular PDF formatındadır. Açmak için sisteminizde Adobe Acrobat yüklü olmalıdır ama benim tercihim Foxit PDF Reader'dan yanadır.
Not : Yazdırmadan önce bir kez daha düşünün illa yazıdaracaksanız da bir A4 sayfasına önlü-arkalı olmak üzere 4 sayfayı sığdıra da bilirsiniz yada kafaniza göre taklın
.
by Suat TUNCER
15. March 2009 00:20
Merhabalar,
Uzun zamandır http://suattuncer.blogcu.com adresinde yazmıyordum, bunun sebebi biraz da blogu taşımak isteyişimdi. Gelin görün ki blogcu.com yönetiminden istememe rağmen bana ait dataların bir yedeğini alamadığım için henüz buraya aktaramadım. Burayı daha fazla boş bırakmak istemediğimden ilk postumuda atmış olayım dedim. Eski adresimi ziyaret edenler oranın şu anda harap bir halde olduğunu göreceklerdir, CSS ile oynayıp dataları uygun bir şekilde almak için o hale getirdim :-). ilk fırsatta 2005'den buyana tüm yazılarımı yorumlarıyla birlikte buraya taşıyacağım.
by Suat TUNCER
15. December 2008 08:47
Bayramlar yaşardık hep birlikte,
en büyüğümüzden en küçüğümüze bir arada.
Bir bayram daha yaşadık
ama en büyüğümüz bizden uzakta
hem de çok uzakta.
"Dade"miz,
kendi dilimizde annemiz,
masmavi gözleriyle, son bir gülümseyerek ayrıldı aramızdan.
Mekanın cennet olsun güzel ninem.
by Suat TUNCER
31. October 2008 21:05
Çok uzun olmamakla beraber bir süredir proje geliştiriken NHibernate kullanıyorum. Aslında oldukça pratik bir tool. Özellikle nesnelerin rahatlığını size sunduğu için odağınızı neredeyse tamamen uygulama katmanına kaydırıyor, buda daha kaliteli, okunabilir ve yüksek oranda object oriented bir kodun orataya çıkmasını sağlıyor.
Yaşadığım bir kaç sıkıntıyı paylaşmak isterim. Create, Update ve Delete işlemlerinde oldukça hızlı ve sorunsuz çalışmasına rağmen sorgulama özellikle de raporlamada çok ciddi performans sıkıntıları var, tabi burada problem birazda benim raporlama kaynağı olarakta object collectionlar kullanmak istememden kaynaklanıyor.
Tavsiyem sorgulamada HQL veya SQL kullanılmasından yanadır özellikle complex raporlama tarzı sorgularda kesinlikle IQuery interfacesi kullanılmalı ICriteria değil. Benim tercihim HQL hernekadar SQL tarzı sıkıcı sorgular yazmak zorunda kalsamda nesne sorguladığım için daha keyifli ve kullanışlı. Gönül isterdiki LINQ ile NHibnernate kardeş kardeş çalışsın mamhif henüz mümkün değil.
// Sorgu Cümlesi hazırlanıyor, SQL cümlesi gibi düşünülebilir
// farkı tablolar herine tipler var
StringBuilder hql = new StringBuilder();
hql.Append("from HighCode.Domain.Content as content ");
hql.Append("where content.ContentType=:type");
// hql cümlesi kullanılarak bir IQuery nesnesi oluşturulur
IQuery query = _session.CreateQuery(hql.ToString());
// parametre eklenir
query.SetParameter("type", ContentType.Article);
// sorgu çalıştırılır
IList<Content> result = query.List<Content>();
by Suat TUNCER
14. October 2008 10:56
İsim şahane acayip çekici işin içine bir MVC patterni eklenince dayanamıyor insan ağzı sulanıyor fakat madalyonun öteki yüzü böyle değil.
Yeni projemizi MVC paternini uygulayarak geliştirmeye karar verdik ve nede olsa "yabancı" değildir diye microsoft cephesinden Asp.Net MVC Framework'ü incelemeye başladık mamahif indirdiğim sample ile yüklediğim sürüm arasındaki kodlarda bile farklıklar var. Controler methodlarında ciddi değişiklikler yapılırken bir obsolute veya beta attribute bile kullanmadan iterasyonu yapılmış. beta olarak lanse edilsede bu ürün, bence gelişimi için uzunca bir zamana daha ihtiyacımız var.
Ayrıca ne olacak bu web'in Microsoft'tan çektiği. Web uygulamları geliştirme konusnda web formlar ile çok farklı bir yaklaşım getirmişti ki çok değil geçen senelerde browser application adıyla WPF 'dan bahsetmeye başladı. Şimdide tekrar bir değişiklik ile Asp.Net MVC. tamam güzel hiç birini iptal etmiyor hep üzerine katıyor ama her biri biraz eksik kalıyor. Artık birini mükemmelleştirmeli diye düşünüyor ve buradan bizzat kendilerine sesleniyorum :-).
Bir web teknolojisi istiyorum.
- OOP olsun.
- Hafif olsun
- Modellemesi kolay olsun
- Zengin olsun.
by Suat TUNCER
13. September 2008 13:35
Yasaklansın arkadaş toplu taşıma araçlarında yüksek sesle kişisel müzik (herkese dinlettiğin müzik nasıl halen kişisel olur o ayrı) dinlemek yasaklansın arkadaş.
Ataşehir'den Bakırköy'e gelenece kadar, iett otobüsünde ve deniz otobüsünde kaç çeşit müzik dinlemek zorunda kaldım bilmiyorum. Burdan sana sesleniyorum bonus kafa, metal müzik iyi olabilir ama bana dinletmek zorunda değilsin ve sen dik saçlı bebe, pop müzik tam sana göre olabilir ama bana göre değil. Hayır müziklede aram gayet iyidir ve müziksin duramam yaşayamam belkide. Beni asıl ifriteden, o kulaklıklardan çıkan tiz ses.
Gelişmiş toplumların en büyük özellikleri bir arada yaşarken ortak yaşam alanlarında bir birlerini rahatsız etmemeleridir. Ben artık sürekli yanımdakini, berimdekini, müziğin sesini kısmaları konusunda uyarmaktan bıktım. Bundan sonra yanımda ufak bir makas taşıyacağım ve direk kulaklıklarının kablolarını keseceğim.
Ayrca Sanada diyecek iki çift sözüm ey cep telefonu devi Nokia, ürettiğin her telefonu kişisel deneyim, müzik, resim kişisel de kişisel diye lanse ediyorsun da bu kulaklıklarını neden bu kadar adi yapıyorsun. Yap adam gibi kulaklık sadece takan dinlesin ben dinlemeyeyim.
Bir an önce toplu taşıma araçlarına "Lütfen Yüksek Sesle Müzik Dinlemeyiniz " şeklinde bir uyarı asılması için siz yetkililer harekete geçin. Aksi halde ben kendi uyarı etiketlerimi bindiğim her araça yapıştıracağım.
Bilginize.
536e3748-4d48-4f4c-90df-d0a6690f9b27|0|.0
Tags:
Personal
by Suat TUNCER
1. September 2008 09:53
Barış istiyorum tüm dünya için,
hayatında barışı tatmayan insanlar için,
tasa gütmeden tüm insanların gök yüzene bakmasını ,
mavinin sonzuluğunda mutlu olmalarını istiyorum.
BARIŞ ( Yannis Ritsos )
Çocuğun gördüğü düştür barış,
Ananın gördüğü düştür barış,
Ağaçlar altında sevdalıların sevda sözleridir barış.
Gözlerinin içinde uçsuz bucaksız bir gülümseme,
elinde yemiş dolu bir zembil
ve alnında ter tomurcukları,
-pencerede suyu soğutan testideki damlalar gibi-
akşamüstü eve dönen babadır barış..
Dünyanın yüzünde yara izleri kapanırken,
ağaçlar diktiğimizde
havan mermilerinin kazdığı çukurlara,
yangının kavurduğu yüreklerde,
ilk tomurcuklarını açarken umut
ve ölüler kanlarının boşa gitmediğini bilerek
yana dönüp içerlemeksizin
uyuyabildiklerindedir barış..
Barış yemek kokusudur tüten
akşamleyin arabanın yolda durmasının
korkutmadığı,
kapı çalınmasının dost demek olduğu
ve pencereyi saat başı açmanın,
renklerinin uzaktaki çanlarıyla
gözlerimizin bayram etmesini
sağlayan gökyüzü
demek olduğu zamandır barış..
Barış bir bardak sıcak süt ve bir
kitaptır uyanan çocuk önünde.
Başaklar birbirlerine eğilip ‘İşte,
ışık, ışık, ışık!’ dedikleri
ve ufuk çemberi ışıkla dolup taştığı
zamandır barış..
Hapishaneler onarılıp kitaplıklar yapıldığı zaman,
eşikten eşiğe bir türkü yükseldiği
zaman geceleyin,
cumartesi akşamları mahalle
berberinden çıkan yeni traş olmuş bir işçi gibi
baharda ay buluttan çıktığı zamandır barış..
Geçmiş gün,
yitirilmiş gün olmadığı
sevinç yapraklarını akşamın içine
salan kök
ve kazanılmış bir gün, hak edilen bir
uyku olduğu zaman,
acıyı kovmak için zamanın dört bucağından
güneşin hemen ayakkabılarını
bağladığını duyduğun zamandır barış..
Barış ışınlar demetidir yaz ovalarında,
iyilik alfabesidir tanın dizlerinde.
‘Kardeşim’ dediğin,
‘Yarın kuracağız’ dediğin zaman
kuracağız dediğimizi kurunca
türkü çağırdığımız zamandır barış..
Ölüm yüreklerde az yer kapladığı
ve güvenli parmaklarda mutluluğu
gösterdiği zaman bacalar,
ikindi vaktinin büyük karanfilini
ozan ve proleterya aynı şekilde kokladığı
zamandır barış..
İnsanların sıkışan elleridir barış,
dünyanın masasındaki ekmektir,
gülümsemesidir annenin.
Budur yalnızca.
Başka bir şey değildir barış.
Ve toprakta derin karıklar açan
sabahlar tek bir sözcük yazarlar:
Barış.
Başka bir şey değildir barış..
Dizelerimin rayları üzerinde
buğday ve güller yüklenmiş
geleceğe doğru yol alan trendir barış.
Kardeşlerim,
barış içinde derin derin soluk alıyor
tüm dünya bütün düşleriyle.
Verin elinizi kardeşlerim,
barış budur işte.
c7139745-657d-464b-bfc1-aefe0853125d|0|.0
Tags:
Personal