Bu Blogda Ara
9.12.2009
C# ta dosya,exe çalıştırma
System.Diagnostics.Process.Start("c:\\yeni.doc");
yada bir exe dosyasını, açmak istediğiniz dosya adı vererekte açabilirsiniz
System.Diagnostics.Process.Start("IExplore.exe", "www.iumuhendis.blogspot.com");
System.Diagnostics.Process.Start("Winword.exe", "c:\\yeni.doc");
System.Diagnostics.Process.Start("EXCEL.EXE", "c:\\yeni.xls");
3.10.2009
Google Crome
7.09.2009
Academic Earth- video courses
1. What is Academic Earth?
Academic Earth is working to bring together the best available content across many subjects and distribute it in an engaging and useful way to learners worldwide.
2. How many videos are available on Academic Earth?
As of this writing, there are over fifteen hundred videos from MIT, Stanford, Berkeley, Harvard, Princeton, and Yale. We are adding more every day. Some of these are grouped into courses, which each contain anywhere from 4 to 50 lectures.
İki Fıkra- İki Hakikat
Ertesi gün Juan motosikletinin arkasında iki büyük çantayla tekrar sınırda belirir. Polis Juan'ı gene durdurur, didik didik arar, bir şey bulamaz ve Juan'ı serbest bırakmak zorunda kalır. Bu olay, polis emekli olana dek yıllarca devam eder !
Bir gün emekli polis Meksika'da bir barda otururken Juan'ın içeri girdiğini görür ve derhal yakasına yapışır; - Senin yıllardır bir şeyler kaçırdığından eminim. Çıldıracağım... Geceleri uyku uyuyamıyordum senin yüzünden. Lütfen anlat bana ne kaçırdığını.
Aramızda kalacağına emin olabilirsin.
Juan gülümseyerek yanıtlar: 'Motosiklet'
DETAYLA BOĞUŞURKEN ÖZÜ KAÇIRMAYALIM :)
********************************************************
ESAS AKIL
Bir akıl hastanesini ziyareti sırasında, adamın biri sorar:
- Bir insanın akıl hastanesine yatıp yatmayacağını nasıl belirliyorsunuz?
Doktor:
- Bir kuveti su ile dolduruyoruz. Sonra hastaya üç şey veriyoruz. Bir kaşık, bir fincan ve bir kova. Sonrada kişiye küveti nasıl boşaltmayı tercih ettiğini soruyoruz. Siz ne yapardınız?
Adam:
- Ooo ! Anladım. Normal bir insan kovayı tercih eder. Çünkü kova kaşık ve fincandan büyük.
- Hayır, der doktor. Normal bir insan küvetin tıpasını çeker.
BİZE SUNULANLARIN DIŞINDA DA ÇÖZÜM BULABİLMEKTİR AKIL :)
20.08.2009
web girişimciliğine bir örnek takasmerkezi.com
TakasMerkezi.com, genç türk girişimcilerinin de dünya çapında web projeleri çıkarabileceğini kanıtlamak hedefiyle yayında.
Ve bir garaj hikayesi. Her ne kadar bir yıl boyunca çalıştığımız ofisimizin garajı olmasa da...
Hep yabancı web başarı öykülerinde duyduğumuz bir mekandır garajlar. Genelde iki kafadar bir araya gelir ve fikirlerini hayata geçirmek için kolları sıvar. Ve ilk ofisleri genelde evlerinin kullanılmayan garajlarıdır. Steve Jobs ve Steve Wozniak'ın Apple'ı, Jeff Bezos'un Amazon.com'u, Pierre Omidyar'ın Ebay.com'u, Bill Gates ve Paul Allen'in Microsoft'u, Larry Ellison'un Oracle'ı ve hatta Larry Page ve Sergey Brin'in Google.com'u..
Hepsinin ortak noktası, sadece bir hayalle yola çıkmış olmalarıdır. Neredeyse sıfır sermaye, garaj veya ufak ofisler, kendilerinden başka kimsenin inanmadığı fikirler... Şimdi hepsi dünyayı değiştiren girişimler olarak kabul ediliyor.
"Kümesteki Kartal Neden Uçmaz?" isimli kitabında Burak Büyükdemir "Bir kere bizde evlerin garajları yok. Hatta müstakil evler bile çok az. Müstakil bir eviniz varsa ve garajında bir internet şirketi açıyorsanız bu başka bir sorun. Amerika'da bu başarı öyküleri evlerin pek rağbet edilmeyen garajlarında başlıyor. Ofis olarak, evin kullanılmayan bu bölümlerini kullanılıyor. Peki biz ne yapacağız şimdi? Bizim bir garajımız bile yok" diyor.
TakasMerkezi.com da bir garaj hikayesi çünkü arkasında başarıya odaklanmış bir ekibin hayalleri, emekleri ve cesareti var.
Garaj hikayesi çünkü, büyük hayalleri gerçeğe dönüştürmek için, şartların iyileşmesini beklemeyen, "bizden çıkmaz" anafikirli fren balataları olmayan zihinlerin ürünü.
Biz bu yolda koşmaktan, tüm dünyada adı geçen bir başarı (garaj) hikayesi olarak kabul görene kadar, vazgeçmeyeceğiz.
Takasmerkezi.com - parasız ticaretin yeni adresi olmak hedefiyle; odaklanarak, çalışarak, gemileri yakarak...
ve bu hikayenin baş kahramanı ile güzel bir röportaj:
http://www.kirtok.com/tr/takasmerkezicom-kurucusu-onder-eren-roportaji/
tüm bilişim eğitimi alan(bilgisayar mühendisi yada programcısı) öğrenciler muhakkak okumalı diyorum. neden sizlerde yapamayasınız.
29.07.2009
farklı uzunluklu string dizilerini dikey eklemek - Matlab
matlabda farklı uzunluklu string dizilerini birbirine dikey olarak ekleyerek matris elde etmek istiyordum, ama birtürlü yapamıyordum.
dikey string ekleme için strvcat (string vertical concatenation) kullanılıyor.
>> s=strvcat('birinci','sekizinci')
s =
birinci
sekizinci
benim istediğim ise biraz farklı, ben zaten kendisi dizi olan stringleri eklemek istiyorum mesala bir cümleyi kelimelere bölüp hecelerine ayırdım ve herbir kelimenin bir satırda , hecelerinde sütünlarda yer almasını istiyorum;
x birinci kelimem ve y ikinci kelimem mesala;
>> x={'bi' 'ri' 'n' 'ci'}
x =
'bi' 'ri' 'n' 'ci'
>> y={'se' 'ki' 'zi' 'n' 'ci'}
y =
'se' 'ki' 'zi' 'n' 'ci'
aynı fonksiyon ile eklemeye çalıştığımda karekter dizisi vermek gerektiğine dair hata veriyor.
>> s=strvcat(x,y)
??? Error using ==> char
Inputs must be character arrays.
Error in ==> strvcat at 29
s = char(varargin{notempty});
bende matris olarak değil hücre olarak oluşturayım dedim şöyleki:
(süslü parentez içine yazıldığında hücre olarak işlem görüyor)
>> s={x;y}
s =
{1x4 cell} {1x5 cell}
bu durumda biri 4 heceli diğeri 5 heceli iki diziyi matrise koymuş oluyorum. aslında benim s matrisim 2 elemanlı, ama herbir elaman kendi içinde farklı uzunluklu diziler ihtiva ediyor.
bu durumda birinci satıra yani ilk dizime ulaşmak istersem dizinin indisini yine süslü parentez içinde vermem lazım:
>> s{1}
ans =
'bi' 'ri' 'n' 'ci'
1. kelimenin hecelerine ulaşmak istersem:
>> a=s{1}
a =
'bi' 'ri' 'n' 'ci'
>> a(1)
ans =
'bi'
ve sonucu karakter dizisine çevirmek istersek:
>> char(s{1})
ans =
bi
ri
n
ci
31.05.2009
Error: Java heap space
minimum 32 MB, max 128MB varsayılan sınır değerleridir.
sınırları değiştirmek için 2 yöntem:
1- comut satırından(comman line) - minumum 128 MB, maximum 512MB olarak ayarlıyoruz-
java -Xms128M -Xmx512M
2- kullandığımız ide üzerinden(eclipse)
Run/Run configurations (yada run as properties)/ Arguments/VM Arguments
buradaki yazı alanına aşağıdaki kodu yazıyoruz. ve Run diyoruz. başındaki -(tire) işaretini unutmuyoruz.
-Xms128M -Xmx512M
24.05.2009
Sıra dışı başarılı gençler - Melih Arat
Bu hizmet nedir? İnternette hoşunuza giden yazıları, marro.ws aracı ile işaretliyorsunuz; ardından sadece işaretlediğiniz bölüme siz ya da başkaları erişebiliyor. Bir web sitesi ya da upuzun bir metnin değil, sadece beğendiğiniz bölümler saklanıyor; paylaşılıyor. Böylelikle internet denilen bilgi deryası / bilgi çöplüğünde bulduğunuz yakutlar ve mücevherler açığa çıkarılarak paylaşılabiliyor. Meraklıları marro.ws adresinden deneyimleyebilirler.
Bilkent Üniversitesi Uluslararası İlişkiler öğrencisi Aykut Karaalioğlu ile Başkent Üniversitesi Bilgisayar Mühendisliği bölümünden mezun Ali Rıza Babaoğlan'ın bu yenilikçi ürünü, İtalya'da yıllık internet konferansında ve Almanya'da Avrupa'nın en büyük konferansı Nex'09'da sunuldu. Zaten projelerinin Avrupa ve dünyada bu kadar fazla ilgi görmesinin nedeni bu konferanslardaki sunumlar. Amacım bu iki gencin yenilikçi ürünlerini tanıtmak değil, bir parça olsun bu işi yaparken henüz 21,5 yaşında olan bu gençlerin vizyon ve eylemlerini paylaşmak. Önce daha yakından tanıdığım Aykut Karaalioğlu'ndan başlayayım. Aykut bir gün asistanım olmak için başvuruda bulundu. Ankara'da o sırada bir asistanım olmadığı için deyim yerindeyse kendisini asistan aday kadrosuna aldım. Görüşmelerimiz sırasında Aykut'un önemli bir işadamı olmak istediğini net bir şekilde gördüm. Çok az 20 yaşında genç, kararlı bir şekilde "ben büyük işler yapacak bir işadamı olacağım" diyor. Aykut kendisine inanmış bir gençti. Aykut'un bu fikrini babası da paylaşıyordu ve aynı zamanda o da işlere girişmesi konusunda teşvik ediyordu. Annesi de aynı şekilde bu desteği veriyordu. Pazarlama iletişimi konusunda dünya çapındaki aylık toplantı ağı Likemind'in Ankara ayağını oluşturdu. Bu ağ bir kafede pazarlama iletişimine ilgi gösteren insanların toplanması şeklindeydi. Bu arada Aykut, Amerika'da değişik toplantılara katıldı; Amerika'dan kitaplar aldı ve kendini internet işlerine odakladı. İnternet işlerine odaklanmasının nedeni, internetin büyük sermayeler olmadan iş kurulabilir ve hızlıca ilerleme sağlanabilir bir alan olmasıydı. Aykut'un aldığı radikal kararlardan bir tanesi de kendi Facebook ve benzeri hesaplarındaki tüm Türk tanıdıklarını silip sadece yabancı insanları bırakmaktı. Çünkü küresel bir pazarlama ve küresel ağ sadece yabancılar ve yabancılarla görüşen insanlarla büyüyor. Likemind toplantısı, insanın çevresini genişletmek için iyi bir buluşma ve Aykut, ikinci buluşmada Ali Rıza Babaoğlan ile tanışıyor.
Ali Rıza Babaoğlan, ödül koleksiyoncusu bir bilgisayar mühendisi. IBM tarafından dünyanın gelecek vaat eden 75 mühendisinden biri olarak seçildi. Microsoft tarafından da Türkiye'deki en iyi öğrenci destekçisi seçildi. Unvanları bu yazıya sığmayacak kadar uzun. Bu ikili takımda Ali Rıza Babaoğlan, teknik vizyon, yönetim ve uygulama becerilerine sahip. Aykut ise sosyal ağ kurma ve pazarlama becerilerine sahip. İkisi bir araya gelince ortaya bir başarı öyküsü çıkıyor. Avrupa'daki sunumlar için bir melek yatırımcıya ihtiyaç duyuyorlar. Çünkü Almanya ve İtalya'daki sunumlara gidebilmek için bütçeye ihtiyaç var. Bu bütçeyi Aykut'un çabaları ile buluyorlar. Ama Ali Rıza Babaoğlan'ın gayretleri olmasa proje teknik olarak ortaya çıkamayacak.
Sonuç: Vizyon+Ürün+Sosyal Ağ+Ekip Çalışması=Başarı.
kaynak : http://www.zaman.com.tr/yazar.do?yazino=851076&title=sira-disi-basarili-gencler
changing eclipse workspace / eclipse çalışma alanını değiştirmek
select in exitsing workspace or click other and browse new work space.
dosya menüsünden workspace değiştirmeyi seçiyoruz , iki alternatif çıkıyor:
1- var olan workspace ler arasında geçiş yap
2- diğeri seçerek yeni workspace tanımlama.
bu kadar :D
24.04.2009
Asp.net 2.0 ile mail gönderme
using System.Net.Mail; (2.0 dan önceki örneklerde using System.Web.Mail; kullanılıyordu)
try{
MailMessage msgMail = new MailMessage("KimdenMail","KimeMail");
msgMail.Subject = "asp.net ile mail gönderme";
msgMail.IsBodyHtml = true;
string strBody = "ASP.NET 2.0 c# mail gönderme"
msgMail.Body = strBody;
//SmtpClient ayarları tanımlamada veriliyor , varsayılan port 25 dir.
SmtpClient istemci = new SmtpClient("smptpServerAdres", smtpPort);
istemci .Send(msgMail);
Response.Write("Mail Gönderildi");
}
catch (Exception ex)
{
Response.Write("Hata Oluştu:
");
Response.Write(ex.Message);
}
not: eğer smpt ayarlarının web.config de olmasını istiyorsak web confige system.net\mailsettings\smtp\network iç içe taglerini ekliyoruz.(nasıl eklendiği için kodlardan web.config dosyasına bakınız) Ve smtp istemcisini tanımlarken aşağıdaki gibi kullanıyoruz.
SmtpClient istemci = new SmtpClient();
Basit ve gelişmiş(gizli,gelişmiş, eklenti(attach)) mail gönderme için örneği buradan indirebilirsiniz.
15.04.2009
Bilişim Çağında Bilgisayar Mühendisliği Eğitimi
Teknolojinin hızını kavrayabilmek için, bilgisayarların değişim serüvenine göz atmak yeterlidir. 1946 yılında, ancak saniyede 5000 işlem yapabilen ve büyükçe bir sinema salonuna yerleştirilebilen zamanının teknoloji harikası olan ENIAC isimli bilgisayar bilgi giriş ve çıkışı oldukça zor olmasına rağmen, hesaplamalardaki hızı sayesinde önemli projelerde kullanılmıştır [1]. Bugün ise, bilgisayar teknolojisi , Intel Core 2 Quad T9400 işlemcili 4 Ghz saat frekanslı, 600 Mhz çekirdek ve 900 MHz de bellek frekansında çalışan süper dizüstü bilgisayarların üretildiği noktaya ulaştı[2].
Mühendislik Eğitiminin bu büyük hıza ayak uydurabilmesi için, teknolojinin ihtiyaçlarına cevap verecek çağdaş bir formata kavuşması ve daha önemlisi sürekli kaliteyi hedef alması zorunluluğu bulunmaktadır. Temel alan sayılan Elektrik Mühendisliğinden doğan ve son 20-25 yılda, endüstriyel gelişmenin sonucu yeni bir mühendislik alanı olarak ortaya çıkan Bilgisayar Mühendisliği; bilgisayar bilimleri, bilgisayar donanımı ve bilgisayar yazılımı olarak 3 anabilim dalına ayrılır. Günümüzde, bazı üniversitelerde Yazılım Mühendisliği ve Enformatik Mühendisliği isimli bölümler bulunması Bilgisayar Mühendisliğinin de bağrından yeni alanlar doğurduğunu göstermektedir.
Temel ilgi alanımız olan Bilgisayar Mühendisliği Eğitiminin kalitesi çağdaş ders programları ve nitelikli öğretim üyesi sayısı ile doğru orantılıdır. Ders programlarının hazırlanmasında, uluslararası standartlar ve ülkenin koşulları çok önemli bir rol oynarlar. Bilgisayar Mühendisi çok iyi bir matematik ve fizik altyapısına sahip olması gerekir. Oysa ülkemizde temel eğitim seviyesinde bu altyapı kurulamadığı bilinen bir gerçektir. Bilgisayar Mühendisinin kazanması gereken önemli bir araçta analitik ve algoritmik düşünme tarzıdır. Bunun geliştirilmesi, ilk ve orta öğretimde öğrenciye verilen ezber eğitimi yerine, düşüncenin geliştirilmesi ve yorum yapma kabiliyetinin artırılması ile mümkün olacaktır.
Kaliteli eğitimin diğer unsuru olan, nitelikli öğretim elemanı sorunu tüm alanlarda problem olarak karşımıza çıkmaktadır. Ancak Bilgisayar Mühendisliğinde nitelikli olması bir yana öğretim üyesi bulmak dahi çok güçtür. Zira akademiye yatkın nitelikli öğrencilerin her zaman sektörde iş bulmaları veya yurtdışına çıkmaları mümkün olduğundan üniversitelerimizin bilgisayar mühendisliği bölümleri öğretim üyesi açıklarını kapatamamaktadırlar.
Yazılımcılar arasında yaygın olan "Öğretmek program geliştirmekten zordur" düşüncesi eğitim işinin çok zor bir iş olduğunu, öğretim elemanının bilgi birikimi ile birlikte iyi bir deneyiminin de olmasını gerektirir. Batıda, çoğunlukla derse sadece profesörler ve doçentler girebilir, araştırma görevlileri giremez. Ancak, çoğu üniversitelerimizde öğretim elemanı açığı, deneyimsiz araştırma görevlilerini ders vermeye zorladığından kalitenin önünde bir engel teşkil etmektedir.
Son söz, ülkemizde eğitimin özel olarak bilgisayar mühendisliği eğitiminin kalitesine etki eden kuşkusuz daha pek çok faktör varolmasına rağmen, bu yazıda sadece birkaç tanesini ele alabildik. Zamanımızın en önemli değerlerinden biri, toptan kalite anlayışının her alana yayılması olduğundan, eğitim de bunun altyapısını kazandırmayı hedeflerse, problemlerimizin büyük çoğunluğunun çözüme kavuşacağına olan inancımı belirtmek isterim.
Örnek ER(varlık-ilişki) Diyagramları
aynen yazıyorum bilisim kulübünden :
Çok değişik konularla ilgili olarak veritabanı tasarımları (ER Diagram) yayınlayan bir web sitesi bu. Diyelim ki hastane programı yazacaksınız. Hastalar, doktorlar, vb. bir sürü tablo tanımlamanız, aralarındaki ilişkileri belirlemeniz gerekir. Bu sitede yapılmışı var.
http://www.databaseanswers.org/data_models
Bu siteyi kar'la ilk gördüğümüzde bir anlam veremedik. Bir insan evladı nasıl ve neden böyle bir çalışma yapar ki? Sonra şuna karar verdik: Bu siteyi yapan adam bir tür danışman. Uygulamaların analiz aşamasında programcılara yardımcı oluyor sadece. Bu sayede bir sürü uygulama analizi yapma şansı olmuş olabilir.
22.02.2009
DataColumn.AutoIncrement özelliği
dcsira.AutoIncrement = true;
dcsira.ColumnName = "sirano";
dcsira.DataType = typeof(int);
dcsira.AutoIncrementSeed = 1;
//bir tablo oluşturup, kolonlarına kendi kolonumuzu ekliyoruz.
DataTable dt = new DataTable();
dt.Columns.Add(dcsira);
//veritabanına bağlantı ve adapter tanımlıyoruz
SqlConnection baglan = new SqlConnection("Data Source=(local);Initial Catalog=master;User ID=sa;Password=sa");
SqlDataAdapter da = new SqlDataAdapter("SELECT TOP (10) name FROM spt_values", baglan);
//adapterin fill metodu ile tablomuza sorgumuzdan dönecek verileride ekliyoruz.
baglan.Open();
da.Fill(dt);
baglan.Close();
artık dataTable nesnemiz 2 kolonlu(sirano,name). sirano yu biz oluşturduk ki değerleri 0 dan başlayıp veri setimizin sayısı kadar birer artarak gidiyor, name ise veritabanından gelecek. Burada oluşturduğumuz kolonu önce tabloya ekliyoruz, sonra veritanabından geleni ekliyoruz bu sıra önemli. zira önce fill yapıp sonra kendi kolonumuzu eklersek bizim kolonun değerleri boş kalır.
uygulama: bir websayfası üzerinde repeater nesnesi ile verilerin listelenmesi uygulamasını buradan indirebilirsiniz.
21.02.2009
asp.net'te form,panel DefaultButton özelliği
bunun için şöyle bir çözüm varmış asp,php gibi dillerde. Her ayrı kısmı(üye giriş ve kayıt) ayrı ayrı form tagları içene alıyor ve er formun DefaultButton özelliğine ilgili butonu veriyormuşsun. ama aspn.nette artık masterPage ile sayfalarda tek form olmaya başladı. demek onun yerine başka bişey olmalı diye düşününce Paneller imdada yetişiyor. şöyleki artık herbir bölümü bir panel içine alıyorsun ve panellerin default buton özelliğini ilgili buton yapıyorsun. böylece kullanıcı giriş bölümü paneli içindeki textboxlara veri giyor ve entera basıyorsa giriş butonu, kayıt paneli içindeki textboxlara veri giriyor ve entera basıyorsa kaydet butonu çalışıyor. sorunda çözülmüş oluyor :D
not: sorun ve çözümü için teşekkür ederim Kâzım :). Öğrencilerimden öğrenmeyi herzaman sevmişimdir...
örnek uygulama: (Kâzım derki)
Resimdeki gibi 3 textbox ve 3 buton var. imleç hangi texboxta ise entera bastığımızda onun altındaki butonun eventi çalışsın istiyorum.
çözüm: her grubu bir panel içine alıp panelin default buton özelligine panelin içindeki butonun ID'sini yazmamiz gerekiyormus.Sunun gibi yani :
4.02.2009
Java e-doküman
2- Java Lecture Notes: http://www.cafeaulait.org/course/
Veritabanlı Program Geliştirme
- arayüzde ki formlarda neler olmalı
- hangi tasarımda bilgiye ulaşmak, güncellemek, eklemek daha kolay olur
- yönetici ne tür raporlar ister
- raporlar nasıl tasarlanmalıdır
peki örnek projeyi nerden bulacak, ya bi yerde işe başlayacak orada görecek, ki firmalar her projesini göstermez yada netten örnek projeler bulacak.
Tam burada bugün imdadıma acsess yetişti. Gülmeyin, accessden ne çıkar demeyin. Northwind adında örnek bir veritabanı ve kullanıcı arayüzü var ( biliyorsunuz accesste kullanıcı arayüzü tasarımıda yapılabiliyor) . inceledim gerçekten hoşuma gitti. öğrencilere birtürlü anlatamadım, ara ara projelerinde şöyle olmalı böyle olmalı dediğim noktaların büyük kısmını bu arayüzde gördüm. bunda sonra ilk dersteki işim öncelikle bu veritabanını ve arayüzü tanıtmak olacak.
peki nasıl ulaşabiliriz bu veritabanına access > yardım/help> örnek veritabanı/ samples databases > northwind.
öncelikle yüklemenizi isteyebilir internetten , evet diyin çıkan soruyo. işlem tamamdır.
24.01.2009
Attempt to execute SCRIPT .... as a function
Hata : Attempt to execute SCRIPT fonksiyonadi as a function
Sorun : Dosya adı ile Fonksiyon adının aynı değil. (the file name and function name are not same)
Çözüm : function [geriDonenDegerler]=fonksiyonAdi (paramatreler)
buradaki fonksiyonAdi ile dosyanın isminin aynı olması gerekir. Ya fonksiyon adını yada dosya adını düzeltin. (the file name and function name have to be same )
5.01.2009
CvZip Bilişim Sektöründe Kariyer
- .... gibi kendini ispatlamış siteler varken yenilerin şansı yok!
- vs vs
bir sürü şey söylenebilir olumsuz anlamda ama birde işin diğer tarafına bakmak lazım.
- sektör bazlı olması güzel
- yeni girişimcilerin olması güzel
- ilan sayısı hiç de fena değil
- arama yaparken boğulmaya gerek yok, çünkü zaten sektörel
- freelance ilan modülü var, ve direk menu olarakda ayrı
- 'uzamanına sorun' başlıklı forum modülü var, ve puan sistemi var
daha belki nicesi...
niye bardağın dolu tarafına bakmayalım ki :)