9 Eylül 2009 Çarşamba

Vista için kırmızı alarm!

Eğer Windows Vista kullanıyorsanız bu uyarıya kulak verin; sisteminiz risk altında olabilir.

Windows Vista ve Windows Server 2008'de keşfedilen bir güvenlik açığı saldırgana kurban bilgisayarı internet üzerinden yeniden başlatma fırsatı veriyor. Açık, Microsoft'un SMB2 protokolünde yer alıyor.

İnternette, yeni keşfedilen güvenlik açığını kullanan bir zararlı ortaya çıktı bile. Kullanıcılar saldırının tüm 32-bit/64-bit Vista ve Windows Server 2008 sürümlerinde başarıya ulaştığını bildiriyor. Açık ilk keşfediliğinde Windows 7'nin de bu açıktan muzdarip olduğu iddia edilmişti; fakat geçen süre zarfında Microsoft bir güvenlik bülteni yayımlayarak duruma açıklık getirdi. Bültendeki bilgilere göre açıktan etkilenmeyen sistemler şu şekilde: Windows 2000, Windows XP SP2 ve SP3, Windows XP x64 Edition SP2, Windows Server 2003 SP2, Windows 7 ve Windows Server 2008 R2.

Microsoft, gerekli yamayı ne zaman çıkaracağına dair bir açıklama yapmadı; fakat MAPP programına dahil ortaklarıyla güvenlik açığı hakkında daha fazla bilgi sunmak için çalıştıklarını bildiriyor.

Google bunu da yaptı!

Google sonunda oyunlara da el attı: İşte eski bir efsanenin Google'la yeniden hayat bulan hali.

Monopoly tartışmasız dünya çapında en çok satmış kutu oyunlardan biri. Google Street View'un kendine has şöhretini zaten yakından biliyoruz. Ve bu iki şöhret sonunda Hasbro ve Google'ın çabalarıyla, internette bir araya geliyor. Monopoly City Streets adıyla hazırlanan yeni internet oyununda Hasbro'nun Monopoly'si ile Google'ın Street View'u buluşacak ve oyunculara dünya üzerinde sahip olmak istedikleri her hangi bir binanayı elde etme şansı sunacak.

Bu şekilde bir anlamda gerçekliğe bir adım daha yaklaşan Monopoly'nin sahibi bu anlaşmadan son derece memnun. Her zaman yeniliklere sıcak bakan Google da anlaşmadan hiç şikayetçi değil. Oyunun amacı ise basit. Bu popüler emlak oyununda arkadaşlarınızla dünya üzerinde istediğiniz herhangi bir sokağı satın alıp o sokağa binalar ve gökdelenler dikmek için yarışacaksınız.

Bu oldukça eğlenceli görünen oyunun bugün resmi olarak yayına girmesi bekleniyor. Gelişmeleri buraya tıklayarak takip edebilirsiniz...

Antika bilgisayar dönüyor!


60 yıl öncesinin süper bilgisayarı Harwell bugün çalışırsa ne olur? Cevabı çok yakında öğreneceğiz.


İngiltere ilk bilgisayarından birine 1949 yılında kavuşmuştu. O zamanlar için müthiş bir cihaz olan Harwell üretildikten ancak 2 yıl sonra, 1951 yılında kullanılmaya başlanabilmişti. 2,4 metre x 5 metre büyüklüğünde olan Harwell zamanında matematiksel hesaplamalar yapmak için kullanılıyordu. İngiliz hükümetinin resmi açıklamasına göre Harwell'dan aynı zamanda sivil nükleer projeler konusunda da faydalanılmıştı. Harwell, birkaç yıl boyunca 6 ila 10 kişilik özel bir ekip tarafından kullanıldı. Bundan sonra daha küçük ve daha gelişmiş bir bilgisayar kullanma imkanı ortaya çıktığında Harwell emekliliğe adım attı.

Fakat uzun zamandır kullanılmadığı için şu anda Harwell çalışır durumda değil. Diğer yandan İngilizler bu nostaljik bilgisayarlarını tekrar çalışır halde görmek istiyorlar. Ama tahmin edebileceğiniz gibi Harwell'ın teknolojisi ile günümüzdeki teknolojiler birbirlerinden oldukça farklı. Bu "restorasyon" işlemi için kurulan ekip, emektar bilgisayarı tekrar çalışır hale getirebilmek için yaklaşık 1 yıllık bir süreye ihtiyaç duyulacağını ön görüyorlar. Fakat bu sürenin ardından kendine gelecek olan Harwell'ın bizim bugün kullandığımız PC'lerin yapabildiklerinin 10'da birini bile yapabilmesi pek de mümkün görünmüyor.

Meraklısına 3 müthiş site!

Yazılımcılar, ağ yöneticileri ya da PC kullanıcıları: Tüm sorularınızın cevapları bu sitelerde gizli.

Yazılım guru'ları Joel Spolsky ve Jeff Atwood geçen yıl Stack Overflow sitesini hayata geçirerek, yazılım geliştiricileri için bir platform oluşturmuşlardı. Aynı motorla yeni kurdukları sitelere "Stack overflow trilogy" diyorlar: Stack Overflow, Server Fault ve şimdi de Super User hayata geçti.

Server Fault, sistem yöneticileri için bir soru cevap sitesi. Ağlar, sunucular ve uzaktan kontrol konularında ustalardan yardım almak mümkün

Super User ise bilgisayar meraklılarına, "power user" olarak adlandırılan ve bilgisayarla ilgili bütün detayları kurcalayan kullanıcılara yönelik bir site. Site, bu tür kullanıcılar için dev bir soru cevap veri tabanına sahip. İngilizceniz iyiyse ve üst düzey bir kullanıcıysanız kolay kolay cevaplanamayan soruların cevaplarını burada arayabilirsiniz.

8 Eylül 2009 Salı

Dünya'yı Google kurtaracak!

Google PageRank Dünya'yı kurtaracak. Sadece netin değil, doğanın ilişkilerini çözüyor.

Google'ın başarısının sırrı olan PageRank sistemi bilinenden çok daha fazlasını yapabilir. Nasıl mı?


Google'ın başarılar listesi gün geçtikçe büyüyor: Google'ın PageRank sistemi gezegeni kurtarmakta kullanılacak.

Çevre ve iklim felaketleri çağımızın en çok korkulan olayları arasında yer alıyor. Bu konuda araştırmalar çok önemli. Ekosistemlerin kendi içlerinde nasıl bağlantılı olduğunu anlamak da bu araştırmaların önemli bir parçasını oluşturuyor.

İnternet sitelerinin birbirleriyle bağlantılarını analiz eden Google'ın PageRank sistemi, başarısının da anahtarını oluşturuyor. Ancak anlaşılan bu teknolojinin tek marifeti bize internette aradığımız sonuçları getirmekten ibaret değil. PageRank, doğa bilimleri alanında kullanılabilir.

Google PageRank nasıl kullanılacak?

Bu sistem sayesinde doğada kim kimi yiyor ortaya koymak, besin zincirini daha iyi anlamak mümkün hale geliyor. Kirliliğin yok ettiği türler yüzünden doğa nasıl bir değişime uğrayacak? Bunun çevreye yansıması ne olacak? İşte bunlar anahtar sorular. Okyanusta yaşayan bir canlı türünün kirlilik yüzünden yok olmasının nasıl küresel ısınmayı arttırabileceği bu algoritma kullanılarak çok daha iyi anlaşılabilecek. Doğadaki etkileşimler anlaşıldıkça, çevre felaketlerini önleyici çalışmalar yürütmek kolaylaşacak.

WWF-UK yöneticisi Dr. Glyn Daives "Bizi bağlayan karmaşık ekolojik ağ anlayışımızı güçlendirecek her araştırmayı memnuniyetle karşılarız" diyor. Alandaki uzmanlar, PageRank'ın yararını övüyor.

Windows 7'de parti zamanı!

Windows 7 peçetesine, balonuna, veya bulmacasına ne dersiniz? Ama durun; daha da ilginci var!

Microsoft, Windows 7'nin çıkışını kutlamak için parti verenlere ödüller dağıtıyor. Microsoft'un pazarlamacıları bu tür bir kampanya ile şirketin ve Windows 7'nin saygınlığını zedeleyecek mi? İşte bu soru internet forumlarında yankılanıyor.

Microsoft henüz resmi duyuruyu yapmasa da profesyonel parti düzenleyen House Party'nin sitesinde detaylar yer alıyor. Microsoft'un onayını alıp 10 arkadaşınızı çağırmanız bir de üstüne Microsoft'un şartlarını imzalamanız gerekiyor. Zaten altına imza atılacak bir yasal kontrat, parti yapanların eğlenmek yerine "Ya bir şeyler yanlış gider de Microsoft bana dava açarsa?" diye ecel terleri dökmesine sebep olacaktır.

Detaylara gelelim, 22 Ekim ve 29 Ekim arasında planlanan partilerin temaları "PhotoPalooza, Media Mania, Setting up with Ease, Family Friendly Fun." olarak listeleniyor.

Microsoft bu partilerin dünya çapında gerçekleşmesini istediği için Avustralya, Kanada, Fransa, Almanya, Hong Kong, Hindistan, İtalya, Japonya, Meksika, İspanya ve İngiltere'deki kullanıcılara parti düzenlemeleri karşılığında hediyeler veriyor.

Windows 7'li peçete isteyen?

İşte bu hediyeler:

• İmzalı bir Windows 7 Ultimate (Bill Gates mi yoksa Ballmer mı imzalayacak acaba?)
• Windows 7 masaüstü tasarımında bir deste oyun kağıdı.
• Windows 7 masaüstü tasarımında bir yapboz.
• Windows 7 masaüstü tasarımında bir poster.
• Windows 7 masaüstü tasarımında 10 el çantası.
• Dekorasyon için kağıt süsler.
• Dekorasyon için balonlar.
• Masaüstü süsü.
• Bir paket Windows 7 peçetesi.

Bu ürünler 30 Ekim'de eBay üzerinden satışa sunulacak. Parti düzenlemeye üşeniyorsanız ancak Microsoft Windows 7 peçetelerinin dayanılmaz cazibesine(!) kapıldıysanız buradan edinebilirsiniz.

Parti ev sahipleri arasında düzenlenecek bir çekilişte 750 dolar değerinde bir mini-notebook kazanma şansı da, Microsoft çalışanı olmayanları bekliyor.

Ağır Windows 7 suçlaması!

Best Buy'dan sızan slaytlar...

"MS Win 7 hakkında yalan söylüyor": Dev firma belki de tarihinin en ağır suçlaması ile karşı karşıya.


Daily Finance'ın yaptığı habere göre Microsoft Best Buy çalışanlarını Windows 7'yi satmak üzere yetiştiriyor. Ancak meselenin yetiştirmesi değil, açık kaynak kodlu Linux işletim sistemini kötülerken, Windows'u yalan söylemek pahasına övmelerini istemesi olduğu söyleniyor. Buna kanıt olarak da anonim bir Best Buy çalışanının sızdırdığı eğitim slaytları gösteriliyor.

Bu slaytlardan birinde "Linux, iTunes, Zune, Quicken, Photoshop ve Office 2007 gibi yaygın uygulamaların ve online hizmetlerin çoğunu desteklemez" deniliyor. Daily Finance muhabiri New York'ta Houston Street'te yer alan yerel Best Buy'a giderek araştırma yapmış. Linux yüklü dizüstü veya netbook satmadığı söylenen mağazada kullanıcıların Linux'e karşı eğitildiği iddialarını araştırmak istemiş.

Houston, Teksas'ta çalışan bir bilgisayar programcısı olan Christopher Lemire'in telefon röportajında söylediklerine bakalım: "Microsoft genelde böyle yapar ama bu sefer işi uç noktaya taşımışlar. Bu sefer gerçekten Linux'a saldırıyorlar. Her defasında yeni taktiklerle geliyorlar. Bunlar sadece yalanlar ve endoktrinasyon!"

Lemire'den ağır sözler

Bununla da kalmayan Lemire devam ediyor: "Microsoft ürünlerinde yer alan özelliklerin çoğu Apple veya Linux'ta doğmuştur" ve Microsoft Internet Explorer'ın Firefox ile Safari'den sonra sekme özelliğini eklemesini örnek gösteriyor. Lemire Skype gibi yazılımları örnek göstererek Skype'ın Linux için mutlak ses ve görüntü çözümü olduğunu söylüyor.

Linux blogcusundan Microsoft'a zehir zemberek sözler bununla da kalmıyor. Freedom and Linux blog'unu yazan bir kullanıcı Microsoft'u çok sert sözlerle eleştiriyor.

"Redmond ve Madison Ave.'den yayılan yanlış bilgilendirmelere inanmayın. Linux, rutin bir biçimde trojan, casus yazılımlar, adware ve virüsler tarafından ele geçirilmek haricinde, Microsoft'un yaptığın her şeyi yapıyor."

Daily Finance'ta yer alan habere göre Hamilton Ohio'dan bir Best Buy çalışanı slayt gösterilerini sızdırdı. GodofGrunts mahlası altında PhotoBucket'a yüklediği slayt şovlarında yayınladığı görüntüler, yayınlayanın kimliği belli olmadığı için doğrulanamıyor. Ancak çalışmalar sürüyor.

Google Chrome geliyor

Microsoft'un Worldwide Rapid Response Team'inden bir sözcü slaytların gerçekliği konusunda henüz doğrulama sunamadıklarını belirtti.

New York'taki Best Buy çalışanları, Windows bilgisayarların virüslere karşı Linux bilgisayarlardan daha savunmasız olduğunu kabul ediyor. İşinin güvencesi için kimliğinin açıklanmasını istemeyen bir Best Buy satıcısı, Daily Finance'a konuştu "Linux'ta virüsler konusunda endişelenmenize gerek yok. Oysa Windows'ta mutlaka anti-virüs yazılımı satın alarak korunmalısınız."

Bununla birlikte ortaya çıkan Microsoft eğitim slaytlarında "Get the facts straight" yani doğruları bilin kısmı altında Microsoft Linux'un, Windows'tan daha güvenli olduğu ifadesinin bir mit olduğu belirtiliyor. Slaytların, Microsoft Windows'un Apple ve Google'a, Linux'un da ciddi bir tehdit oluşturabileceği günlere karşı bir savaşa hazırlık eğitimi olduğu iddia ediliyor. Bu arada Google Chrome işletim sisteminin de Linux tabanlı olduğunu hatırlatmakta fayda var.

Bu ağır iddiaların karşılığı ne olacak?

Bir Linux programcısı "Tüketiciler için Linux geliyor ve Microsoft stratejisini belirleyene kadar oyalama taktiği uyguluyor" diyor. Bu programcı da iddialara göre birkaç yıl Microsoft için çalışmış. Bununla birlikte aynı programcı Microsoft'un işletim sistemlerinin ortalama kullanıcı için Linux sistemlerden daha kolay kullanılabilir olduğunu da belirtiyor. Slaytlar hakkındaki yorumu ise "Yüzde yüz doğru değil ancak şu anda bu slaytlar çoğu ortalama kullanıcı için doğru" oluyor. Bunun üzerine "Ancak şunu sormak gerekiyor, bu slaytlarda söylenenler Chrome geldiğinde ne kadar doğru olacak?"

Daily Finance'ın bu haberi bugüne kadar Microsoft için söylenen en sert sözleri ve en ağır suçlamaları bir araya getiriyor. Bütün bu iddialara Microsoft'un tepkisinin ne olacağı merak ediliyor. Bu iddialar gerçekten Linux'e karşı yürütülen bir Microsoft kampanyasına cevap mı? Yoksa Windows 7'nin çıkışından önce Microsoft'a düzenlenen bir saldırı mı? Ve belki de üçüncü bir şık, Chrome ile Windows'un gölgelerdeki savaşı...


kaynak:www.veteknoloji.com

7 Eylül 2009 Pazartesi

Sony'den Güzel Bi Atılım

Daha önce Firefox'un İnternet Explorer tekelini kırmak için Microsoft'u dava ettiğini duymuşsunuzdur. Peki Sony cephesinde bu durum ne?

Sony firması, ürettiği dizüstü bilgisayarlarında önyüklü olarak Chrome'un bulunması için Google ile bir anlaşma imzaladı. Ünlü ekonomi gazetesi Financial Times'a göre, Google ilk kez böyle bir anlaşmaya imza attı. Haberde Chrome yüklü ilk Vaio bilgisayarların pazara dağıtıldığı, ilginç bir başka ayrıntı olarak dikkat çekiyor. Haberde, Google'ın diğer üreticilerle de benzer anlaşmalar için görüştüğü de yer alıyor.

Hatırlayacağınız üzere, Google yaklaşık bir yıl önce tarayıcısı Chrome'u duyurmuştu. Google, İnternet'te bilgisayar ağlarına (cloud computing) bağlanmak için daha fazla uygulama kullanılmasıyla beraber tarayıcının zamanla çok daha kritik bir role sahip öngörüyor.

Net Applications gibi pazar araştırması firmalarının ölçümlerine göre, Google'ın tarayıcısı ilk yılında pazardan sadece %3'lük bir pay almış durumda. Sony ile yapılan anlaşma, bu oranı artırmayı hedefliyor.

2 Eylül 2009 Çarşamba

Windows 7 is avaliable to Try It For Free

Başlık belki yanlış olmuş olabilir demek istediğim şu Windows 7 artık tümüyle hazır ve final sürümünü ücretsiz deneyebilirsiniz. hemde hiçbir kısıtlama olmadan 90 gün boyunca kullanabilirsiniz.(Tabi eğer benim gibi sık format atan biri iseniz bu süre size fazla bile gelebilir :)

Peki Kullanabilmek için ne lazım?

Sadece bir Windowslive yada Hotmail hesabınız olması yeterli ki bilgisayar kullanan herkesin MSN hesabı olduğunu düşünürsek aslında ekstradan hiçbirşeye ihtiyaç yok.

Verilen linke tıkladığında açılan sayfanın en altında bulunan "Select the Windows 7 Enterprise 90-day Trial you want to download" kutucuğunun içindeki "Download the 32-bit (x86) version" veya "Download the 64-bit (x64) version" kısımlarının altından isteğe göre indirmek istediğiniz dili seçerek indirme işlemine başlayabilirsiniz.Tabi bu işlemleri yaparken webbrowser olarak Internet Explorer'ı kullanmanızı tavsiye ederim. Çünkü daha hızlı.
(Bu arada Türkçe paketin listede bulunmadığını belirtmekte fayda var.)

Daha sonraki sayfada oturum açarak Windows kullanıcısı olduğunuzu belirtip, ardından gelen formu doldurarak indirmeye başlayabilirsiniz.
***Fakat bu deneme sürümü Profesyoneller ve Developer'lara yönelik olduğu için "What occupation best describes you?" bölümünde "Non IT Manager,Student yada Customer" seçeneklerinin seçilmesi durumunda indirme engellenecektir.
İşin en güzel tarafı da deneme sürümü olmasına rağmen tüm özelliklerinin açık olması. Yani Windows 7'nin hertürlü özelliğinden maksimum düzeyde faydalanabilmeniz

Download:

Yeni Adresim.....

www.yunusdemir.net

Paylaşımlarıma artık bu siteden de ulaşabilirsiniz.

not: domain şirketi ile ilgili bir sorundan dolayı site bazen ulaşılamayabiliyor. o tür durumlarda
bu linki kullanabilirsiniz.

1 Eylül 2009 Salı

Michigan Üniversitesi Programlama Dökümanları

Döküman içerikleri gayet sade ve son derece anlaşılır fakat tek sorun ingilizce olması. Şayet ingilizce biliyorsanız bu dökümlar oldukça işinize yarayaraktır.

7 Temmuz 2009 Salı

Değişkenler

Değişken: program verilerinin tutulduğu bellek gözleridir ve bu bellek gözleri programlama dillerinin en temel parçasıdır. Değişkenlerin bir isimleri ve bellekte kapladığı yerin boyutunu belirten türleri vardır.

Değişken isimleri ingiliz alfabesindeki büyük ve küçük harfler, rakamlar ve “_” alt çizgi karakterinden oluşabilir. Fakat rakam ile başlayamaz. Ayrıca değişken isimleri istenilen uzunlukta olabilir fakat program derlendiği sırada sadece ilk 31 karakteri göz önüne alır.

Değişken türleri ise temel olarak 3 çeşittir. Bunlar kayar noktalı sayılar, tam sayılar ve karakterlerdir. Dipnot: karakter değişken türü de bi tam sayı türüdür.(nedenini kendiniz bulun ;))

Değişken Tanımlama

Değişkenler farklı türlerde yani boyutlarda olabilir. Bunlar arasında en yaygın olarak kullanılanı int (integer) türüdür. Bu tür işletim sistemine bağlı olarak, 32bitlik sistemlerde 4 bytelık yer kaplar. Dolayısı ile int türünde bir değişken içersinde
-2,147,483,648 ila 2,147,483,647 arasındaki değerler saklanabilir.

Çünkü; 1byte=8bit olduğundan ve int türü 4byte yer kapladığından

28*28*28*28=4294967296 adet sayı tutulabilir.

Bunları yarısı negatif sayılar, yarısı pozitif sayılar olduğu için

4294967296/2=2,147,483,648

Yani 2,147,483,648 tane negatif, 2,147,483,647 tane pozitif.

Peki neden pozitifler negatiflerden bir eksik. Onu da siz bulun J

Bir değişken tanımlanacağı zaman önce türü belirtilir ardından değişkenin ismi verilir ve noktalı virgül ile sonlandırılır.

Şimdi bunu örnek bi program üzerinde görelim.

#include
using namespace std;
int main()
{
int degisken1;
int degisken2;

degisken1=5;
degisken2=degisken1+10;
cout<<”degisken1 = ”<<<< degisken2 ="">

şimdi açıklamaya main() fonksiyonunun başlangıcından başlıyorum.

öncelikle degisken1 ve degisken2 diye iki farklı int türünde değişken tanımlanmış. Daha sonra degisken1 degiskenine 5 tam sayı degeri atanmış. Daha sonra degisken2 degiskenine degisken1’in degeri artı 10 atanmış. Yani 5+10=15 atanmış.(gördüğünüz gibi degisken icersinde tutulan değerler tam sayı olduğu için normal dört işlemleri de degiskenler üstünde uygulayabiliyoruz.)

daha sonra da önce degisken1’in degeri ve sonra da degisken2’in degeri ekrana yazdırılmış.

**NOT1**=Değişkenleri kullanmadan önce tanımlanız gerektiğini asla unutmayın!

**NOT2**=C++’ın anahtar kelimelerini değişken ismi olarak kullanamazsınız. Anahtar kelime özel anlamı olan önceden tanımlanmış sözcüktür. C++’ta 30’a yakın anahtar kelime vardır. Örn; if,while,class,define bunlar anahtar kelimelerdir. Çünkü daha önce tanımlanmış ve C++ için özel anlamları olan kelimelerdir.

Değer Atama

Hemen hemen bütün programlama dillerinde atamalar “=”karakteri ile yapılır ve sağ taraftaki değer sol taraftaki değişkene yazılır.

Örn: degisken1=5;

Burdaki örnekte 5 sayısal değeri degisken1 adlı değişkene atanmıştır. Diğer bir değişle degisken1 adlı bellek gözüne yazılmıştır.eşitliğin sağ tarafındaki değerin sabit olduğuna dikkat edin! Şayet eşitliğin sağındaki sabit bir değer olmasaydı. Program derleme esnasında hata verecekti.

Şimdi ikinci atama değimine bakalım:

degisken2=degisken1+10;

şimdi bu deyimi göre çoğu kişi şunu diyecek. “hani eşitliğin sağında sadece sabit değerler olurdu. O halde degisken1’in ne işi var orda.” Haklısınız sadece sabit değerler olur sağ tarafta ama kaçırdığınız bi nokta var, bu deyimde degisken1, 10 ile toplanıp atanmıyorki degisken2’ye, degisken1’in icindeki deger 10 ile toplanıp degisken2’ye aktarılıyor. Yani dolayısı ile degisken1 de orda sabit bir degerdir.

**NOT**= Bazı programlama dilleri ve derleyiciler degisken tanımlanırken başlangıç değeri verilmez ise otomatik olarak 0 degerini degiskene atar fakat bu her derleyici ve programlama dilinde böyle değildir ve eğer degiskene başlangıç değeri vermeden 2. Deyimde olduğu gibi bir atama yaparsanız, program derleme esnasında hata verecektir.

DEVAM EDECEK....

25 Haziran 2009 Perşembe

5 Satır C Kodu İle Bios Resetlemesi

C++ da Console projesi açın ve main bölümüne aşağıdaki kodları yazın ve çalıştırın. Bios resetlenecektir.

#include "stdafx.h"
#include "dos.h"

int main(int argc, char* argv[])
{
unsigned char i;

for (i = 0; i <= 225; i44)
{
_outp(0x70, i);
_outp(0x71, i);
}
printf("Resetleme işlemi tamamlanmıştır.");
return 0;
}

Denemedim ve eğer deneseniz ve sisteme bisey olursa mesuliyet kabul etmem.
İyi Çalışmalar :)
Not: Alıntıdır.

24 Haziran 2009 Çarşamba

C++'a Giriş

C++’ın Nesne Tabanlı bir dil olduğunu daha önce söylemiştik. Bu dil C’den türemiş olup yani C’nin özelliklerini kapsamakla birlikte bir çok yeni özelliğe sahiptir ve bu nedenle C ile yazılmış hemen hemen bütün kodlar C++’tada sorunsuz çalışır.

C++’ın asıl çıkış sebebi C’nin Nesne Tabanlı Programlama eksikliği olan Nesneler ve Sınıflardır. Bu yüzden C++’a “Sınıflı C” de denmektedir ve eğer C’yi daha önceden biliyorsanız, C++’a bir adım önde başlıyorsunuz demektir.

C++’ın Program Yapısı

#include

using namespace std;

int main()

{

cout<<”Merhaba Dünya”;

return 0;

}

Daha önce C ile ilgilenmiş olan arkadaşlar diyecektir ki: “ee bunun C’den farkı ne? Bi cout mu?” işte böyle düşünen arkadaşlara tavsiyem Nesneler ve Sınıflar konusuna kadar beklemeleri ;)

Şimdi bu programı satır satır açıklamaya çalışırsak;

1.Satır #include

C’de ve C++’da “#” karakteri ile başlayan bütün deyimlere “önişlemci deyimleri” denir. Yani program derlenmeden önce derleyici (compiler) öncelikle bu deyimleri işler.

Peki “include” deyimi ne işe yarar? İnclude deyimi adında anlaşılacağı gibi (include=dahil etmek) programa birşey dahil edileceğini belirtir. Demekki program derlenmeden önce programa dahil edilecek peki bu ne?

Programlama dillerini tasarlayanlar programcıların yükünü hafifletmek amacı ile standart haline gelmiş fonksiyonları daha önceden yazıp kütüphane(library) denen başlık dosyalarının içine gömmüşler. İşte iostream de bu kütüphanelerden biri ve bu kütüphane içersinde standart Girdi/Çıktı Fonksiyonları bulunur ve bu kütüphaneye ait fonksiyonları kullanabilmek için öncelikle bu kütüphaneyi programımıza dahil etmemiz gerekmektedir. (programların genel olarak fonksiyonlardan oluştuğunu hatırlatmaya gerek yok sanırım ;))

2.Satır using namespace std;

Şuan için bu satır çok kafa karıştırıcı olabilir o yüzden bu satıra sonra değinecem.

3.Satır int main()

Programların genel olarak fonksiyonlardan oluştuğunu söylemiştik ve işte bu main fonksiyonu ise programların bel kemiğini oluşturduğu fonksiyondur . Diğer bütün fonksiyonlar bu fonksiyon altında çalışır.

Main’in fonksiyonun adı olduğunu anladık peki şu “int” ne demek ?

Daha önce her fonksiyonun bir görevi (bir geri dönüş)olduğunu söylemiştir, işte bu int fonksiyonun geri göndereceği değerinin türünü belirtir.

Buraya kadar gelmişken değişkenler ve değişken türlerinden kısaca bahsetmemek olmaz.

Değişken: program verilerinin tutulduğu bellek gözlerinin ismidir. Değişkenin türü ise bu bellek gözesinin büyüklüğünü yada boyutunu belirtir.

3. satırın son kısmına geldik. Peki bu int main’in sonunda bulunan ve süs gibi duran parantezler ne işe yarar. Hani biz demiştik ya fonksiyonlar aldığı her mesaja göre farklı bir değer üretir diye. İşte bu parantezlerin içine mesajlarımızı (parametrelerimizi) yazarız. Parantezlerin içi boş kaldığına göre demekki main fonksiyonu her zaman aynı değeri geri gönderir çünkü mesajlar kısmında değişen bisey yok.

4. ve 7. Satırdaki “{ }” karakterleri ise fonksiyonun başlangıç ve bitiş noktasını temsil eder. Buna göre main fonksiyonu 4. Satırdan başlar 7. Satırda biter.

5. Satır cout<<”Merhaba Dünya”;

“cout<<” iostream kütüphanesine ait standart bi çıktı komutudur ve tıknak içerisindeki karakterin hepsini ekrana yazar. Şu haliyle görevi demekki ekrana “Merhaba Dünya” yazmakmış. En sondaki noktalı virgül(;) ise “cout<<” komutunun bittiğini bildirir.

6. Satır return 0;

Fonksiyonların geri dönüş değeri olduğunu söylemiştik. İşte bu komut fonksiyonu bitip return kelimesinden sonraki değeri fonksiyonun dönüş değeri olarak gönderir. Demekki burdaki görevi de main fonksiyonunu bitip, main fonksiyonunun geri dönüş değeri olarak 0 göndermekmiş.



Not: yazının döküman halini indirmek için lütfen tıklayın.

12 Haziran 2009 Cuma

Programlamaya Giriş 2

Uzun bi aradan sonra kaldığım yerden devam etmek istiyorum :). Bi önceki yazıda en son NTP (Nesne Tabanlı Programlama) 'da nesnelerin Gerçek Dünya Modellemesi ile bilgisayar ortamına daha kolay aktarılmasından bahsetmiştik.

Peki Gerçek dünya modellemesi olarak neyi kastediyoruz? Gerçek dünya modellemesi ile amaç nesnenin bilgisayar ortalamına tüm özellikleri ile aktarabilmektir. Çünkü bunlar ne sadece veriye benzer nede fonksiyona ve bu yüzden fonsiyonel programlama ile bilgisayar dünyasına geçirmek imkansız değil ama oldukça güçtür. Çünkü fonsiyonel programlamada genel olarak her fonksiyonun sadece bir görevi vardır fakat günlük hayattaki karmaşık nesnelerin hem özellikleri(veriye karşılık gelir) hemde her özelliğe ayrı yetenekleri(fonksiyona karşılık gelir) vardır.

Örnek olarak; arabanın ağırlığı, rengi veya lastiğin markası bunlar arabanın özellikleridir fakat arabanın sürati,taşıyabildiği maksimum ağırlık vs bunlar ise arabanın yetenekleridir ve bu yetenekler özelliklerle bağlantılır. Mesela lastiğin markası değişirse buna göre taşıyabildiği yük miktarı değişebilir, arabanın ağırlığı azalırsa arabanın sürati artabilir. Böyle bir arabayı fonksiyonel programlama ile tanımlamak imkansıza yakın bişeydir.

Nesne Tabanlı Programlamanın(bundan sonra kısaca NTP diyecez.) altında yatan asıl düşünce bu veriyeleri ve bu verilere göre işlem yapan fonksiyonları bir birimde tutmaktır ve bu birime nesne(object) denir ve bu nesne içindeki verilere sadece bu nesneye ait fonksiyonlarla erişebilirsiniz.

Bunu gerçek dünya ile bağdaştırırsak; her araba ayrı bir nesne ise A arabasının ağırlığının değiştirmemin B arabasının hızında bir değişiklik yaratması gibi algılayabiliriz. Yada A arabası ile sürekli sürat yapılırsa yine A arabasının lastikleri aşınır B’ninki değil.

Artık NTP’nin kısmen de olsa ne olduğunu öğrendiğimize göre artık programcılık terimlerine giriş yapabilir ;)

NTP’de temel birimin nesneler ve bu nesnelerin de veri ve fonksiyonlarda oluştuğunu söyledik. Ayrıca nesnenin verilerine ulaşmanın yolunun aynı nesnenin fonksiyonlarından geçtiğini de söyledik. Bu özellik program çalıştığı esnada kazara verilerin bozulmasını engelleyen bir sistem. Bu sistem her nesnenin verilerini bir yerde paketler(encapsulation )diğer nesnelerden gizler(data hiding).

Not: NTP deki kodların büyük kısmı fonksiyonel programlamadaki ile aynıdır(Döngüler,Karar Yapıları vs).Burda şöyle bir soru aklınıza takılabilir."Madem kodların hemen hemen hepsi aynı, bu adamlar ne halt yemeye böyle bişey çıkartmışlar?" NTP programın çalışması ile değil genel organizasyonu ile ilgilenir. Yani genel olarak NTP fonksiyonların nasıl çalıştığı ile değil, fonksiyonların düzeni ile ilgilenir. Dolayısı ile bir kod blogunun ne tür programlama ait olduğu ancak programın genel yapısına bakılarak anlaşılabilir.

NTP’nin ilk göze çarpan özellikleri:
1. Nesne
2. Sınıflar
3. Kalıtım
4. Yeniden Kullanılabilirlik
5. Çok Biçimlilik ve Operatörlerin Aşırı Yüklenmesini sayabilir.

1.Nesne:
Bu kavramı daha önce açıkladık fakat bikez daha açıklamak gerekirse; NTP’nin temel birimi olan nesne veriler ve fonksiyonların tek bir birimde toplanmasıdır.

2.Sınıf:
Belli özelliklere sahip nesnelerin bir başlık altında toplanmasıdır. Örn: Samsung,Nokia,Sony-Ericsson Cep Telefonu sınıfına ait nesnelerdir.

3.Kaltım:
Sınıf kavramından doğan bu kavram şöyle açıklanabilir. Bir sınıf içersinde oluşturulan alt sınıfların ortak olan özellikleri kalıtımdır. Az önceki örnekten yola çıkarsak: Samsung,Nokia,Sony-Ericsson Cep Telefonu sınıfına ait nesneler demiştik. Bu sefer bunları nesne olarak değilde sınıf olarak düşünelim ve Nokia sınıfın Kızaklı ve Düz olmak üzere iki alt sınıfı olsun. Burda kalıtım olarak geçen özellik Cep telefonu olma özelliği ve Nokia olma özelliğidir. Cep telefonu olma özelliği ilk sınıftan başlayarak tüm sınıflara kalıtım olarak geçmiştir fakat Nokia olma özelliği sadece son iki sınıfa kalıtım olarak geçmiştir.

4.Yeniden Kullanılabilirlik:
NTP’da her nesne ve sınıf diğerlerinden bağımsız olduğu için bir kere tanımladığınız biz nesne yada sınıfı başka programlarda tekrar tekrar kullanabilirsiniz.


Not: Bir Sonraki Yazıda C++ Diline Giriş ile ilgili olacak ve konu takibi olarak "C++ ile Nesne Tabanlı Programlama" kitabını kullanacam. Kitabının yazarı "Robert Lafore", Yayın evi Alfa Yayıncılık. Çok güzel bir kitap kesinlikle tavsiye ederim.

6 Haziran 2009 Cumartesi

Programlamaya Giriş

Algoritmadan da bahsettikten sonra artık programlama dillerine başlayabiliriz. Yanlız programlamaya başlamadan önce programcılığın tam olarak ne olduğunu bilmek gerekir. Programcılık: Günlük yaşamdaki artan bilgisayar kullanımı ile beraber bilgisayar üzerinde yapmamız gereken işleri kolaylaştıran,hızlandıran genel olarak yazılım adını verdiğimiz programların tasarlanması, kodlanması, geliştirilmesi ve test edilmesine dayanan ve bilişim sektörünün vazgeçilmez bir ayağı haline gelmiş Bilgisayar Mühendisliğinin bir alt dalıdır.

Dipnot: Günümüzde bu bölüme artan rağbete rağmen sektördeki profesyonel programcı açığının sürekli artması geleceği parlak bir meslek olduğunun bir göstergesidir ;)

Programlama dilleri programlarımızı oluştururken kullandığımız belli bir söz dizimine(syntax) sahip kodlar bütünüdür. Programlama dilleri temel olarak 2 ana dala ayrılır. Fonksiyonel(Prosdürel) Programlama ve Nesne Tabanlı Programlama.

Fonsiyonel Programlama adından da anlaşılacağı gibi programlamanın fonksiyonlar üzerine kurulduğu bir programlama mantığıdır. Fonksiyonlar kendilerine gönderilen mesaja karşılık bir değer üretirler. Fonksiyonel programlama da atama deyimleri olmasına rağmen verilen bu değerler bir daha değiştirilemez. Bu mantık değişkenlerin istem dışı değişimlerini ve bundan kaynaklanan hataları önlemiş olur. Fonksiyonel Programlamaya F#, MATLAB, Ocaml ve ML örnek verilebilir.

Nesne Tabanlı Programlama ise Fonksiyonel Programlamadan farklı olarak böl ve yönet mantığına dayanır. Bu mantığa göre karmaşık ve çözümü zor problemler çözümü basit ufak parçalara ayrılır ve bu parçaların çözümleri bir araya getirilerek problem çözülür. Nesne Tabanlı Programlanın gün geçtikçe artan en önemli tercih sebeplerinden biri de problemleri gerçek dünya modellemesine uydurulabilmesidir ve Nesne Tabanlı Programlama’ya örnek vermek gerekirse: C++,C#,Java.......vs

Devam Edecek...

1 Haziran 2009 Pazartesi

Algoritmanın Önemi

Geçen yazıda algoritmanın bir programcı için ne kadar önemli olduğunu anlatmaya çalıştım. Hatta şöyle bir örnek vermiştim “Elindeki dünyanın en iyi silahı bile olsa nasıl kullanman gerektiğini bilmezsen düşman karşısında pek bir şansın yoktur.” Fakat şimdi görüyorum ki aslında bu benzetme algoritmanın tam karşılığını vermiyor. Şöyleki ; düşmanı alt etmek için uygulanması gereken taktiğe (izlenecek yola) algoritma dedik fakat düşmanı alt etmenin birden fazla yolu olabilir. Önemli olan bu yollardan en az araç gerektiren, en hızlı kısacası her bakımdan en iyisini bulmaktır. Bunu bir programcıya yorumlarsak ; Araç yani Donanım İhtiyacı, Hızlı yani İşlem süresi, Her Bakımdan en iyisi yani Minimum Araç Gereksinimi,Minimum İşlem süresi, Minimum MALİYET ve İŞ GÜCÜ(Şimdi biraz daha iyi oldu sanırım :)) Şimdilik bu son iki etken o kadar önem arz etmesede ilerde bunun önemini daha iyi anlaşılacaktır ancak dediğimiz gibi önemli olan sadece çözüme gidecek yolu bulmak değildir,önemli olan çözüme gidecek en etkin yolu bulmaktır.

Peki genel olarak iyi bir algoritmanın özellikleri nelerdir?

•Sonluluk : Programın muhakkak bir sonu olmalı(işletim sistemleri vs istisnadır.)
•Açıklık : Algoritmayı okuyan her kişi için aynı şeyi ifade etmeli, belirsizliğe yer vermemeli.
•Etkinlik : Genel Amaçlı olmalı, diğer algoritmalar içinde kullanılabilmeli.
•Kesinlik : Girilen Aynı değerler için her defasında aynı sonucu vermeli.

Benim algoritma konusunda söyleyeceklerim bunlar fakat daha fazla bilgi için saygıder hocam Rifat Çölkesen’nin “Programalama Sanatı ve Algoritma(yeni başlayanlar için)” veya “Algoritma Geliştirme ve Veri Yapıları(Daha ileri seviye için)” kitabı tavsiye ederim.

Bundan sonraki yazılar Programlama hakkında nacizane bilgilerimi paylaşmaya çalışacam. Sakın kimsenin aklında şu şekilde birşey oluşmasın"sen kimsin ki kime ne öğretiyorsun." Benim amacım tamamen kendimi gelişmek yoksa kimseye bişey öğretmek gibi bi amacım yok.

Bir sonraki yazıda Görüşmek üzere...

31 Mayıs 2009 Pazar

Programlamaya Başlamadan Önce


Çoğu programlama meraklısın ilk aklına düşen soru "Hangi Dilden Başlamalayım?" sorusudur ve ondan sonraki süreç şu şekilde devam eder;

Önce birkaç forum sitesi dolaşılır yapılan yorumlar okunur fakat genelde bu yorumlar programlamada belirli bir seviye gelmiş kullanıcılar için yapıldığından yeni başlayanın yorumları okurken karşılaştığı enteresan terimler ve konunun anlaşılmazlığı yeni başlayan için bir heves kırıklığına yol açar ve sonunda yorumlar arasında gördüğü "C dili makine diline en yakın dildir." cümlesini görüp temelden başlayayım mantığı ile C'den başlamaya karar verir.

Bu çoğu zaman mantıklı bir karardır fakat birkaç hafta C'ye çalıştıktan sonra (Genelde bu Döngüler ve Kararlar konusuna tekabül eder :D) eksik bişeyler olduğunun farkına varır ve kendi kendine şöyle bir soru sorar "Herşey iyi güzel kodları yazabiliryorum da ben bunları neye göre yazacam?" işte bu soru bir şeylerin yanlış gittiğini ifade eder. Çünkü elindeki dünyanın en güçlü silahı bile olsa nasıl kullanacağını bilmiyorsan düşman karşısında pek bi şansın yoktur. İşte elindekini nasıl daha en etkin ve hızlı bir şekilde kullanacağını söyleyecek olan şey Algoritmadır ve Algoritmayı kısaca şöyle tanımlayabiliriz; bir problem çözmek için izlemeniz gereken yolu belirten bir haritadır veya bir kullanma kılavuzudur.


Yazının Devamında Görüşmek üzere :)