Pages: << 1 2 3 4 5 6 7 8 9 10 11 ... 38 >>
Bu tarihlerden yaklaşık 8 yıl öncesinde Microsoft .Net adında bir platform çıkaracağını duyurduğunda üzerinde en çok durulan konulardan biriside o zamanlarda var olan VB projelerinin yeni platform'a fazla değişiklik yapmadan upgrade edilebileceğiydi.
Ufak tefek problemler dışında bu sözlerinde durdular da, şu anda Microsoft'u bulunduğu yere getiren VB'ye sadık kalarak şu anda da .Net içerisinde VB kullanabiliyoruz.
Ancak VB'ye ait hafıza yönetimi, object oriented gibi kronik problemlerden bazıları da .Net içerisine taşınmış oldu. VB 6 üzerinde çok fazla proje yapmış birisi olarak bu tür problemlerden uzak durabilmek için başından beri .Net içerisinde VB kullanmaya pek sıcak bakmadım.
Bu 8 yıl içinde IDE içerisindeki bana garip gelen özellikler dışında üretilen kod gibi çok fazla detayına girmedim ancak yakın bir arkadaşımın VB.Net üzerindeki projesinde memory problemleri çıktığı için detaylarla uğraşınca boşuna endişelenmediğim ortaya çıktı.
VB ile 5-6'dan fazla form olan bir proje üzerinde çalışıyor iseniz benzer sorunlar sizinde kapınızda olabilir.
Öncelikle VB syntax'ına çok alışık olmadığım için örnekleri c# ile veriyorum, umarım anlaşılır olur.
VB ile yeni bir proje açtığınızda projenizde görmediğiniz MyProject adında bir class tanımlanıyor ve bu class ile proje içerisindeki kaynaklara erişiyorsunuz. Tanımı aşağıdakine benzer halde;
Code:
internal sealed class MyProject | |
{ | |
internal static MyApplication Application { get; } | |
internal static MyComputer Computer { get; } | |
internal static MyForms Forms { get; } | |
internal static User User { get; } | |
internal static MyWebServices WebServices { get; } | |
} |
Bu class sayesinde geliştirme yaparken gerekecek kaynaklara erişim sağlanıyor. Proje içerisindeki tanımlanan formlara da Forms üzerinden ismi ile erişilebiliyor. Örneğin "Login" isimli bir form'unuz var ise MyProject.Forms.Login.Show() diyerek login penceresinin gözükmesini sağlıyorsunuz.
Ancak sorun şu ki MyForms class'ı projeyi derlediğinizde otomatik üretilen bir class ve Login penceresi için aşağıdaki kod üretiliyor.
Code:
internal sealed class MyForms | |
{ | |
public frmLogin m_frmLogin; | |
public frmLogin Login | |
{ | |
get | |
{ | |
this.m_frmLogin = Create__Instance__<frmLogin>(this.m_Login); | |
return this.m_frmLogin; | |
} | |
set | |
{ | |
if (value != this.m_frmLogin) | |
{ | |
if (value != null) | |
{ | |
throw new ArgumentException("Property can only be set to Nothing"); | |
} | |
this.Dispose__Instance__<frmLogin>(ref this.m_frmLogin); | |
} | |
} | |
} | |
} |
Bu koddan anlaşılacağı üzere de Login penceresine 1 kez erişildiğinde uygulama kapanıncaya kadar hafızada kalmak zorunda ve bu class üzerinde referans'ı taşındığı için garbage collector tarafından da toplanamıyor.
Bu yüzden uygulama belirli bir süre kullanıldıktan sonra hafıza kullanımı giderek artmaya başlıyor. Bu sorunu çözmek adına uğraşsamda otomatik üretilen bir kod olduğu için müdehale edemiyorsunuz.
Henüz uygulamış değilim ancak olası tek çözüm MyForms üzerinde m_frmLogin public olarak tanımlanmış, henüz erişim olup olmadığı konusunda fikrim yok ancak olası tek çözüm reflection ile MyForms'u taramak gibi gözüküyor.
Biraz hack tipi bir çözüm ancak null olmayan ve ekranda gözükmeyen tüm m_frmLogin tipi değişkenleri zorla dispose edecek bir kod eklemeyi düşünüyorum. Eğer sorunsuz olarak çalışırsa bu yazıyı güncelleyerek buraya eklerim.
VB.Net eski uygulamaların yeni platform'a taşınması için bir kapı idi ancak bu kapıyı artık kullanan kimse kalmadı, yeni başlayan ve ortalama ve altı ağırlıkta uygulama geliştirmek için hazırlanmış bir dil, özet olarak hızlı sonuç gerektirmeyen ciddi uygulamalar için kullanılmasını tavsiye etmiyorum.
Evet syntax'ı biraz daha karışık ama eski alışkanlıkları bırakıp yerine daha ortak kullanımı olan c temelli, yazdığınız kodun gözüktüğü gibi çalışacağını bildiğiniz .Net'in doğal dili c# ile geliştirme yapmanızı tavsiye ederim.
Sergisi olmasaydı bu adamı tanımam gecikebilirdi. Bu da hoş olmazdı. Cehalet kötü, öğrenmek güzel.

Müthiş resimleri var. Ben bu resimleri ilk gördüğümde aklıma ilk gelen Kenan Yarar oldu. Ben onu tek zannediyordum... Meğer bir numara bambaşkaymış.
Azmettim ve bu sergiye sanattan anlayan bir arkadaşımla gittim. Onun yorumu, eserlerin biraz rasgele yerleştirilmiş olması, açıklama yazısında dünyanın gidişatıyla ilgili klişelerin bulunduğu ve çerçevelerde ışığı yansıtan cam kullanılmaması gerektiğiydi.
Ben ise ağzımdan salyalar akmakta olduğu için herhangi bir eleştiride bulunamadım. Ne çizimler, nasıl renkler, nasıl karakterler vay, vay, vay... Cennet gibiydi.. Taksim'de Yapı Kredi Sermet Çifter Salonu'nda 14 Haziran'a kadar görülebilir. Türk bir hayranı olan Cem Şerbetçi'nin çabalarıyla gerçekleştirilmiş. Sağolsun... Fotoğraflar çektim. Buyrun.




Marka ve dövme. (hakaret gibi)

Bu da marka ve slogan.

Kuralsız bir şehir...
İstanbul'da köprüyü geçmek sabır gerektirir."Köprüyü geçene kadar ayıya dayı de" evet bu kesinlikle uyulması gereken bir kural. Köprü yolu dediğimiz bir yol vardır. Orada 7 şerit ve milyonlarca araç bulunur.
Otobüs
Neden bilmem insanlar otobüse daha durağa gelmeden ve birbirlerini iterek biner. Kimsenin beklemeye tahammülü yoktur. Herkesin işi çok acildir ve herkes birbirinden nefret etmektedir. Herkes öne geçmek için bir diğerinin üzerine basmaya hazırdır ve herkes somurtmaktadır. Bu yüzden bazı otobüsler duraktan 20 metre ötede durur da durakta durmaz. Hatta durdurmaya çalışırsanız şoför suratınıza türükerecek gibi bakarak uzaklaşır oradan. Bu beni çok kızdırır.
Burada her gün ölme tehlikeniz vardır. Otobüs yolu boş buldu mu delice hızlara ulaşır. Ayaktaysanız iyice tutunmalısınız. Luna parka gitmeye gerek yok! Belediye otobüsü var!
Anlayamadığım bir nokta daha, otobüs şoförlerinin akbil satıyor olmasıdır. Otobüse bindiniz ama akbil, bilet hiçbirşeyiniz yok, sadece paranız var...Korkmayın, otobüs şöförünün size satacak akbili vardır! Hem bir ton insan dolusu arabayı sürüp hem de bozuk para arar sonra. Ne güzel... Tıpkı münübüsler gibi.
Minibüs
Minibüslerden bahsetmişken... Bir otomobil için trafikteki iki numaralı kabus belediye otobüsüyse, bir numara minibüstür. Minibüsler çılgın, umarsızdır. En müthiş numaralarıysa merkezi duraklarda otobüslerin önünde durarak devamlı kornaya basmalarıdır.
Taksi
Taksi İstanbul'da mesela İzmir'le karşılaştırıldığında çok ucuz. Çok kullanılıyor. Özel otomobillerin pek sevmediği, hatta kabus kategorisinde minibüsle bir numara için yarışacak bir araç olduğunu iddia edebilirim. Taksiler uyanık, girişken, meraklı ve hatta şakacı olabiliyor. Ama bir gün bir araç kullanacaksam onu bir taksici gibi kullanmak isterim. Teknikleri mükemmel ![]()
Boğaziçi köprüsü : Yoğun
F.S.M köprüsü : Yoğun
Çamlıca : Yoğun
Yetki kontrolleri için hazırladığımız kütüphanede ihtiyacımız olduğundan ve birazda enteresan bir problem olduğu için buraya da yazmak istedim.
elinizdeki herhangi bir sayının 2 üssü bir sayı olup olmadığını kontrol edecek bir fonksiyon yazın. hızlı çalışması için optimize edin.
örneğin;
8 (2 ^ 3) için true verecek.
128 (2 ^ 7) için true verecek.
132 için false ferecek.
not : hızlı çalışması gerektiği için logaritma gibi fonksiyonlar en son seçenektir.
sonradan gelen düzenleme : yazının güncelliğini koruması için doğru olmayan çözümleri yayınlıyorum sadece.
sonradan gelen ek düzenleme :
Bu açıklamayı yaptığıma biraz üzülüyorum ama 2'nin üsleri ile 2'ye bölünebilir olmak farklı şeylerdir.
Örnek;
6 rakamı 2'ye bölünebilir ama 2 üssü bir rakam değildir.
8 rakamı 2'ye bölünebilir ve 2 üssü (2^3) bir rakamdır.
Bu başlığı attım. Çünkü Editplus aldım. Yıllardır kullandığım editöre en sonunda parayı bastırıp sahip oldum. 35 dolar. En önemlisi de her sabah programı açtığımda "Bugün denemenizin 468. günündesiniz.." türündeki yazıyı artık görmüyor, onun mahçubiyetini üzerimde hissetmiyorum. (Pazarlama stratejileri başarılı demek
Gerçi genelde Türk'lere işlemez böyle numaralar ama...)
Bu Editplus da nedir? Kendisi WYSIWYG ( What You See Is What You Get - yani Dreamweaver gibi yaptığın işi anında görebilme ) olmayan bir HTML editörüdür. Tabi yaptığınız işin önizlemesini görebilirsiniz. Ama bunun için CTRL+B yaparsınız, yeni döküman açar gibi sayfayı açar. Yani yok öyle şunun kenarından tutup çekeyim de tablo olsun, arkadaş da kafasına göre onun kodunu yazsın..
Her türlü özelliğini kendinize göre ayarlayabilirsiniz. Farklı yazılım dillerinde de kullanabileceğiniz gibi en basit örnek olarak otomatik tamamlamayı istediğiniz şekle sokabilme imkanınızı söyleyebilirim. Satırlarca kod için tek harf yeterli olabilir böylece.
Dreamweaver'dan haz etmiyorum. Kendisi benim gözümde web tasarım topluluklarının kalitesini bir hayli düşüren ve ortada HTML'i bilmeyen bir trilyon "web tasarımcısı"nın dolaşmasını sağlayan programdır.
Destekleyin, satın alın, program kullanmayı değil HTML yazmayı öğrenin.