Memik hoca'nın bir sitede yazdığı yazıyı okuyunca aklıma ilk pc'im geldi...
İlk pc'im;
8086 işlemcili Karel Goldstar :) HDD yok 5.25 lik disk var :) Hercules monochrome ekran
Kullanılan programlar GWBasic Turbo-C favori oyunum:robocop
ikinci bilgisayarım 286 işlemcili 1mb ram 20mb hdd VGA Renkli ekran :) favori oyunum:bushido,prince of persia
off ya ne günlerdi :)
Evet yazılım sektörünün geleceğinde SaaS büyük rol oynayacak.Bu konu üzerine daha çok yazı yazmayı planlıyorum fakat daha öncesinde bu servisin ne tür bir platform üzerinde çalışması gerektiği hakkında bilgi vermek istiyorum. Software Service Provider olarak SaaS hizmeti vermeye başladığınızda bu hizmetin donanım tarafının high availibility - yüksek erişim özelliğinin sağlanması kaçınılmaz olacaktır.Tabi SaaS hizmeti verdiğiniz platformlar farklı olabilir, bazı SSP ler Ms platformunu bazıları Linux platformunu seçecektir.Bazıları ise belki bu platformları birleştirip kullanacaktır. Sonuç olarak SaaS için donanım problemlerinin sorun çıkarmayacağı bir çözüme ihtiyacınız olacak. Bu konu üzerinde çok araştırma yaptım.Almanya SwSoft Virtuozzo, Us VirtualIron,VmWare,Paralells en yakın iki çözüm VmWare ve VirtualIron.VmWare pastanın büyük çoğunluğuna sahip durumda ve çok iyi bir ivme ile gelişmeye devam ediyor.VirtualIron'ın Intel tarafından büyük desteği mevcut.Fakat VI'in Türkiye'de distribütörlüğü çok yeni.Deneyime ihtiyaçları olduğu kesin.Vmware ise bu konuda Türkiye'de yoğun olarak çalışmış,sayısız projelere imzasını atmış, hatta kendi bölgesindeki satışların %60'ı TR'den çıkmış durumdadır. Sonuç olarak bu iki kavramın geleceğin teknolojisini şekillendireceği düşüncesindeyim.
Yıllardır uygulanan yöntem.Firmalarla toplantı ayarla, teker teker görüş,
ürünlerin demolarını kullan, test et, kendi işletmene uyarla, analiz et,
pazarlık et, hadi kullanmaya başladın, yıllık bakım ücreti adı altında o
firmanın hizmet vermeye devam edebilmesi için pazarlama ve yönetim tarafından
uydurulmuş ücretler öde.
Software 2007 konferansında Motorola, Fedex,
Disney, Toyota CIO'larının (özellikle Motorola :) ) tek dillendirdiği sorun.Bir
yazılım ürünü alıyorsunuz, veya geliştiriyorsunuz veya outsource ediyorsunuz,
bug'larla dolu, bugları bulup düzeltip patch ve fix liyorsunuz, dağıtımını
sağlıyorsunuz.
Peki Software as a Service bütün bu sorunlara çözüm
sunuyormu? Yazılım dünyasının gideceği nokta hakkında yorum yapmak afaki
konuşmalar olacaktır fakat bu yapı en azından benim aklımda bir sürü proje
uyandırıyor.
Gelelim dağınık sistemlere, Türkiye için konuşuyorum.Bir
ülkenin en değerli varlıklarından biri insan kaynağıdır.Bizde harcanan, bir
köşede unutulmuş, alakasız işlerle hayatını kazanmaya çalışan o kadar çok
değerli insan mevcut ki, ben bu topluluğa dağınık sistemler adını veriyorum ve
ne yazıkki hala bu sistemleri bir araya getirecek, yönetecek bir sistem mevcut
değil, bu yönetimi gerçekleştirip bir yazılım ürünü ortaya koymuş başarılı bir
yapı mevcut değil.
Kaba tabiriyle; Dağınık sistemler = yatırımcı +
yazılımcı + tekniker + sistemci
Neden bu dağınık sistemler bir araya
getirilip bir saas başarısı sağlanamıyor?

Değerli arkadaşım Sem GÖKSU'nun sitesi. Bu siteyi ulaşılamaz hale getiren arkadaşım, Sem'in, benim, ve bizim gibi arkadaşların sitelerinde, hepimiz, yazılım dünyasında kendine yer arayan arkadaşlara yardımcı olmaya çalışıyoruz.Bu yardımları herhangi bir karşılık beklemeden yapıyoruz.Dolayısı ile bu web sitelerini maliyetten dolayı daha az korunaklı ucuz hostinglerde barındırıyoruz.
Şimdi sen geldin bu siteyi ulaşılamaz hale getirdin de nooldu, milli bir dayanışmaya yardımcı mı oldun da Atatürk'ün resmini yayımlıyorsun? HAYIR, insanlarımızın ücretsiz olarak bilgi almasını engelliyorsun, böyle olmasına rağmen kendini bir halt zannediyorsun.
asimo'yu cagirin, bi kosu gelip su honda'yı tamir etsin hataliysam lütfen 212.252.67.33 tepsi mudafadan 1 yıl yedim,hafifletici sepetlerden dolayi beraat ettim. inheritance degil alinteri buffy de vampir sayilir (en sevdiğim buffy the vampire slayer ile telaffuz aynı :)) the incredible hulk otobusu helikopter kornası belediyeler arasi simcity turnuvasi accord karakord belli olcak 70lik ama 60lik fiyatina windowsXP Dolby surround sivrisinek Ne olursan ol and justice for all Bir taş attım pencereye puff daddy Alaaddin ve lambor cini
Artık Süperman de GoogleEarth kullanıyor...
Webden upload edilen bütün resimler birbirine linklenebilecek.Sanal dünya... semantik arama resimle...
Yok hayır.... Micorosoft, dos zamanında, matrix etkisi yapan Another Day oyununu çıkartmıyor :P Bugün Microsoft'un "non .net developer"'lara yönelik seminer/eğitim tarzında olan event'ine katıldım.2005'de verdiğim seminer aklıma geldi. Öğleye kadar olan bölüm aşağı yukarı aynı konuları içeriyordu.Fakat CLI-CLS ve FCL konularına daha detaylı değinmeleri iyi olurdu diye düşünüyorum.Sonuç olarak potansiyel .net developerlari mevcuttu.:) Seminerin ikinci bölümünde Smart-Client ve .net 3.0 wpf presentation foundation hakkında bilgi verildi.Açıkçası uzun süredir neden Ms bunu hala böyle yapıyor diye dır dır yaptığım bir soruna cevap buldum.Sorun şöyle; Ms 2000 senesinde .net'i çıkartıyoruz dediğinde, tamam artık uzun süre devam edecek bir yapı geliyor demiştim.Windows Forms lar için bu böyle oldu.Tabiki her yeni sistemde yaşanan problemler yaşandı, sp ler ve yeni sürümler çıktı fakat mevcut duruma bakıldığında yapı haddinden fazla oturmuş gözüküyor.Fakat aynı şey Asp.net için geçerli değil.Evet asp.net son sürümü web programlama için ideal ve çok basit ayrıca framework un gücüne sahip.Ama client tarafına bakıldığında hala javascr kodu çalışıyor.Bu beni çok rahatsız ediyordu. Sanırım Ms bunun için bir client dili yazmaktan vazgeçmiş, Smartclient+ClickOnce+Winforms+(Wpf'ye ben Winforms+ diyorum :) ) birleşimiyle client tarafında hem .net dillerinin kullanılabilirliğini sağlamış hem de wpf ile müthis efektler getirmiş durumda.Bu özelliklere clickonce da eklendiğinde neredeyse artık bir web uygulamasına ihtiyacınız kalmıyor.Eğer client tarafında kuvvetli bir arayüz ve gelişmiş kullanıcı arabirimi gerekiyorsa artık wpf mevcut.Click once sayesinde güncellemeleri rahatça dağıtabiliyorsunuz.Evet web'e göre biraz daha bandwidth kapsayacak bir teknoloji ama geri dönüşüne bakıldığında bence kabul edilebilir bir fark.Çoğu önemli kuruluş bu konu ile ilgili ürünlerini tamamlamış durumda.Aşağıda New York Times Reader dan bir scrshot mevcut...
Uzun zaman önce yazıp hdd de unuttuğum bir makale... Tüm yazılımcı arkadaşlara selamlar,
Bu makalemde C# ile Microsoft Outlook contact bilgilerinin nasıl okunacağına
değineceğim.
Geliştirdiğimiz uygulamaların çoğunda
kullanıcıların hali hazırda sistemlerinde mevcut olan bilgilerini almamız
gerekir.Bu mevcut bilgileri mevcut kaynaklardan okumak yerine kendi geliştirdiğimiz
yazılımlarda tutmak hem kullanıcı hem de biz programcılar için zor olacaktır.Örnek
olarak geliştirdiğimiz uygulamada kullanıcının bir raporu fax olarak göndermesi
gerekebilir.Eğer 3rd party fax araçları kullanıyorsak gönderim işlemlerini
kod ile halletmemiz gerekebilir.Bu gibi durumlarda kullanıcılardan fax gönderimi
için ayrı bir veritabanı veya kayıt bölümü oluşturmak hem kullanıcıların
birden fazla kaynağa veri girmesini hem de bizim fazladan kodlama yapmamızı
gerektirir.
Kullanıcıların contact bilgilerini mevcut olarak kullandıkları Microsoft
Outlook uygulamasından okumamız hem kullanıcı için kolaylık sağlayacaktır
hem de bizim daha az kod yazmamızı.
Yeni bir windows uygulaması açın ve
formun üzerine bir button ve bir listview nesnesi yerleştirin.
Solution Explorer çerçevesi yardımıyla projeye "Microsoft Outlook 11.0
Object Library" COM bileşenini ekleyin.
Projemize Outlook Contact bilgilerini okuma işlemini gerçekleştireceğimiz
MyOutlookIntegration ismiyle yeni bir sınıf ekleyin.
Sınıfımıza IDisposeable arayüzünü entegre edelim.
Outlook Contact bilgilerine erişmek için 3 arayüz tanımlayacağız.Bu tanımlama
işlemini sınıf etki alanında gerçekleştirelim ki sınıf'a ait metodlarda
bu nesnelere erişimimiz mümkün olsun.
private Microsoft.Office.Interop.Outlook.Application objOutlook = null;
private Microsoft.Office.Interop.Outlook.NameSpace objNamespace = null;
private Microsoft.Office.Interop.Outlook.MAPIFolder objFolder = null;
Application arayüzü Microsoft Outlook uygulamasını temsil edecektir.
NameSpace arayüzü Outlook uygulamasında bulunan MAPI alanına erişmemizi sağlayacaktır.
MAPIFolder arayüzü ise Contact klasörünü temsil edecektir.
objOutlook ve objNameSpace nesnelerini sınıfımızın yapıcı metodunda
yaratacağız.
public MyOutlookIntegration()
{
objOutlook = new Microsoft.Office.Interop.Outlook.ApplicationClass();
objNamespace = objOutlook.GetNamespace("MAPI");
}
Sınıfımıza GetContacts ismiyle bir metod ekleyeceğiz.Bu metod objFolder
nesnemize objNamespace nesnesini kullanarak Contacts klasörünü atayacaktır.Bu
sayede objFolder nesnemizde artık Contact bilgileri mevcut olacaktır.Ardından
bu itemları okuyarak bir arraylist sınıfına aktaracağız ve geri dönüş
değeri olarak bu arraylist sınıfını göndereceğiz.
public ArrayList GetContacts()
{
ArrayList lstContacts = new ArrayList();
Microsoft.Office.Interop.Outlook.ContactItem item;
try
{
objFolder = objNamespace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderContacts);
System.Collections.IEnumerator MsgEnum = objFolder.Items.GetEnumerator();
while (MsgEnum.MoveNext())
{
item = (Microsoft.Office.Interop.Outlook.ContactItem)MsgEnum.Current;
lstContacts.Add(item);
}
}
catch (System.Exception e)
{
throw(new Exception("MyOutlookIntegration Error",e));
}
return lstContacts;
}
COM bileşenleri ile Office uygulamaları entegrasyon işlemlerinde en fazla karşılaşılan
problemlerden bir tanesi de, üzerinde çalıştığımız Office uygulamasının
yazdığımız kodun işlemlerinin sonlanmasına rağmen sistemde çalışır
durumda kalması ve uygulamamızın bu işlemi tekrarlaması sonucunda Office
uygulamasının process lerinin çoğalmasıdır.Bu problemlerden dolayı çoğu
zaman performans sorunları yaşanır veya kullanıcının normal Office
uygulamalarını kullanımını etkiler.Bunu engellemek için Application arayüzü
ile yarattığımız objOutlook nesnesinin Quit metodu sınıfımız sonlandığında
çalışmalıdır.IDisposable arayüzünden türettiğimiz sınıfımızın
Dispose metodunu kullanarak bu işlemi gerçekleştirebiliriz.
public void Dispose()
{
if (objOutlook != null) objOutlook.Quit();
}
Şimdi yarattığımız sınıfı test edelim.Form1 üzerine yerleştirdiğimiz
button1 nesnesinin click olayına aşağıdaki kodu yazalım.
private void button1_Click(object sender, EventArgs e)
{
MyOutlookIntegration MyOutlook = new MyOutlookIntegration();
ArrayList lstContacts= MyOutlook.GetContacts();
lvFill.View = View.Details;
lvFill.Clear();
lvFill.Columns.Clear();
lvFill.Columns.Add("İsim");
lvFill.Columns.Add("Soyisim");
lvFill.Columns.Add("İş fax numarası");
lvFill.Columns.Add("Ev fax numarası");
lvFill.Columns.Add("Diğer fax numarası");
lvFill.Columns.Add("Şirket ismi");
lvFill.Columns.Add("Email adresi");
lvFill.Columns.Add("Ev telefonu");
lvFill.Columns.Add("İş telefonu");
foreach (Microsoft.Office.Interop.Outlook.ContactItem item in lstContacts)
{
ListViewItem lvFillItem = new ListViewItem(new string[] {
item.FirstName,
item.LastName,
item.BusinessFaxNumber,
item.HomeFaxNumber,
item.OtherFaxNumber,
item.CompanyName,
item.Email1Address,
item.HomeTelephoneNumber,
item.BusinessTelephoneNumber
});
lvFill.Items.Add(lvFillItem);
}
}
Projemizi çalıştırıp test edelim.
Evet gördüğünüz gibi yarattığımız sınıfla artık Outlook contact
bilgilerini okuyabiliyor ve uygulamalarımızda kullanabiliyoruz.
Microsoft.Office.Interop.Outlook.ContactItem nesnesinde isim,soyisim,iş fax
numarası,ev fax numarası,Diğer fax numarası,şirket ismi,email adresi,ev
telefonu,iş telefonu bilgilerine ek olarak Outlook contact bilgilerinde bulunan
diğer bilgiler de mevcuttur.Bu örnekte yeterli olacağını düşündüklerimi
uyguladım.Siz kendi uygulamalarınızda diğer alanları da kullanabilirsiniz.
Evet bir makalenin daha sonuna geldik.Umarım yararlı olmuştur.
Hepinize mutlu günler dilerim.
Levent YILDIZ
theone@leventyildiz.net
msmoracle@hotmail.com
http://www.leventyildiz.net
Dün HP'nin "yer yerinden oynayacak" lansmanındaydım. Tam olarak yer yerinden oynamadı fakat katılımın yoğunluğundan dolayı salon değiştirmek, daha büyük bir salona geçmek zorunda kaldık.HP nin dediği kısmen oldu :) yerimizden oynadık... Yeni teknoloji printerların tanıtıldığı toplantı keyifli geçti.HP nin nasıl başladığı ve bugünlere geldiği konusunda detaylı bilgiler verildi.Dünya yörüngesinde bulunan 10 uzay istasyonunun 10'unda da HP mevcutmuş.HP denince aklıma hemen bir printer geliyordu, artık astronotlar gelecek. CM serisi printerlar ile renkli baskı maliyetlerinde %30 gibi muazzam bir düşüş sağlanmış... Dediğim gibi çok keyifli bir tanıtım dı.
|
.NET ve MOBİL TEKNOLOJİLER SEMİNERİ
CETURK, Mayıs ayının konusuna uygun olarak .NET ve MOBİL TEKNOLOJİLER konulu bir seminer gerçekleştiriyor. Katılımın ücretsiz olduğu seminer, 16 Haziran Cumartesi günü 13:00-15:00 saatleri arasında Microsoft Türkiye İstanbul ofisinde gerçekleştirilecektir.
Konuşmacı :Mobile Device MVP ERALP ERALT
Seminer Yeri :
Microsoft İstanbul Ofisi
Barbaros Plaza 145-C, Dikilitaş
34349 İstanbul
Kayıt olmak için : http://www.ceturk.com/etkinlikkayit.asp?id=26
|
Herkese matrix yaklaşıyor, matrix gerçek olacak dediğimde, ha ha ha diyorlardı bana... Matrix 2'de, Nebuchadnezzar'ın Zion'a ilk girişinde, kapı kontrolörleri local bir matrix'e bağlıydı, bilgisayar kullanıyorlardı ve klavyeleri yoktu...

bana çok benzer geldi...
Artık 30 dan gün alıyorum.Yolu yarıladım... Bu ana kadar yanımda olan herkese çok teşekkür ediyorum...
http://www.csharpnedir.com/netvideo.asp linkinde bulunan Derinlemesine GridView & DetailsView görsel dersim hakkında Fatih arkadaşımızın sorusu: Benim anlamadığım bir nokta var: SP içinde id değerini kullanıyoruz oysaki en başta DataBind işlemini gerçekleştirirken bu kolonu remove etmiştik.
Evet Id kolonunu gridview üzerinde remove ettik ve id boundfield'larda gözükmüyor, fakat Gridview'un DataKeyNames özelliğine id kolonu atanmıştır.Dolayısı ile id alanı değeri gridview tarafından halen tutulmaktadır.Bu alana , (virgül) ayracı ile birden fazla kolon ismi atayabilirsiniz...
Umarım açıklayıcı olmuştur.
BHO nedir ilk önce bunu açıklayalım.Browser Helper Object, işletim sisteminde Browser görevini üstlenmiş bileşenler üzerinde çalışmak için tasarlanmış eklentilerdir.Internet Explorer 'a yazılan eklentiler iyi bir BHO örneği olacaktır.
BHO objemiz IObjectWithSite arayüzünden türemelidir.Bu arayüzün SetSite ve GetSite isminde iki metodu mevcuttur.İlk önce bu arayüzü gözden geçirelim.
using System; using System.Runtime.InteropServices;
namespace MyBHO { [ComVisible(true), Guid("FC4801A3-2BA9-11CF-A229-00AA003D7352"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public interface IObjectWithSite { [PreserveSig] int SetSite([MarshalAs(UnmanagedType.IUnknown)]object site); [PreserveSig] int GetSite(ref Guid guid, out IntPtr ppvSite); } }
IE herhangi bir browser kontrolü oluşturduğunda SetSite çalışacak ve biz de gerekli nesneleri burada atayacağız. Şimdi IObjectWithSite arayüzünden türeyen MyBHO sınıfımızı inceleyelim.
using System; using System.Collections.Generic; using System.Text;
using System.Runtime.InteropServices; using Microsoft.Win32; using SHDocVw;
namespace MyBHO { [ComVisible(true), ClassInterface(ClassInterfaceType.None)] public class MyBHO : IObjectWithSite { WebBrowser webBrowser;
public MyBHO() { }
public static string BHOKEYNAME = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Browser Helper Objects";
[ComRegisterFunction] public static void RegisterBHO(Type t) { RegistryKey key = Registry.LocalMachine.OpenSubKey(BHOKEYNAME, true);
if (key == null) key = Registry.LocalMachine.CreateSubKey(BHOKEYNAME);
string guidString = t.GUID.ToString("B"); RegistryKey bhoKey = key.OpenSubKey(guidString);
if (bhoKey == null) bhoKey = key.CreateSubKey(guidString);
key.Close(); bhoKey.Close(); }
[ComUnregisterFunction] public static void UnregisterBHO(Type t) { RegistryKey key = Registry.LocalMachine.OpenSubKey(BHOKEYNAME, true); string guidString = t.GUID.ToString("B");
if (key != null) key.DeleteSubKey(guidString, false); }
public void webBrowser_BeforeNavigate2(object pDisp, ref object Url, ref object Flags, ref object TargetFrameName, ref object PostData, ref object Headers, ref bool Cancel) { string _Url = (string)Url; Uri _uri = new Uri(_Url); if (_uri.Host == "www.leventyildiz.net") { Cancel = true; System.Windows.Forms.MessageBox.Show("Bu siteye çıkamazsınız"); } }
#region IObjectWithSite Members public int SetSite(object site) { if (site != null) { webBrowser = (WebBrowser)site; if (webBrowser != null) { webBrowser.BeforeNavigate2 += new DWebBrowserEvents2_BeforeNavigate2EventHandler(webBrowser_BeforeNavigate2); } } else { if (webBrowser != null) { webBrowser.BeforeNavigate2 -= new DWebBrowserEvents2_BeforeNavigate2EventHandler(webBrowser_BeforeNavigate2); webBrowser = null; } } return 0; }
public int GetSite(ref Guid guid, out IntPtr ppvSite) { IntPtr punk = Marshal.GetIUnknownForObject(webBrowser); int hr = Marshal.QueryInterface(punk, ref guid, out ppvSite); Marshal.Release(punk);
return hr; } #endregion } }
Açıklamalar SHDOCVW using SHDocVw; SetSite metodu ile gelen object türünden site nesnesi "Microsoft Internet Controls" com'unda (ShDocVw.dll) bulunan WebBrowser nesnesine dönüştürülerek kullanılacağından dolayı bu com'u projemize register etmemiz gerekmektedir.
BHOKEYNAME public static string BHOKEYNAME = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Browser Helper Objects"; Bu string, IE nin eklentilerinin kaydedildiği registry key'i dir.Assembly mizi register ettiğimizde ComRegisterFunction niteliği ile işaretlenmiş public static void RegisterBHO(Type t) metodu çalışacak ve gerekli işlemler yapılacaktır.Unregister da ise tahmin edeceğiniz gibi ComUnregisterFunction niteliği ile işaretlenmiş public static void UnregisterBHO(Type t) metodu çalışacak ve eklentinin IE kaydından çıkartılması için gerekli işlemler yapılacaktır.
SetSite public int SetSite(object site) { if (site != null) { webBrowser = (WebBrowser)site; if (webBrowser != null) { webBrowser.BeforeNavigate2 += new DWebBrowserEvents2_BeforeNavigate2EventHandler(webBrowser_BeforeNavigate2); } } else { if (webBrowser != null) { webBrowser.BeforeNavigate2 -= new DWebBrowserEvents2_BeforeNavigate2EventHandler(webBrowser_BeforeNavigate2); webBrowser = null; } } return 0; }
bu kod IE yeni bir webbrowser kontrolü oluşturduğunda çalışacak koddur.Biz bu metodda gönderilen object türünden site nesnesini sınıf bazında erişimi olan webbrowser nesnemize set ediyoruz.Bu işlem esnasında webBrowser_BeforeNavigate2 metodunu webbrowser nesnesinin BeforeNavigate2 olayına bağlıyoruz.Dolayısı ile yeni bir sayfa açılmak istendiğinde ilk önce bizim metodumuz çağıralacak ve gerekli kontrolleri yapabiliyor olacağız.
BeforeNavigate public void webBrowser_BeforeNavigate2(object pDisp, ref object Url, ref object Flags, ref object TargetFrameName, ref object PostData, ref object Headers, ref bool Cancel) { string _Url = (string)Url; Uri _uri = new Uri(_Url); if (_uri.Host == "www.leventyildiz.net") { Cancel = true; System.Windows.Forms.MessageBox.Show("Bu siteye çıkamazsınız"); } }
En basit metod :) gitmek istenilen Url bize metod tarafından bildiriliyor, bizde bunu kontrol edip izin veriyoruz veya işlemi iptal ediyoruz.Tabi bu metodda istediğimiz gibi kontroller gerçekleştirebilir, windows formlarıyla bilgi alabiliriz...
Yapılacak son işlem projemizi derledikten sonra regasm tool'u ile assembly mizi register etmek olacaktır.
vs 2005 command prompt ta
regasm /codebase MyBHO.dll komutu IE add-on'umuzu register eder... regasm /unregister MyBHO.dll komutu IE add-on'umuzu unregister eder...
Sonuç olarak add-onumuzu IE özellikleri penceresinde görebiliriz.

Tüm İSTEK'lilere... Yahu öldük mü biz?
Pazar günü okulun pilav günü vardı...Emre ile birlikte bir heyecanla okula gittik... aaa hiçkimseyi tanımıyoruz.Hocalar değişmiş...Bir bilemedin iki hocayı tanıyoruz. İlk önce fazla önemsemedik, gelir bizimkiler dedik, aldık basketbol topunu Emre ile eski günleri andık.Kısa bir anma töreni oldu çünkü maç 2-2 iken ikimizde öldük...
Pilav gününün sonlarına doğru gidip listeye baktığımızda mezunların tarihleri 2000 den başlıyordu, ve 95 mezunu 3 kişiydik...
Nerde İSTEK ruhu, nerde Tarabya Tatil Köyü ruhu arkadaşlar...
Bırakın veritabanına kullanıcılar kendi formüllerini girsinler, uğraşılmaz bu kullanıcılarla canım...
declare @v1 int, @v2 int, @v3 int
declare @formula nvarchar(50)
set @v1=2 set @v2=4 set @v3=5 set @formula='SELECT (@v1+@v3)*@v2'
set @formula=replace(@formula,'@v1',convert(varchar,@v1)) set @formula=replace(@formula,'@v2',convert(varchar,@v2)) set @formula=replace(@formula,'@v3',convert(varchar,@v3))
print @formula EXEC sp_executesql @formula
BHO geliştiren arkadaşlar, bazen ie den manage add-ons bölümünden geliştirdiğimiz dll'i disable yapmak o dll'i serbest bırakmayabilir.Dll serbest kalmayınca da yeni kodu derlerken veya derlenmiş dll i üzerine kopyalarken bu nesne bir process tarafından tutuluyor hatası alırız.
Bu tür durumlarda yapmanız gereken task manager dan explorer process ini kill edip, new task menü seçeneğine explorer yazarak tekrar başlatmanız olacaktır.Logout Login çok uzun sürüyor :)
Okuma
RegistryKey rgkSettings = Registry.CurrentUser.CreateSubKey("MyRegistryKey"); txtUserID.Text = (string)rgkSettings.GetValue("LoginUserID");
Yazma
RegistryKey rgkSettings = Registry.CurrentUser.CreateSubKey("MyRegistryKey"); rgkSettings.SetValue("LoginUserID", txtUserID.Text);
url : http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)? email : \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
System.Text.RegularExpressions.Regex rgxValidate = new System.Text.RegularExpressions.Regex("[0-9]"); if (!rgxValidate.IsMatch(txtFaxNo.Text)) { errClients.SetIconAlignment(txtFaxNo, ErrorIconAlignment.MiddleLeft); errClients.SetError(txtFaxNo, "Fax numarası giriş formatı hatalı."); return; }
declare CURS_X cursor read_only forward_only for ( select X1,X2 from ... )
open CURS_X fetch next from CURS_X into @X1,@X2 while @@FETCH_STATUS=0 begin ......... ......... --bir sonraki kayit okunuyor fetch next from CURS_X into @X1,@X2 end close CURS_X deallocate CURS_X
bundan sonra böyle, post-it lerimi burda tutmaya karar verdim. bu da ilki.yazarken iyi oluyor.
 CP R60 :) Secure Platform (Alet sürekli karada durduğu için)
http://www.kapgetr.com/
Bu da girişimciliğin hat safhası.Sevgili arkadaşım Onur'un aklına gelen bir fikir.O arama motoru bu arama motoru gezmeden aynı anda birden fazla arama motorunu kullanabiliyorsunuz.
Google'a ayrı, Yahoo'ya ayrı zaman mı? Kapgetr arıyorum çıkıyorum :)
Fatih arkadaşımızın bir talebine istinaden .net framework class library yi gezinirken problemine kolay bir çözüm buldum.Eğer bir web sitesinin html içeriğini okumak istiyorsanız Uri sinifi biçilmiş kaftan.Eski yöntemlere (winsock,tcpclient) gerek kalmadan (tabiki bu yöntemler kullanılıyor ama arka planda) Uri sınıfını kullanarak bir web sitesinin içeriğini alabiliriz.Örnek aşağıda;
using System; using System.Collections.Generic; using System.Text;
using System.Net; using System.IO;
namespace UriX { class Program { static void Main(string[] args) { Uri siteUri = new Uri("http://www.google.com/"); WebRequest wr = WebRequest.Create(siteUri); WebResponse wer = wr.GetResponse();
Stream strX = wer.GetResponseStream(); StreamReader strR = new StreamReader(strX); Console.WriteLine(strR.ReadToEnd()); } } }
Web uygulamanızda birden fazla sitemap kullanmanız gerektiği durumlarda (birden fazla menü kontrolleri, sitemap kontrolleri...) web.config dosyasına system.web tag'ı altına aşağıdaki ayarları eklemeniz yeterli olacaktır.
<siteMap> <providers> <add name="MyWeb" type="System.Web.XmlSiteMapProvider" siteMapFile="web.sitemap"/> <add name="MyWeb1" type="System.Web.XmlSiteMapProvider" siteMapFile="web1.sitemap"/> <add name="MyWeb2" type="System.Web.XmlSiteMapProvider" siteMapFile="web2.sitemap"/> </providers> </siteMap>
Sitemap dosyalarını atadığınız SiteMapDataSource kontrollerinde de aşağıdaki özelliği yazmanız gerekmektedir.
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="false" SiteMapProvider="MyWeb1" />
Web Parts, geliştirdiğiniz web uygulamalarında kullandığınız Web User Control nesnelerini veya Calendar, FileUpload gibi standart Asp.Net kontrollerini, kullanıcı bazında özelleştirebilmenizi sağlayan ve bu kontrollerin web sayfası üzerinde sizin belirlediğiniz web alanlarında kullanıcının isteği doğrultusunda görüntülenmesini sağlayan kontrollerdir.
Burada sıkıntı yaşayabileceğinizi düşündüğüm bir sorunun çözümünü paylaşmak istiyorum.Web part kullanımında kişiselleştirme kullanıldığından dolayı bütün bu kişisel ayarlar App_Data'nın içine otomatik olarak yaratılan ASPNETDB veritabanına kaydedilir.Lokalde çalışırken sorun yoktur fakat sunucuya upload edildiğinde bağlantı hataları veritabanının bulunamaması gibi sorunlarla karşılaşabilirsiniz veya bu veritabanını sunucu üzerine register etmek isteyebilirsiniz.
Yapmanız gereken, web.config dosyasına system.web tag'ı içine;
<webParts> <personalization defaultProvider="AspNetSqlPersonalizationProvider"> <providers> <remove name="AspNetSqlPersonalizationProvider" /> <add name="AspNetSqlPersonalizationProvider" type="System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider" connectionStringName="DBConn" applicationName="/" /> </providers> </personalization> </webParts>
ayar kayıtlarını girmenizdir.Burda önemli olan design aşamasında oluşturulan aspnetdb yi sunucu üzerine taşıdıktan sonra aynı web.config dosyasının içine connectionstrings tag'ı altında bu mdf'i bildiren bir connection string tanımlamanızdır.
<add name="DBConn" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=ASPNETDB.MDF;Integrated Security=True;pooling=true;min pool size=5;max pool size=20;connection lifetime=50" providerName="System.Data.SqlClient" />
Bu sayede uygulamanız kişiselleştirme kayıtları için artik sizin belirlediğiniz veritabanını kullanacaktır.
 www.hakia.com
Amaç aynı, arama... Bugün google, yahoo vs gibi arama motorlarını kullanıyoruz.Arama anahtarı olarak girdiğimiz bilgiler arama motorunun veritabanındaki anahtar sözcüklerle karşılaştırılıp sonuçlar karşımıza listeleniyor.Fakat gelen sonuçların doğruluğu, sitelerdeki keywordlerin doğru girilmesine bağlıdır.
Yöntem farklı Hakia da ise durum farklı.Kelimeler anlamlarına göre yorumlanıyor.Bunun üzerine değişik birkaç metodoloji kullanılıyor (ontosem,qdex,semanticrank).
Yani ben hakia'ya "Why did Enron collapse?" diye soru sorabiliyorum.Hakia'da bu soruyu yorumlayıp, bu sorunun cevabını içeren siteleri sonuç olarak listeliyor.
Vakit nakittir... Dr.Berkan'a göre Kuzey Amerikada son 1 ayda yapılan arama sayısı 5.6 milyar.Bunun yarısının tam sonuç alınamayan aramalar olduğunu ve arama başına bir dakika harcandığını düşünürsek son 1 ayda 47 milyon dakika boşa harcanan zaman mevcut olduğunu görürüz.Evet vakit nakittir...
Bunun sonucu olarak, ilerleyen zamanlarda bu sistemin kullanılabileceği alanları düşünüyorum... Mobil telefonlar - ses algılama ile çalışan arama motoru:hakiaMobile Alışveriş merkezlerinde, Plazalarda, Açık merkezi alanlarda - ses alıgılama ile çalışan kiosklar:hakiaKiosk ....
Büyük başarı.Dr. Rıza C. Berkan'a böyle bir teknolojiyi kullanıma sunduğu için teşekkür ediyorum.
Client tarafında 'Sys is undefined' hatası alıyorsanız; IIS6.0 üzerinde Asp.NET 2.0 uygulamanız çalışmıyorsa; Bu yukardaki iki problemden dolayı akıl sağlığınız tehlikede ise, aşağıdakileri okumanızda yarar var.
Windows Srv 2003 std sp2 üzerinde IIS6.0'i kurdugunuzda Web extensions kısmında asp.net 2.0 için gerekli olan web service extension kaydı gelmiyor. Bunu manuel olarak eklemelisiniz. Web service extensions kısmında sağ click new extension i seçip aşağıdakileri gireceksiniz. Web service extension name=ASP.NET v2.0.50727 DLL= C:\Windows\Microsoft.net\framework\v2.0.50727\aspnet_isapi.dll
Evet artık bu şekilde çalıştırabilirsiniz.
Peki siteyi ayağa kaldırdıktan sonra Ajaxv1.0 ile ilgili bir problem oluşursa; Client tarafında sys is undefined gibi bir hata alırsanız.Aklınıza ilk gelecek şey ajax'da bir sorun olduğu veya client da javanin son sürümünün yüklü olmadığı olacaktır.
Google da sys is undefined diye bir arama yaparsanız tonla döküman gelecektir. Genelde bu dökümanlarda asp.net web.config dosyasında ajaxv1.0 a geçtiğinizde yapılması gereken değişiklikleri görürsünüz.Tabi yapılması gereken herşeyi yaptıktan sonra aynı hatayı almaya devam ederseniz sağlık problemleri başlar :)
Gariptir, 1 günlük bocalamadan sonra isp'de sunucuyu tam kabinlere koymadan önce görevli arkadaşın -aa bi dk.bu cdrom bizim.bunu çıkartmamız gerekiyor demesi ve sunucudan cd rom'u cikartmasi aklıma geldi. Sonra sunucuya bakıp sistem saatini kontrol ettim. Sene 2003'dü. Sistem tarihini normal hale getirdim ve sys is undefined sorunu çözüldü.
Sağlık problemlerimin devam etmemesi için bir tarihin client tarafındaki java hatası ile nasıl bir alakası olur diye düşünmek istemedim ve yoluma devam ettim.
Saçlar uzadı.Berber metin abiyi ziyaret edeyim dedim. Hepimiz biliriz, berberlerde muha |