17 Ağustos 2011 Çarşamba

SQL ile tabloya kolon eklemek, çıkartmak, değiştirmek

Mevcut tabloya kolon eklemek için

ALTER TABLE TABLONUNADI
ADD KOLONUNADI datatipi --(string,int gibi)


Mevcut tablodan kolon silmek için

ALTER TABLE TABLONUNADI
DROP COLUMN KOLONUNADI

Değiklik yapmak için

ALTER TABLE TABLONUNADI
ALTER COLUMN KOLONUNADI datatipi --(string,int gibi)

XML'i string olarak alıyorsanız temizlemek için

public static string[] XMLTemizle(string p_xmlText) {
p_xmlText = RemoveWhitespace(p_xmlText);
p_xmlText = p_xmlText.Replace("SicilSorgu>", "");
p_xmlText = p_xmlText.Replace("/SicilSorgu>", "");
string[] sonucArray = p_xmlText.Split('|');
return sonucArray;
}

fonksiyonu ile array'de değerleri almış olursunuz.

c# ile string içinde bir karakter var mı kontrolü

string xxx="";
bool varMi= xxx.Contains('*');

şeklinde yapılıyor ama char aramayacaksanız, işiniz Replace/Split/Remove gibi diğer fonksiyonlarla yapacağınız sihirbazlıklara kalmış oluyor.

16 Ağustos 2011 Salı

Gelecekte neler olabilir?

Uçan Otomobiller

Düşünsenize; otoyolların yeşil alanlarla kaplı olduğu, bisikletin altında kalmadıkça ezilme tehlikesinin olmadığı bir dünya sizce de mükemmel olmaz mıydı?


Neyse ki uzmanlar bir süredir bu fikir üzerinde çalışmalar yapıyor. Uçan araba konseptine en yakın araçsa şimdilik Terrafugia Transition. Tasarım olarak uzay çağı otomobillerini pek andırmasa da Terrafugia'nın en büyük özelliği, bir düğme ile kanatlarını açarak uçak moduna geçebilmesi. Karada saatte 200 kilometre hız yapan araç, havada 220 kilometre hıza ulaşabilecek teknolojiye sahip. Yani çok kısa bir gelecekte arabamıza atlayıp havaalanına gitmek, oradan da istediğimiz yere yine kendi vasıtamızla ulaşmak mümkün olabilecek. Peki bu araçları yollarda görebilmek için daha ne kadar beklememiz gerekiyor? Belki de düşündüğümüzden çok daha yakın bir gelecekte ayaklarımızı yerden kesen bu otomobillerle tanışabileceğiz; çünkü kulağımıza gelen haberlere göre Terrafugia'nın seri üretimi Türkiye'de "Planet Green" adlı bir şirket tarafından gerçekleştirilecek. Onun için 200 bin dolar biriktirmek için biran önce kolları sıvasanız iyi olur.



Transatlantik Tüneli

Eğer bu hayal gerçekleşirse, Atlantik Okyanusu'nu aşabilecek devasa bir denizaltı tüneli sayesinde Londra'da kahvaltı edip, öğle yemeğini Times Square'de yemek mümkün olabilecek.

Bununla birlikte Jules Verne'in büyük eserinden esinlenmiş gibi duran projenin önünde şimdilik çok sayıda teknik engel var. Projede, Londra- New York arası 5500 km'lik mesafenin tüp geçidin içinden geçecek ve saatte 8000 km hıza ulaşabilecek manyetik bir trenle bir saatte kat edilmesi amaçlanıyor. Bununla birlikte tüp geçidin okyanus yüzeyinde oluşabilecek fırtınalardan, hareket halindeki gemilerden ve Atlantik Okyanusu dibindeki yüksek basınçtan etkilenmemesi gerekiyor. Kısacası üzerinde yıllardır konuşulan projenin gerçekleşebilmesi için hem çok para hem zaman hem de emek harcamak gerekiyor. Üstelik de ses duvarını aşabilecek hızlara ulaşan hipersonik yolcu uçaklarından bahsetmeye başladığımız bir çağda. Yani transatlantik tünel projesi şimdilik ne yazık ki boş bir hayal gibi görünüyor.


Görünmezlik Pelerini

Herkesin saklamak istediği şeylerinin olduğu bir dünyada kim bir görünmezlik pelerinin arkasında Harry Potter gibi aniden yok olmayı istemez ki?

Günümüzde askerlerin kamuflajı ve çok daha zırhlı araçların yapılması için özellikle askeri alanda bu konuya ilgi büyük. Şimdiye kadar yapılan araştırmalar sonucunda uzmanlar, insan saçının onda biri genişliğindeki mikroskobik objeleri gizlemeyi başarmıştı. Fakat Birmingham Üniversitesi'nde geliştirilen, aynaya yerleştirilerek oluşan kalsit adlı bir kristal prizma sayesinde ilk kez insan gözünün görebileceği boyutlarda bir obje, bir ataç yok edildi. Kalsitin ışığı bükme özelliği ve iki ışına ayrılması sonucu oluşan göz yanılsamasının objeleri görünmez kıldığını belirten uzmanlar, kristal pelerinin saklayacağı objeden 20 kat büyük olması gerektiğini açıkladılar. Şu an doğada insan vücudunu gizleyebilecek boyutlarda kalsit kristalleri var olsa da, daha kompakt bir görünmezlik pelerini geliştirmek için halihazırda çalışmalar yapılıyor. Yani belki de birkaç sene içerisinde biz de Harry Potter ve arkadaşları gibi görünmezlik pelerinlerimizi takarak saklambaç oynayabiliriz.

11 Ağustos 2011 Perşembe

Devexpress grid'i üzerindeki combobox değiştiğinde...

Devexpress gridview bileşeni ile oluşturduğum tabloda benden istenen edit tuşuna basıldığında grid bileşenlerinden birinin combobox olarak çıkması ve buradan seçilen değere göre gridin edit formundan çıkmadan bazı form alanlarının görüntülenmesi, görüntülenmemesi ve bazılarına da çerçeve rengi değiştirilerek renk verilmesi.
Öncelikle bunun için OnCellEditorInitialize="gridim_CellEditorInitialize" içinde işlemler yaptım fakat bunu yaptığımda görünmez olarak getirdiğim alanları combobox için yazdığım script ile görünür kılamadım. Bunların object null referance exception'a neden olması, visible false olunca hiçbir şekilde oluşturulmadıklarını gösterdi.
Bunun üzerine tüm işlemleri javascript ile yapmam gerektiğini anlayıp işe koyuldum.
Öncelikle ilk görüntülemede bir javascript kullanarak combobox için önceden girilmiş değerlere göre bir görünüm elde etmeliydim.Bunun için de gridin Edit edilme fonksiyonunundaki kontrolü ele geçirmem gerekiyordu, ben de javascriptimi "function Edit(key, index)" hazırladım ve içine fonksiyonu çağırmak için gerekli ayarlamaları yaptım. Bu çağırdığım fonksiyon kendi içinde OnGetRowValues isimli bir fonksiyon daha çağırıyor. O da aşağıda görebileceğiniz gibi görünümü etkiliyor.
Görünümleri bir türlü blogumda yapıştıramadığım için biraz şifreli göndermek zorunda kaldım. Kodun içinde aaa yerine < koyarsanız çalışır konuma gelecektir. @"aaadx:aaaASPxGridView ID="gridim" ClientInstanceName="gridim" runat="server" AutoGenerateColumns="False" KeyFieldName="Id" DataSourceID="odsGridim" Caption="BAŞLIĞIM">

aaadx:GridViewDataColumn Name="GuncelleButonu" VisibleIndex="0">
aaaeditformsettings VisibleIndex="0" CaptionLocation="None" Visible="False" />
aaadataitemtemplate>
aaaa id="butEdit" style="color:#3E6B96;text-decoration:none;" onclick="Edit('aaa%# Container.KeyValue.ToString()%>', 'aaa%# Container.VisibleIndex.ToString()%>')" href="#"><%# Container.Column.Caption%>
aaa/DataItemTemplate>
aaa/dx:GridViewDataColumn>
aaadx:GridViewDataComboBoxColumn FieldName="AraDegerlendirmeId" Caption="Combo Baslık" EditFormSettings-VisibleIndex="1" Visible="False">
aaapropertiescombobox TextField="Secenek" ValueField="Id" EnableSynchronization="False" IncrementalFilteringMode="StartsWith">
aaaclientsideevents SelectedIndexChanged= "function(s, e) { OnCountryChanged(s); }" />
aaa/PropertiesComboBox>
aaa/dx:GridViewDataComboBoxColumn>
aaa/Columns>
aaa/dx:ASPxGridView>"


@"function Edit(key, index)
{
gridim.StartEditRow(index);
gridim.GetRowValues(index, 'kolon1;kolon2;kolon3', OnGetRowValues);
//Yukarıda kolon1, 2, 3 için değerlerini almayı düşündüğünüz column isimlerini yazıyorsunuz...
}

function OnGetRowValues(values) {
var value = values[0];
//Edit fonksiyonundan gelen ilk kolon1 için alınan değer bu oluyor, bundan gelen değere göre görüntüyü değiştireceğimizi varsayıyorum..
if (value != 0) {
var obj2 = gridim.GetEditor("kolon3").GetMainElement();
var obj = gridim.GetEditor("kolon4").GetMainElement();
//burada görüntüsünü değiştirmeyi planladığınız kolonları alıyorsunuz

obj.style.border = "0px solid gray";
obj2.style.border = "0px solid gray";

if (value == 4) {
//buradaki değere göre koşulları belirleyip,su ise bunu yap diyorsunuz ...
gridim.GetEditor("kolon3").SetVisible(true); //görünür yap
gridim.GetEditor("kolon4").SetVisible(true);

obj.style.border = "2px solid gray";
obj2.style.border = "2px solid gray";
obj.style.BackColor = "white";
obj2.style.BackColor = "white";
}
else if (value == 5) {
//vidividi...
}
else {
gridim.GetEditor("kolon3").SetValue(""); //içini boşalt

obj.style.border = "0px solid whitesmoke";
obj2.style.border = "0px solid whitesmoke";
//görünmez yap, gibi....
gridim.GetEditor("kolon3").SetVisible(false);
gridim.GetEditor("kolon4").SetVisible(false);
}
}
}"

Javascript ile bir form elemanına odaklanmak

Formunuzda
< inp ut type="text" name="focuslan" id="focuslan" >
adıyla bir form elamanınız, örnekte bir textbox'ınız olduğunu varsayalım, bunun üzerine odaklanmak için
script type="text/javascript"
func tion Odaklan() {
document.getElementById("focuslan").focus();
}
/script

scriptini kullanmanız, bu fonksiyonuda istediğiniz yerde çağırmanız yeterli, örneğin form yüklendiğinde veya bir "button"a tıklandığında...


Dünya değişime ayak uyduramıyor

Tüketim toplumlarından oluşan dünya, artık kendi hızına yetişemez oldu. İpad ve iPhone yenilikleriyle sarsılan Nokia'yı, en yenilikçi firmalar listesinde geçen yıl birinci sırada olan Facebook ve Microsoft'un da takip ettiği düşünülüyor. Facebook bu yıl listeye hiç giremezken, Microsoft 38 basamak birden düşüş yaşadı.
Bakalım ne tür atılım ve yatırımlar olacak :)

Telefon sektörüne de değinirsek, telefonlarda android işletim sistemi ile başarı yakalayan firmalar dolayısıyla iphone piyasada kendine geniş bir yer açmak için yeni ipad5 telefonunu söylentilere göre 200$ civarında satışa sunacak.

Gelecek ise bence kesinlikle tablet PCler ve tablet PC teknolojilerinde olacak. Bu yayılım bilgisayar üreticisi firmaları etkileyeceği kadar, telekominikasyon ve cep telefonu firmalarını da çok etkileyecek. Cep telefonundan herhangi bir şey kullanmanıza, tablet PCniz varken ihtiyaç duymayacaksınız. Küçük ekran kullanımına son. Yaşasın tablet PCler :)

Artık skype gibi telefon özelliklerini de internetten karşıladığınızda telefonunuzu kaldırıp atabilirsiniz. Ben böyle yapmayı planlıyorum açıkcası. Size de tavsiye ederim :)

Javascript kendi makinanızda çalışıyor ama serverda hata vermeden çalışmıyorsa...

... mutlaka scriptinizde hata vardır.

Hatayı görmek için
1- Firefox üzerinde firebug ile kontrol yapabilir veya
2- Internet explorerdan ekteki resimdeki ayarları yapıp, hataya düştüğü anı yakalayabilirsiniz.

Bu arada şunuda belirteyim internet explorerde menü ve status bar default olarak görüntülenmiyor. F10 ile menüyü görüntüleyebilir, View->Toolbars dan da status barı görünür kılabilirsiniz.

4 Ağustos 2011 Perşembe

Harry Potter bitti :(




Eveeet çoktandır beklediğim filme gecikmeli olarak gittim. Harry Potter serisiyle ilgili söylemek istediğim en önemli şey Severus Snape rolündeki Alan Rickman'ın başarısıdır. Bence filmdeki oyuncuşuğu rolleri her ne kadar oldukça az da olsa takdir etmeğe değer, benim en favori karakterim de tüm seri boyunca sayesinde Snape oldu. Karakter ile oyuncu arasındaki değişiklik de dikkat ettiyseniz süper makyajın kanıtı.

Bir diğer süper şaşırtıcı oyuncu değişimini Draco'nun babasını oynayan Jason Isaacs için söyleyebiliriz.Saç insanı ne kadar da değiştiriyor değil mi? :)) Gerçi tüm Harry Potter karakterlerinde bu çarpıcı değişim söz konusu. Eğer siz de Harry Potter serisini izleyenlerdenseniz oyuncuların normal hayattaki görüntüleri sizi şok edecek.


Ve gelelim filme... Filmde açık kalan sorularım ve bana göre açık kalan noktalar oldu. Kitabı bayağı bir süre önce okuduğumda bu şekil düşünmediğime göre, anladığım kadarıyla kitapta beni tatmin eden açıklamalar filmde atlanmıştı. Görsel efektler çok güzeldi. Daha yeni gittiğim transformansdan çok daha iyiydi hatta.
Genel olarak çok güzel filmler serisiydi. Harry Potter, Yüzüklerin Efendisi, Star Wars filmlerinin en büyük başarısı hiç var olmayan bir dünya ve yaratıklar silsilesini tamamen içimize sindirmiş olmaları ve bu karakterler üzerinde konuşabiliyor olmamız. Mükemmel hayal güçlerine ve tabii bunları hayata geçirebilen bilgisayar efektlerine teşekkürler.