Windows 7′nin Fiyatı Belli Oldu

Merhaba,
Sizlerinde bildiği gibi blogumda teknik makale hariç haber v.b. yazılar yazmaktan hoşlanmıyorum fakat bu seferki hem sitem hem haber
Biliyorum Microsoft ürünlerini para ile satıyor. Free verse ve batsa daha iyi olur diye aramızda düşünenlerde vardır. Fakat daha öncede dile getirdiğim gibi, bugün teknoloji bu noktada ise Microsoft’un bu resimde en az %40′lık bir payı var. Teknoloji rekabet ortamında daha hızlı gelişmektedir ve bu rekabet ortamı da Microsoft ile çok iyi oluşturulmaktadır. Diğer firmaların başarısında Microsoft’un da payı var. Çünkü, sürekli Microsoft ile rekabet içerisindeler. Bu rekabet biz son kullanıcılarında işine çok yarıyor. Neyse lafı fazla uzatmak istemiyorum. İşin özü; Lütfen, Lisansız HİÇ BİR yazılım kullanmayalım. Eğer ücretini ödeyecek gücümüz yok ise ücretsiz alternatiflerini değerlendirmeye çalışalım. Yazılım Korsanlığına bir dur diyelim. Zamanı çoktan geldi ve geçiyorda. Şimdi haberimize dönecek olursak.
Yeni aramıza katılacak olan Windows 7 işletim sisteminin fiyatı belli oldu. Eğer ön siparişi erkenden verirseniz. Yükseltme sürümleri için fiyatlar aşağıdaki gibidir.
Windows 7;
- Home Premium: 50$
- Professional: 100$
Normal sürümlerini almak isterseniz;
Windows 7 Home Premium: 200$
Windows 7 Professional: 300$
Windows 7 Ultimate: 320$
Kaynak: Microsoft Store
Görsel: Microsoft Corp. (c)
Saygılarımla.
Teşekkürler. :)
Merhaba,
Uzun süredir blogumun istatistiklerine bakmıyordum. Geçen gün ayrıntılı inceleme fırsatı buldum ve sonuçlar iyi idi.
01/24 Haziran arası %110′luk bir artış ile 3240 kişi ortalama 11 sayfa dolaşarak toplam 35600 sayfa gösterimi yapmış. Açık söylemek gerekirse, bu beklediğimin üzerinde bir rakam oldu.
Bu hızla artmaya devam ederse, sanırım yaz sonuna tekil hitim 15,000 olacak ve köşede 7/8 tane ads kutucuğu göreceğiz.
Hepinize ilginizden dolayı teşekkür ediyorum.
Saygılarımla.
PHP Type Güvenliği Fonksiyonu
Merhaba,
Bildiğiniz üzere PHP , C# gibi type güvenliği olan dillerden değildir. Değişkenler tipi belirtilmeden yaratılır ve ona göre kullanılır. Peki tip güvenliği dedimiz olay nedir?
Tip güvenli bir değişken oluşturalım.
[C#]
int sayi = 1535;
float fSayi = 15.4;
string yazi = “Microsoft Windows 7″;
Tip güvenliği olmadan oluşturalım.
[PHP]
$sayi = 1535;
$fSayi = 14.45;
$yazi = “I lost control.
”;
Şimdi bu iki tanımlama arasındaki fark sizinde tahmin ettiğiniz gibi birisinde oluşturulan değişkenin tipi baştan belirtilerek oluşturuluyor böylece ileride kullandığımızda programımız her birini tipine uygun çalıştırıyor veya hata veriyor. Diğerinde ise tip belirtmeden bunu dilin kendisinin anlamasını tercih ediyoruz. Gerçi PHP 5.2.x sürümünden sonra bu ayrımı çok daha iyi yapıyor fakat büyük programlarda tür dönüşümleri ve değer tip değişikliklerinden çok büyük problemler çıkabilmektedir.
Peki PHP bunun için ne yapıyor? Tabii ki bir çözümümüz var. Yukarıdaki aynı tanımlamayı şu şekilde de yapabiliriz.
[PHP]
$sayi = (int)1535;
$fsayi = (double)14.45;
$yazi = (string)”I lost control”;
Böylece hem değişken tanımlamış hem de aynı zamanda bir convert işlemi ile değişkenlerin türlerini istediğimiz türe çevirdik. PHP ile değişken tanımlama seviyesinde yapabileceğimiz maximum budur diye tahmin ediyorum. Peki biz önemli projelerimizde bu tipleri nasıl kontrol edeceğiz. Büyük bir program geliştirdiğimizde, değişkenin nerelerden geçtiğini ve son değişken değerinin, bizim istediğimiz tipten olup olmadığını anlamak güçtür. Ayrietten bunu run time’da denetlemek daha da zordur. Çünkü, gelen veriler kullanıcılardan veya farklı 3. bir web servisinden olabilir. Bu nedenle bizim bunu program içinde denetlememiz gerekmektedir. Böylece runtime’da gelen datalar kontrol fonksiyonu tarafından denetlenerek olası problemler öngörülecektir.
İlgili fonksiyonu aşağıda veriyorum. Kendi class’larınıza ekleyebilirsiniz.
-
-
class foo {
-
protected $type;
-
/**
-
* Type Controller
-
* @var any type
-
*/
-
public function typeControl($type) {
-
$this->type = $type;
-
$type = "Bu değişken ".$type." türündendir.<br>";
-
}
-
}
-
// Variables
-
$control = new foo();
-
$int = 3;
-
$str = "test";
-
$double = 7.9;
-
$bool = false;
-
$object = new foo();
-
-
// Type Controller
-
$control->typeControl($bool);
-
$control->typeControl($double);
-
$control->typeControl($str);
-
$control->typeControl($int);
-
$control->typeControl($arr);
-
$control->typeControl($object);
-
?>
-
İyi Çalışmalar.
Microsoft Bing Yayında

Merhaba,
Microsoft’un Google’ın karşısına çıkarttığı ve iddalı gözüktüğü KUMO kod adlı arama motoru Bing bugün yayına başladı. Aslında bugün ABD’de yayına açıldı ama yinede Türkiye’den erişimi var. 6 Haziranda eş zamanlı olarak tüm Dünya’da yayına açılması bekleniyor.
İlk aşamada gözüme çarpan yeniliği xRank özelliği oldu. Microsoft’un xRank için tanımı;
Popüler aramaları izleme
xRank önemli kişileri izler ve sizin için bunları düzenler. Film yıldızları, müzisyenler ve diğer ünlüler için yapılan Live Search web aramalarını sayıyoruz. Daha sonra bulgularımızı bir derecelendirme formülüne dahil ederek dünya çapında en çok aranan kişileri belirliyoruz. Sonuçlar belirli bir zamanda kimin popüler olduğunu ve kimin gözden düştüğünü gösteriyor!
xRank kullanarak yapabilecekleriniz:
- Arayın.
Bize bir ad söyleyin ve size onun kim olduğunu ve derecesini söyleyelim. - Öğrenin.
Bir biyografiye gözatın veya ilgi duyduğunuz kişiyle ilgili en son haber manşetlerini alın. - Keşfedin.
Bir ünlünün en son videolarını, resimlerini, filmlerini, albümlerini ve daha fazlasını keşfedin. - İlişkilendirin.
İnsanlar arasındaki ilişkileri öğrenin. xRank sayfasının en altındaki küçük fotoğraflar size ilgilendiğiniz kişinin iş ilişkilerini, arkadaşlarını, düşmanlarını, romantik ilişkilerini gösterir. - Tarayın.
Derecelendirmelerle ilgilinizi çekecek adlar arayın. Ok simgeleri bunların derecelerinin trendini gösterir. Listenin en üstündeki hareketlilik en altına yakın hareketlilikten daha fazla anlama gelir. - İzleyin.
xRankGeçmiş grafiğinde bir kişinin son altı aylık popülerliğini izleyin. xRankGeçmişi grafiğinin altında, en fazla harekete neden olan aramaları bulabilirsiniz. Bunlar, kişinin xRank popülerliğinin zirveye ulaştığı günde kullanıcıların yaptığı gerçek aramalardır.
C#.NET ve TypeOf Operatörü
Merhaba ,
Garip şekilde bu konuda 3-4 kişisen istek geldi.
Basit bir konu ama yinede anlatayım. Gerçi neyini anlatıcam tam bilemiyorumda ama kısaca TypeOf Nedir? dersek.
TypeOf; Run Time’da her hangi bir türe ilişkin Type Class’ı türünden bir object üretir. Daha iyi anlamanız açısından küçük bir örnek yazıyım.
-
-
using System;
-
using System.Collections.Generic;
-
using System.Text;
-
-
namespace TypeOf
-
{
-
class Program
-
{
-
static void Main(string[] args)
-
{
-
tip.myMain();
-
-
string s = "\n Programı sonlandırmak için enter’a basınız….";
-
Console.WriteLine(s);
-
Console.ReadLine();
-
-
}
-
}
-
-
class Tipler
-
{
-
public void myMain()
-
{
-
Type tipTuru = yeniTip.GetType();
-
-
Console.WriteLine(yeniTip.ToString());
-
Console.WriteLine(tip.ToString());
-
}
-
}
-
}
-
-
Sanırım yeteri kadar açık oldu. Daha başka nasıl anlatabilirim bilmiyorum.
Bildiğiniz gibi yinede takıldığınız bir yer olursa yorum olarak yazabilirsiniz. Ozan’cım bu senin içinde geçerli
İyi Çalışmalar.
Register Sorunu Çözüldü
![]()
Merhaba,
Önceki tema’daki link problemi yüzünden ana sayfada Register,Login gibi bağlantıları göremiyordunuz. Önce tema’yı düzenlemek için başladım ve sonunda değiştiriyim dedim.
Bu konuda bana çok e-mail geldiğinden sonunda sizi dinledim ve temayı değiştirdim.
İyi Çalışmalar.
Google 23 Nisan’da MEB’in Sitesini Hackledi :)
Posted by HD in C#, Genel, Sistem, Veri Tabanları on April 23rd, 2009

Merhaba,
Tam Google’ın 23 Nisan logosuna sevinecekken, bir bakıyım dedim resme tıklayınca ilk hangi site çıkıyor , tahmin ettiğim gibi MEB çıktı. Peki, MEB’in sitesine baktığımda ne çıktı? Service Unavailable yazısı.
Demek ki MEB’in alt yapısı henüz 1/2 milyon hit’i kaldırabilecek bir seviyede değil. Biz buna halk arasında IMECE DDOS Diyoruz.
El birliği ile Google’ın da yardımlarıyla MEB’in sitesini servis dışı bıraktık. Hacked By TÜRKİYE
ORACLE’a her ay ödeyecek bütçe buluyorlar da bir 2Gbps Hat ile 4 server almayı bilmiyorlar.
Burası Türkiye.
İyi Çalışmalar.
Python ile Multi-Threading
Merhaba,
Python makalelerimde henüz bu aşamaya gelmedik ama bir arkadaşın isteği üzerine yazıyorum. Python dizisini baştan takip eden arkadaşlar bunu yoksaysınlar.
Yeri geldiğinde ben size anlatıcam daha ayrıntılı şekilde.
Öncelikle Thread nedir? bunu açıklayayım. Threadler iş parçacıklarıdır. Bazen ana program için bazı işlemlerin 1 kez veya sonsuza kadar yapılması gerekmektedir. (Sonsuz=Program çalıştığı sürece.) Böyle bir ihtiyacımızda yeni bir program yazıp iki programı haberleştirmektense yeni bir iş parçacığı(Thread) oluşturarak programımız için ilgili işlemi sürekli yapmasını sağlayabiliriz. Threadler geniş bir konudur. Lock,Join,RLock v.s bir sürü kullanabileceğimiz özelliği vardır. Bu istek üzerine bir makale olduğundan hepsine girmeyeceğim. Sırası geldiğinde ayrıntılı açıklayacağım.
Mesela örnek olarak ana programımız çalışırken, arka planda kullanıcının yüklemiş olduğu dosya ZIP formatında sıkıştırılsın ve aynı path’e konulsun ve bunları yaparkende UI’i kitlemeden yapalım. Thread kullanmadan yapsaydık siz upload veya button’a bastığınızda uploading işlemini beklemeniz gerekecekti. Oysaki biz Thread ile arkaplanda işlemlerimizi gerçekleştirdiğimizden kullanıcı UI’de istediği gibi işlerine devam edebilir. Dediğim gibi çok girmeden hemen kodlara geçiyorum.
-
-
#!D:Python30pythonw.exe -o
-
# -*- coding: utf-8 -*-
-
__author__="Khan"
-
__date__ ="$23.Nis.2009 14:11:51$"
-
import threading, zipfile;
-
-
class AsyncZip(threading.Thread):
-
def __init__(self, inputfile, outputfile):
-
threading.Thread.__init__(self);
-
self.inputfile = inputfile;
-
self.outputfile = outputfile;
-
-
def run(self):
-
f = zipfile.ZipFile(self.outputfile,"w",zipfile.ZIP_DEFLATED);
-
f.write(self.inputfile);
-
f.close();
-
print("Zipleme işlemi tamamlandı:", self.inputfile);
-
-
bg = AsyncZip("pythonText.txt","pythonText.zip");
-
bg.start();
-
print ("Ana program çalışırken arka planda thread zipleme işlemini yaptı.");
-
Kısaca açıklayacak olursak threading modülünü ve zipfile modüllerinden yararlanarak bir Class yazdık ve bu class’ın constructor’da 2 argument aldık. İlk argument ziplenecek dosyayı alıyor ve içerideki run function’ı ile zipliyor. İkinci argument yine run function’nın da çıktı olarak verilecek dosyanın adını oluşturuyor. Birde Join’i anlatıyım kısaca
Join’de ise main program thread’i bekledikten sonra işlemlerine devam ediyor. Buda şöyle bir senaryoda karşımıza çıkabilir. İlgili kişi’den bir dosya alıp bunu zipleyeceğimizi düşünün ve bu dosyanın önemli olduğunu farz edelim. Zipleme işleminde bir problem olursa UI Lock edip kullanıcıya hata mesajı dönmeliyiz. Eğer normal şekilde bir thread ile yaparsak işlemler olurken kullanıcı halen UI’i yönetebiliyor olacak. Join ile yaptığımızda main program Thread’i beklediğinden thread işini bitirmeden main program işlemlerine devam edemeyecek.
Bunuda test etmek isterseniz bg.start()’ın altındaki print’i kaldırarak aşağıdaki kodları ekleyin ve çıktısına bakınız.
-
-
bg.join();
-
print ("Ana program thread’i bekledi ve şimdi işlemlerine devam etti.");
-
İyi Çalışmalar.
Basit Bir Spider Yazalım
Merhaba,
Biliyorum biraz uzun zaman oldu yazmayalı
Ama bildiğiniz üzere CPU %100 çalışıyorum. Bu makalemde sizlere PHP ile nasıl basit bir spider yazabileceğinizi anlatacağım.
Her zaman ki gibi PHP bunun içinde bizi düşünmüş ve get_meta_tags adında bir function yazmış. Bu fonksiyon bize meta taglarındaki attribute’leri bir dizi olarak dönmektedir. Şimdi bunun için bir class yazmamı beklemeyin. OOP’in de suyunu çıkartmayalım. Herşey için bir class olmaz.
Bunun için bir function yazacağım. Hemen kodlamaya başlayalım.
-
-
<?php
-
function Spider($URL){
-
return $Spider;
-
//print_r($Spider); //For Debug or list all meta tags array
-
}
-
-
$TargetURL = "http://e-uzman.org";
-
$mySpider = Spider($TargetURL);
-
?>
-
Unutmadan her tag her sitede olacak diye bir şart yok. Bu yüzden bazı alanların null gelmesi yüksek ihtimal bu yüzden eğer araya database koyacaksanız is_null() function’nı kullanmayı unutmayınız. Bunun dışında farklı dillerdeki sayfalarda karakter seti problemi yaşabilirsiniz. Onun içinde mb_detect_encoding function’nından yararlanabilirsiniz.
Sorularınız olursa ki Spider işleri ile uğraşıyorsanız kesin olur. Bekliyorum. Son olarak eğer arama motoru veya benzer bir yapı ile uğraşıyorsanız regex(regular expression) üzerine biraz kafa yormanızı tavsiye ederim. Gözüktüğü kadar zor değildir.
İyi Çalışmalar.
PHP’de Merkezileştirme (OOP)
Merhaba arkadaşlar,
Bildiğiniz üzere PHP artık bir çok görevi başarıyla yerine getirebilir seviyeye gelmiştir. Bu nedenlede PHP artık Web sayfalarından Web uygulamalarına geçişte önemli bir yerde durmaktadır.
Merkezileştirme derken anlatmak istediğim web uygulamalarımızda bütün bir uygulama üzerinde gerekli olan ve kullanılan ihtiyaçlarınızı bir pipeline’dan geçirerek bağımsızlaştırmaktır.Yaptığımız bir nevi DAL’dır aslında.[Data Access Layer(Veri Erişim Katmanı)] Nasıl olacak sorusunun cevabını beraberce arayalım.
Örnek senaryo üzerinden daha iyi anlatabileceğimi düşündüğümden, bir örnek ile açıklayayım.
Basit bir contact manager yazmamız gerektiğini düşünelim. Bu tür uygulamalar veri işleme üzerine kurulduğundan tüm verilerin doğru ve kontrollü şekilde ilerlemesi gerekmektedir. Veri tabanı olarak ne kullanırsanız kullanın mutlaka önemli alanlar için Transaction yönetimi yapmayı unutmayın. Konumuz veri tabanları olmadığından bu konuya girmiyorum. İlerleyen makalelerim de bu konuyuda ayrıntılı şekilde anlatacağım. Şimdilik devam edelim. Diyelim ki veri tabanı olarak MySQL Server’ı seçtik. İşimiz aslında her developer’ın da yaptığı gibi database programming. Biz yazılım ile uğraştığımızı sanıyoruz ama yaptığımız 10 projeden 7/8′i veri tabanı programlamadır.
Şimdi object-oriented şekilde nasıl uygulamamızı merkezileştireceğimize bakalım.
Bu uygulamada veri tabanı kullanacağımızdan mutlaka veri tabanına sorgu göndereceğiz. Demin söylediğimi hatırlarsak uygulamamızın bütününde bize gereken şeyleri bir yerde toplayacaktık ve yönetimini kolaylaştıracaktık. Şimdi biz SQL sorgularımızı bir yerden geçecek şekilde hazırlıyoruz ve daha sonra sağladığı kolaylığı inceleyeceğiz.
-
-
<?php
-
/**
-
* OOP ile Uygulama Bağımsızlaştırma.
-
* Lang: PHP DB: MySQL
-
* Developer: Hakan DAMAR
-
* @copyright GPL
-
*/
-
-
Class DBProvider{
-
private $dbType;
-
private $dbConn;
-
private $sqlQuery;
-
public function __construct(){
-
// Nesnenin İlk Noktası
-
}
-
-
public function __destruct(){
-
// Nesnenin Son Noktası
-
}
-
-
public function Provider($Type,$Connection){
-
$this->dbType = $Type;
-
$this->dbConn = $Connection;
-
-
}
-
-
public function Query($ExecQuery){
-
$this->sqlQuery = $ExecQuery;
-
}
-
switch ($this->dbType){
-
case "MySQL":
-
// Transaction için Table Engine Type InnoDB olmalıdır.
-
// Eğer birden fazla veri tabanı ile çaışıyorsanız!
-
// mysql_query() fonksiyonuna 2. parametreyi veriniz.
-
# $executeQuery = mysql_query($ExecQuery,$this->dbConn);
-
-
if ($executeQuery){
-
// Sorgu Başarılı
-
}else{
-
// Sorgu BAŞARISIZ!!!
-
}
-
break;
-
case "MsSQL":
-
// Ms SQL Server code here… etc…
-
break;
-
case "Oracle":
-
// Oracle Connection here.. etc..
-
break;
-
case "PostgreSQL":
-
// PostgreSQL connection and execute sql query code here.
-
break;
-
default:
-
Şimdilik: MySQL,MsSQL,Oracle,PostgreSQL desteklenmektedir.");
-
}
-
}
-
}
-
-
/**
-
* İlgili Sayfanıza require_once() ederek
-
* aşağıdaki şekilde kullanabilirsiniz.
-
*/
-
// Nesnemizi Oluşturduk.
-
$DAL = new DBProvider();
-
//Veri Tabanı Türümüzü ve Bağlantımızı Belirttik.
-
$DAL->Provider("MySQL",$DB->Connection);
-
//SQL Sorgumuzu Çalıştırdık.
-
$DAL->Query("SELECT count(*) as TotalUser FROM tbl_user ORDER BY UName DESC");
-
?>
-
-
Yukarıdaki kod bize sorgularımızı merkezi tek bir noktadan kontrol etme imkanı verdi. Bizde Transaction yaparak işlem bütünlüğünü sağladık. Bu ders olmadığından diğer tüm özelliklerini de yazmadım. Sadece mantığını anlatmak adına bir kısmını yazdım. Siz bunu geliştirmek adına ekstra olarak bir string temizleme function’ı yazarak gelen sorgularınızı çalıştırmadan önce temizleyebilirsiniz.
Kod’da $DB->Connection(); diye bir parça var. Bu bölümü kodun içerisinde göremiyorsunuz çünkü DB Class’ı da ayrı bir parçasıdır programın. DB Class’ını yazdıktan sonra bağlantı parametrelerini alan Connection isminde bir function ile bu kodu tamamlayabilirsiniz. Tavsiyem Connection() bool bir değer dönsünki Connection State yapmak istediğinizde bunu if gibi karak kontrol mekanizmalarında kullanabilin. İleri de DAL’da yazacağımızdan bu konuya girmiyorum. Çünkü kendisi başlı başına bir konudur.
Burada değinmek istediğim ikinci nokta ise Query function’nın içerisinde gördüğünüz Switch döngüsüdür. Bu döngü ile (şimdilik DAL’ı bilmediğimizden) veri tabanı bağımsız şekilde uygulamamızı geliştirmeye devam edebiliriz. Olduda bir gün artık uygulamanızı Ms SQL Server’a geçirmek isterseniz tek yapmanız gereken Provider Function’na set ettiğiniz Type parametresini MsSQL olarak değiştirmektir. Gerekli ayarları yaptıktan sonra artık uygulamanız Ms SQL Server üzerinde başarılı bir şekilde çalışıyor olacaktır.
Gördüğünüz gibi OOP(Nesne tabanlı programlama) ile web uygulamaları geliştirdiğimizde bir sayfaya database connection sağlayıp, güvenli sorgular çalıştırmak için yazacağımız kod satırı 3′ü geçmemektedir. Ayrietten Uygulamalarınızdaki bazı noktaları merkezileştirerek uygulamamızı nasıl bağımsız hale getireceğimizide gördük.
Saygılarımla,
Hakan DAMAR
PHP İle Tüm Cookie’leri Silme
Merhaba,
Oxijen Framework’ün parça, parça işinize yarayabilecek kısımlarını function olarak sizlerle paylaşıyorum.
-
-
<?php
-
// Remove All Cookie
-
foreach ($_COOKIE as $k => $v){
-
}
-
?>
-
Bu kod $_COOKIE super global üzerinde dönerek içerisindeki tüm key’leri alıyor daha sonra null’a set ederek boşaltıyor ve geçerlilik süresini bitiriyor.
İyi Çalışmalar.
Oxijen Framework Beta Sayfası
![]()
Merhaba,
Oxijen Framework için beta web sayfası çalışmalarına başladım. Gelişme aşamasında takip etmek isterseniz aşağıdaki bağlantıdan ulaşabilirsiniz.
Oxijen Framework: http://oxijen.org/?Home.do
Saygılarımla.
