1 Aralık 2010 Çarşamba

CETURK – ORACLE Günü’10 ”






Bugüne kadar çok farklı konu ve teknoloji ile ilgili yaptığı ücretsiz etkinliklerle bilişim sektörünün gelişmesine katkıda bulunan CETURK etkinliklerine büyük bir hızla devam ediyor. 4 Aralık 2010 tarihinde Bahçeşehir Üniversitesi'nde ” CETURK – ORACLE Günü’10 ” etkinliği gerçekleştirilecek. Bugüne kadar gerçekleştirilen gerek CETURK gerekse ORACLE etkinlikleri içerisinde konu ve konuşmacılarıyla öne çıkan bu etkinliğe katılım ücretsiz olacak.

Etkinliğin konuşmacıları :

  • Türkiye’de Oracle Certified Master(OCM) sertifikasına
    sahip tek kişi olan Cem Zorba,

  • BI alanından Oracle ACED ve 2009 yılın Oracle DBA’yi unvanlarının
    sahibi ve bu ödüllere sahip Turkiye’deki tek, tüm dünyadaki en en geç uzman olan Hüsnü Şensoy,

  • 10 seneyi aşan Oracle veritabanı tecrübesine sahip olan H. Tonguç Yılmaz,

  • Özel bir bankada ORACLE DBA olarak çalışan Gökhan Karagözlü ve Talip Hakan Öztürk


    Ayrıntılı bilgi için tıklayınız.

    Etkinliğe kayıt için tıklayınız.


14 Eylül 2010 Salı

ASP.NET ve Culture ayarları






'This code produces the following output. This output has been cropped for brevity.
'
'CULTURE SPECIFIC CULTURE
'ar Arabic ar-SA
'bg Bulgarian bg-BG
'ca Catalan ca-ES
'zh-Hans Chinese (Simplified) zh-CN
'cs Czech cs-CZ
'da Danish da-DK
'de German de-DE
'el Greek el-GR
'en English en-US
'es Spanish es-ES
'fi Finnish fi-FI
'fr French fr-FR
'he Hebrew he-IL
'hu Hungarian hu-HU
'is Icelandic is-IS
'it Italian it-IT
'ja Japanese ja-JP
'ko Korean ko-KR
'nl Dutch nl-NL
'no Norwegian nb-NO
'pl Polish pl-PL
'pt Portuguese pt-BR
'rm Romansh rm-CH
'ro Romanian ro-RO
'ru Russian ru-RU
'hr Croatian hr-HR
'sk Slovak sk-SK
'sq Albanian sq-AL
'sv Swedish sv-SE
'th Thai th-TH
'tr Turkish tr-TR
'ur Urdu ur-PK
'id Indonesian id-ID
'uk Ukrainian uk-UA
'be Belarusian be-BY
'sl Slovenian sl-SI
'et Estonian et-EE
'lv Latvian lv-LV
'lt Lithuanian lt-LT
'tg Tajik tg-Cyrl-TJ
'fa Persian fa-IR
'vi Vietnamese vi-VN
'hy Armenian hy-AM
'az Azeri az-Latn-AZ
'zh-TW Chinese (Traditional, Taiwan) zh-TW
'zh-CN Chinese (Simplified, PRC) zh-CN
'zh-HK Chinese (Traditional, Hong Kong S.A.R.) zh-HK
'zh-SG Chinese (Simplified, Singapore) zh-SG
'zh-MO Chinese (Traditional, Macao S.A.R.) zh-MO
'zh Chinese zh-CN
'zh-Hant Chinese (Traditional) zh-HK
'zh-CHS Chinese (Simplified) Legacy zh-CN
'zh-CHT Chinese (Traditional) Legacy zh-HK

6 Eylül 2010 Pazartesi

Convert.ToInt32(), Int32.Parse() ve Int32.TryParse() Farklılıkları

Erkan Güzelküçük adlı arkadaşım integera convert etme işlemlerinde kullanılan methodlar üzerine güzel bir makale yazmış.

http://erkanguzelkucuk.wordpress.com/2010/01/14/convert-toint32-int32-parse-ve-int32-tryparse-farkliliklari/

5 Eylül 2010 Pazar

SQL ile Tablonun Kopyasını Almak

SQL’de tabloların kopyasını almak için düzenlemiş her hangi bir komut yok. Bu işlemi tablo yaratmak için kullandığımız CREATE TABLE komutuna bir SELECT ekleyerek yapabiliriz. Örneğin:

CREATE TABLE yedek_emp AS SELECT * FROM employees;

Eğer sadece tablonun yapısını kopyalamak istiyorsak (içerisinde kayıt olmadan), SELECT sorgusuna bir filtre (WHERE) koyarak bunu yapabiliriz:

CREATE TABLE yedek_dep AS SELECT * FROM departments WHERE 1 = 0;

Kaynak: http://www.gokhanatil.com/2008/06/sql-ile-tablonun-kopyasini-almak/

21 Temmuz 2010 Çarşamba

PadLeft, PadRight ve Bazı String İfadeler

PadLeft ve PadRight

Sürekli bir sayının başına sıfır koymaya çalıştığımda toString("00") kullanıyordum. Örneğin illlerin plaka kodlarını düşünürsek 1, 2 .. olarak gidiyor daha güzel gözükmesi için 01, 02 .. yapıyordum.

Nette dolaşırken hiç de bu zamana kadar dikkatimi çekmeyen 2 fonksiyon gördüm. PadLeft ve
PadRight.

string il = "1";
string kod = "366";


MessageBox.Show(il.PadLeft(2, '0')); // Sonuç: 01

MessageBox.Show(kod.PadLeft(4, '0')); // Sonuç: 0366

MessageBox.Show(il.PadRight(2,'0')); // Sonuç: 10
MessageBox.Show(kod.PadRight(4,'0')); // Sonuç: 3660

ToLowerInvariant, ToUpperInvariant

String değerleri küçük karakter yapmak için ToLover, büyük yapmak içinse ToUpper fonksiyonlarını kullanmamız gerektiğini hepimiz biliriz. Pekala çeviri yaptığımız değerleri olduğu gibi değilde sistemin diline göre (ı, i duyarlı) çevirmek için nasıl bir yöntem izleriz. İşte burada ToLoverInvariant ve ToUpperInvariant fonksiyonlarını kullanırız.

string txt = "BirDunyaTarif";

Response.Write(text.ToLower()); // birdunyatarif
Response.Write(text.ToLowerInvariant()); // birdunyatarif
Response.Write(text.ToUpper()); // BİRDUNYATARİF
Response.Write(text.ToUpperInvariant()); // BIRDUNYATARIF

NOT: İşletim sistemim ingilizcedir.

StringBuilder()

Bu zamana kadar string birleştirirken string değişkenlerinin arasına + işaretini ekledim. Bunun çok yalnış olduğunu ve sistemi yorduğunu öğrendim. Bunun yerine StringBuilder sınıfı kullanılmalı.

StringBuilder builder = new StringBuilder();

string[] txt= new string[] { "Tekno", "Gezgin"};

for (int i = 0; i < txt.Length; i++) {
builder.Append(txt[i] + " ");
}
Response.Write(builder.ToString());

5 Temmuz 2010 Pazartesi

MsSql Script Olarak Backup (Yedek) Alma

Geçenlerde Visual Studio ve MySql ile proje geliştirirken MySql'in yedeğini aldım. Yedek dosyasını script şeklinde verdi. Sürekli MsSql ile çalıştığımdan bu bana garip geldi. MsSql'de yedek alırken hep bak dosyası şeklinde yedek alıyordum ve merak edip MySql'de olduğu gibi MsSql'de de script şeklinde yedek almaya baktım.
MsSql ücretsiz versiyonu (Express) uzun aramalardan sonra bu şekilde bir şey olmadığını gördüm. Tabiki imdadıma yine Visual Studio yetişti. Sağ taraftaki Server Explorer'dan veritabanım üzerine sağ tıklayınca açılan pencereden "Publish to provider" seçerek karşımıza çıkan ekranlarda sürekli next next diyerekten veritabanımızı script olaraktan yedek almış oluyoruz.

Eğer "Publish to provider" seçeneği karşınıza çıkmazsa Microsoft SQL Server Database Publishing Wizard 1.1 bu linkten indirip tekrardan deneyin.

1 Temmuz 2010 Perşembe

Yazdığımız Kodların Güvenliği

Arkadaşlar yazdığımız kodları nasıl koruma altına alırız (almaya çalışırız). Bu konuda güzel bir makale yazmışlar. Direk sizinle paylaşıyorum. Kolay gelsin.

http://www.csharpnedir.com/forum2/forum_posts.asp?TID=29958

MSN'le Gelen Sinir Bozucu Pencere

MSN her açtığımda otomatik olarak açılan ve benim beklememe(makinem çok yavaş :D) sebep olan pencerenin artık karşıma nasıl bir daha çıkmayacağını buldum.

Msn’inizde sırasıyla Araçlar >> Seçenekler >> Genel sekmesine gelin veya Otorum Aç sekmesine gelin >> Messenger’da oturum açtığımda Windows Live Bugün’ü görüntüle

şeklinde bir seçenek var. Bunu işaretleyip uygula dedikten sonra artık penceresiz bol günler.

26 Haziran 2010 Cumartesi

Captcha ve KittenAuth Nedir ?

Captcha ve KittenAuth zaman geçtikçe gelişen teknolojilere bir nebze güvenlik katmak için geliştirilen yapılardır. Hepinizin bildiği ve günlük hayatta sürekli karşısına çıkan (yorum yazarken vs) değişik harf ve sayılardan oluşan resimleri ekrana girmeniz istenir. Buna Captcha denir.

Paragrafın başında dediğim gibi sürekli gelişen bir teknolojiyle bu güvenlik ayarınıda geçmeyi başardılar. (Değişik yazılımlarla grafikleri okuma programları yaygınlaştı.) Buna karşıda Captcha gelişti ve KittenAuth adında bir güvenlik mekanizması ortaya çıktı. Bunun anlamıda karşımıza çeşitli görseller çıkıyor ve aynı olanlarını seçmemizi istiyor.

22 Haziran 2010 Salı

CSS İle Yazıya Takla Attırma

Arkadaşlar HTML yazıyı aşağıdan yukarıya doğru yazdırırken hep "mso-rotate:90;" css kodunu kullanıyordum. Ama yukarıdan aşağıya doğru bu kod işe yaramıyordu . Gel zaman git zaman aşağıdaki css kodunu buldum. Rotation=3 değerini değiştirtikçe istediğiniz yönü verebiliyorsunuz.

"float:left; filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);"

18 Haziran 2010 Cuma

C# NULL Kontrolü

Bazı değişkenleri kontol ederken null olup olmadıklarına göre işlem yaparız. Bunun içinde ben sürekli eğer bu değişken null'sa bunu yap gibi bir kod kullanıyordum. Bunun yerine yeni öğrendiğim bir kodu sizinle paylaşıyorum.

Yalnış:
var i = null;
var k = null;
if (i==null)
{
k=değer;
}

Doğru:
var i = null;
var k = null;
k = i ?? değer;

i değişkeni null'sa k değişkeninin içine değeri atama yapıyor. Değilse i değişkenini atıyor.
Ayrıca aynı javascriptteki gibi değişkenleri tanımlarken var k gibi tanımlama yapabiliyoruz. Bu sayede ileriki aşamalarda bu değikenimizin tipini belirleyebiliyoruz.

Linq To Sql Left Outer Join

İki tabloyu birlikte sorgulamak için inner join kullanırız. Bunu Linq To Sql ile yaparken aşağıdaki gibi bir Linq Query yazarak çözüyoruz
(Kisi, Telefon ve Adres tablolarımız olduğunu, bir kişinin de birden çok adresi ve telefonu olduğunu düşünüyoruz )
Bu sorgu sonucunda bana kişiler tablosundaki isimler ve bunlara ait telefon numaraları gelecektir.

from kisi in Kisis
join tlf in Telefons
on kisi.ID equals tlf.KisiID
select new
{
Ad = kisi.Ad,
Tlf = tlf.Numara
}

T-Sql çıktısı
SELECT [t0].[Ad], [t1].[Numara] AS [Tlf]
FROM [Kisi] AS [t0]
INNER JOIN [Telefon] AS [t1] ON [t0].[ID] = [t1].[KisiID]

Lambda Expression
Kisis.Join ( Telefons, kisi => kisi.ID, tlf => tlf.KisiID, (kisi, tlf) => new { Ad = kisi.Ad, Tlf = tlf.Numara } )



Senaryomuzu değiştirelim ;
Kişiler tablosundaki tüm kayıtlat gelsin, telefon numarası olmayanlar da gelsin telefonu yoksa null değer gelsin. Bunun içinde Left Outer Join ile çözeriz. Linq sorugumuzu şu şekilde değiştirmemiz yeterli olacaktır.

from kisi in Kisis
join tlf in Telefons
on kisi.ID equals tlf.KisiID into data
from x in data.DefaultIfEmpty()
select new
{
Ad = kisi.Ad,
Tlf = x.Numara
}

T-SQL çıktısı

SELECT [t0].[Ad], [t1].[Numara] AS [Tlf]
FROM [Kisi] AS [t0]
LEFT OUTER JOIN [Telefon] AS [t1] ON [t0].[ID] = [t1].[KisiID]

Lambda Expression
Kisis
.GroupJoin (
Telefons,
kisi => kisi.ID,
tlf => tlf.KisiID,
(kisi, data) =>
new
{
kisi = kisi,
data = data
}
)
.SelectMany (
temp0 => temp0.data.DefaultIfEmpty (),
(temp0, x) =>
new
{
Ad = temp0.kisi.Ad,
Tlf = x.Numara
}
)



Kaynak: http://www.oguzyagmur.com/PermaLink,guid,b9fcc750-0e3b-43e4-a9e8-212ee94afa4e.aspx

25 Mayıs 2010 Salı

XHTML Nedir?

XHTML (Extensible Hyper Text Markup Language) tüm browserlar tarafından kabul görmüş standartları belirtir. Diğer bir deyişle HTML yazımında getirilen standartlardır. XHTML kullanmanın en önemli avantajı farklı tarayıcılarda(Opera, Explorer, Crome vs) sorun çıkarmamasıdır. Bir diğer avantajı ise arama motorlarının XHTML standartlarına uygun yazılmış sitelere daha yüksek not vermeleridir.

XHTML Dikkat Edilmesi Gereken Kurallar?

1) Browserin XHTML standartlarına uyulduğunu anlayabilmesi için sayfanın en üstüne aşağıdaki kodların eklenmesi gerekmektedir.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

NOT:Geçerli 3 adet XHTML döküman tipi vardır:

a) XHTML Strict
XHTML Dökümanlarını css dökümanları ile beraber kullanmanız gerektiğinde kullanılır. HTML’nin dizayn unsurlarını içermez.
Tanımı:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

b) XHTML 1.0 Transitional
CSS anlamayan web gezginlerini desteklemek ve HTML’nin dizayn unsurlarını kullanmak istiyorsanız bu döküman tipini kulanın.
Tanımı:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">

c) XHTML 1.0 Frameset
Eğer XHTML dökümanları pencerelere bölünmüş olarak gösterilecekse bu döküman tipini kullanın.
Tanımı:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

2) Türkçe karakterlerin doğru çıkması içinde head tagının arasına aşağıdaki kodun eklenmesi gerekmektedir.

<meta equiv="Content-Type" content="text/html; charset=utf-8">

3) Kodlar açıldıkları sırada kapanmalıdırlar.

Doğru:
<html>
<head>
<title></title>
</head>
<body>
<div>TeknoGezgin</div>
</body>
</html>

Yalnış:
<html>
<head>
<title></title>
<body>
</head>
<div>TeknoGezgin</div>
</html>
</body>

4) Tagları ve değerlerini küçük harfle yazın.

Doğru:
<title></title>
<div style="">TeknoGezgin</div>

Yalnış:
<TITLE></TITLE>
<div STYLE="">TeknoGezgin</div>

5)Açılan her tag kapanmalıdır.

Doğru:
<b></b>
<hr />

Yalnış:
<hr>
<br>

6) HTML tagı içerisinde head ve body tagları kullanılmak zorundadır.

7) Link ve Resim eklerken bir başlık (title) girilmelidir.

Doğru:
<img src="" href="Kastamonu.gif" title="Kastamonu Resimi" />
<a href="http://www.teknogezgin.blogspot.com/" title="Teknolojik Bilgiler :)">

Yalnış:
<img src="" href="kastamonu.gif" />
</a><a href="http://www.teknogezgin.blogspot.com/">

8) Parametreler tırnak içinde olmalıdır.

Doğru:
<div width="100%"></div>
<a href="http://www.teknogezgin.blogspot.com/">teknogezgin</a>

Yalnış:
<div width=100%></div>
<a href=http://www.teknogezgin.blogspot.com/>teknogezgin</a>

9) Parametrelerde kısaltmalar kullanılmamalıdır.

Doğru:
<input type="radio" checked="checked" />
<option selected="selected" />

Yalnış:
<input type="radio" checked />
<option selected />

10) Sadece Id parametresi kullanın. XHTML id parametresini kullanmamızı istiyor.

Doğru:
<p id="parag">
<input id="parag" value="deger" type="submit">

Yalnış:
<p name="parag">
<input name="parag" value="deger" type="submit">

O zaman kısaca XHTML dikkat edilmesi gereken kuralları şu formül ile açıklayabiliriz. XHTML = XML

24 Mayıs 2010 Pazartesi

T-SQL İle Tarihler Üzerinde İşlemler Yapmak

SELECT CURRENT_TIMESTAMP
-- Sonuç : 2009-07-20 10:39:15.097


SELECT DATEADD(day,2,'2009-07-20')
-- Sonuç : 2009-07-22 00:00:00.000

SELECT DATEADD(month,2,'2009-07-20')
-- Sonuç : 2009-09-20 00:00:00.000


SELECT DATEDIFF(day,'2009-07-20','2015-02-09')
-- Sonuç : 2030 (Gün olarak aldık)

SELECT DATENAME(month, '2009-07-20')
-- Sonuç : July


SELECT DATENAME(weekday, '2009-07-20')
-- Sonuç : Monday

SELECT DATEPART(month, '2009-07-20')
-- Sonuç : 7


--Şuanki Zaman ve Tarihi verir
SELECT GETDATE()
-- Sonuç : 2009-07-20 11:52:32.893

-- Londra - Greenwich Saati
SELECT GETUTCDATE()
-- Sonuç : 2009-07-20 08:52:44.693


--Girilen string değerin tarih olup olmadığını belirler. 1 ise tarih 0 ise değil.
SELECT ISDATE('2009-07-20') -- Sonuç : 1
SELECT ISDATE('2014-18-09') -- Sonuç : 0

--girilen Tarihin gün bilgisini verir.
SELECT DAY('2009-07-20')
-- Sonuç : 20


--girilen Tarihin ay bilgisini verir.
SELECT MONTH('2009-07-20')
-- Sonuç : 7

--Girilen Tarihin yıl bilgisini verir.
SELECT YEAR('2009-07-20')
-- Sonuç : 2009


--Sistem Zamanını verir.
SELECT SYSDATETIME()
-- Sonuç : 2009-07-20 11:53:15.7138432

--Sistem Zamanını Greenwiche göre verir.
SELECT SYSUTCDATETIME()
-- Sonuç : 2009-07-20 08:53:25.9958432


-- DATEADD: Şuanki, Tarihe 7 Gün ekleyelim.
-- Bunun için 1 hafta eklemek veya 7 gün eklemek yeterlidir.
SELECT DATEADD(DD, 7, GETDATE())

SELECT DATEADD(WW, 1, GETDATE())

-- Şuanki Tarihe göre Ayın hangi günündeyiz.
SELECT DAY(GETDATE())


-- Şuanki Ayın Ilk günü
SELECT DATEADD(DD,-(DAY(GETDATE())-1),CONVERT(VARCHAR,GETDATE(),112))

-- Şuanki Ayın son günü
SELECT DATEADD(DD,-(DAY(DATEADD(MM,1,GETDATE()))),DATEADD(MM,1, CONVERT(VARCHAR,GETDATE(),112)))


-- DATEDIFF: Ocak 1 2007 den bugune kadar kaç gün geçti
SELECT DATEDIFF(DD,'20070101',GETDATE())

-- DATENAME: Şuanki Ay
SELECT DATENAME(MM, GETDATE())


-- Hangi Aydayız.
SELECT MONTH(GETDATE())

-- Hangi Yıldayız
SELECT YEAR(CURRENT_TIMESTAMP)


--C#'taki gibi Tarih Stilleri
1- 101 (mm/dd/yy)
2- 102 (yy.mm.dd)
3- 103 (dd/mm/yy)
4- 104 (dd.mm.yy)
5- 105 (dd-mm-yy)
6- 106 (dd mon yy)
7- 107 (Mon dd , yy)
8- 108 (hh:mm:ss)
9- 109 (Mon dd yyyy Hh:mi:ss:mmm AM yada PM)
10 – 110 (mm-dd-yy)
11 – 111 (Yy/mm/dd)
12- 112 (Yymmdd)
13- 11 3 (Dd mm yyy hh:mm:ss:mmm)
14- 114 (Hh:mi:ss:mmm)
20- 120 (Yyyy-mm:dd hh:mm:ss)
21- 121 (Yyy-mm:dd hh:mi:ss:mmm)

Microsoft'un sitesinden de farklı stillere bakabilirsiniz.

SELECT CONVERT(CHAR(20), GETDATE(),103) as "şu andaki zaman" 07.07.2010
SELECT CONVERT(CHAR(20), GETDATE(),108) as "şu andaki saat" 14:51:25

Zamanla buraya daha farklı zaman fonksiyonlarıda ekliyecem.

13 Mayıs 2010 Perşembe

Asp.net Dinamik event handler ve Dinamik Kontroller

Merhaba arkadaşlar. kısa olmasına karşın çok pratik bir kod paylaşacağım.
Bu kodda asp.net kontrollerini dinamik oluşturacağız. ama sırf bunu anlatmak için açmadım konuyu. birde

ajax ile de kullanabileceğiniz kullanabileceğiniz dinamik event handler atama işlemine değineceğim.

Sayfamıza bir placeholder ekleyelim ve pageload'a gelelim

for(int i=1;i<10;i++)
{
Button tus = new Button();
tus.Click += new System.EventHandler(this.tikla);
tus.ID = "tus" + i.ToString();
tus.Text = "Tus " + i.ToString();
PlaceHolder1.Controls.Add(tus);


Literal lt = new Literal();
lt.Text = "
";
lt.ID = "lit" + i.ToString();
PlaceHolder1.Controls.Add(lt);
}

kodumuz yukarıda biraz açıklayacak olursak. for döngümüz içinde buton sınıfından bir nesne

oluşturuyoruz. bu nesnenin click özelliğine kendi yazdığımız tıkla fonksiyonunu atıyoruz. id'sini ve

text'ini fordaki i değişkenimizle, sıralı oalcak şekilde atıyoruz (tus1,tus2..) evet butonumuz oluştu.

şimdi bunu sayfamızda görebilmek için placeholder nesnemize atalım.

2. bölümde aynı işlemleri literal için yapıyoruz. alt satıra atmak için literal textine
br atıyoruz.hiç dinamik kontrol kullanmayanlara örnek olması için. bir de literal oluşturdum.

Şimdi fonksiyonumuza geçelim. bu fonksiyon yukarıda butonlara atadığımız kendi yazacağımız fonksiyon.

static butonlarda butona çift tıklayınca çıkan onclick fonksiyonundan pek farklı değil.


protected void tikla(object sender, EventArgs e)
{


System.Web.UI.WebControls.Button dugme = sender as System.Web.UI.WebControls.Button;


if (dugme != null)
{
Response.Write(dugme.Text+" basıldı");


//buton numarasını alabiliriz. veri tabanındaki id'yi atadıysak querystring yerine

kullanabiliriz.
int id = Convert.ToInt32(dugme.ID.Replace("tus",""));

}


}

kısaca açıklayacak olursak.normal click fonksiyonundan farklı olarak biz bu fonksiyonu for döngüsü

içinde 10 tane butona atatık. ve hangi butona tıklandığına ilişkin bir kod yazacağız fonksiyona.

sender objnesnesizim butonumuzu temsil ediyor bu zaten static fonksiyonlarda da var. ama bunu yine

System.Web.UI.WebControls sınıfından butona çevirmeden direkt kullanamıyoruz.(fonksiyon içindeki ilk kod

bunu yapıyor) dugme nesnesine atadık.

2. kodda null olmadığından emin olalım her ihtimale karşı önlemimizi alalım. evet artık hangi butona

tıklandığını bulmuş olduk. bu butonun text'ini yazdıyoruz. buton id'sindeki tus kelimesini replace

ederek de numarasını buluyoruz.

bu numara bulma işlemi eğer for değilde bir db'den çekilen kayıtla oluşturulmuş nesnelerde (veri

tabanındaki kayıt id'si atanmışsa) direkt bize id'yi verir. evet kısa da olsa ajaxla uğraştığım

zamanlarda geliştirdiğim bana çok kolaylık sağlamış bir koddur.

Ajaxla uğraşanlar bilirler request işlemlerini kullanmak istediğimizde başımız belaya girer :) her

sayfaya query string de gönderemeyiz. çünkü yenilenmemesi gerekir.yada link olması gerekir.

işte bu gibi durumlarda bu kod kurtarıcınız olacakatır.
id göndermeden işlem yapmak isterseniz. yine server ve asp.net tabanlı güzel bir çözümdür.

aynı zamanda birden çok butonu tek fonksiyondan kontrol etmek isterseniz yine buradan

faydalanabilirsiniz.

Kaynak: http://www.kodaman.org/yazi/asp-net-dinamik-event-handler

12 Mayıs 2010 Çarşamba

ADO.NET tarafında SQL function nesnesi kullanmak

Selam dostlar.

Biliyorsunuz, Microsoft SQL Server tarafında kullandığımız function isimli nesnelerimiz var. Bu nesnelerin kullanım amacı nedir ve ADO.NET tarafından nasıl çağrılır? Biraz bu konulara değinelim.

Arkadaşlar, ilk başta şu sorunu bir çözelim stored procedure ile function arasında nasıl bir fark var? Veritabanındaki her işi stored procedure ile yapmak mümkün mü? Bu konuyu biraz masaya yatıralım (Bazı SQL'ciler, her şeyi stored procedure'ler ile yapabileceklerini iddia ederler).

Function ile Stored Procedure arasındaki en büyük fark şudur; bir stored procedure içindeki işlem, geriye ya herhangi bir tablodan bağımsız bir değer döndürür ya da belirli bir tabloya (ya da tablolara) bağlı bir result set (sonuç grubu J) oluştururlar. Oysa bir function nesnesi (Table döndürenleri hariç) , herhangi bir sorgu ifadesi içinde kullanılabilir. Böylece döndürdüğü değeri elde etmek için kullandığı parametreyi kendiniz atayabileceğiniz gibi, herhangi bir tablonun herhangi bir kolonunu da verebilirsiniz…

Örneğin, verilen parametrenin KDV eklenmiş halini hesaplamak amacıyla şöyle bir fonksiyon oluşturalım:

CREATE FUNCTION KDVHesapla

(@Fiyat money)

RETURNS money

AS

BEGIN

DECLARE @donenDeger money

SET @donenDeger = @Fiyat * 1.18

RETURN @donenDeger

END

Bakın bu fonksiyonu şu şekilde kullanabilirsiniz:

SELECT dbo.KDVHesapla(30)

Bir de aşağıdaki gibi kullanabilirsiniz:

SELECT ProductName,dbo.KDVHesapla(UnitPrice) FROM Products

Gördüğünüz gibi, function nesnemi her türlü sorgu ile kullanabilirim. Haydi yapabilirseniz aynı şeyi Stored Procedure ile yapın J

Burada, function'dan ve kullanımından bahsetmişken, aslında ADO.NET tarafından nasıl çağrılması gerektiğini de anlatmış olduk. Function nesnesi, zaten sorgu ile birlikte kullanıldığı için ADO.NET tarafında ekstra bir işleme gerek duymazsınız.

Yani:

SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Northwind;Integrated Security=True");

SqlDataAdapter da = new SqlDataAdapter("Select ProductName, dbo.KdvHesapla(UnitPrice) from Products", con);

DataTable dt = new DataTable();

da.Fill(dt);

dataGridView1.DataSource = dt;

Haliyle, normal bir sorgu çekmekten hiçbir farkı yok.

Kendinize iyi bakın.

İyi çalışmalar.

Kaynak: http://www.turkayurkmez.com/post/2008/09/13/ADONET-tarafinda-SQL-function-nesnesi-kullanmak.aspx

FileUpload ve Güvenlik

ASP.NET uygulamarınızda kullanıcılardan dosya transferi yapmak istediğimizde FileUpload Asp.net sunucu kontrolü ile basit bir şekilde bu işlemi hallederiz.Basit bir örnek ile

if (FileUpload1.HasFile)
{
try
{
FileUpload1.SaveAs(Server.MapPath(".") + "/uploads/" + FileUpload1.FileName);
}
catch (Exception exp)
{
//hede höde
}
}

Tabi dosyaları saklayacağınız dizine yazma hakkı (ASP.NET kullanıcısına) vermeliyiz. Buraya kadar herşey doğal gibi görünse de unuttuğumuz küçük! bir ayrıntı var ki o da dosya boyutu ve dosya tipi. Öncelikle istemediğimiz dosya tiplerinin sunucumuza upload edilmesini önlemeliyiz. Kullanıcıdan sunucuya gönderilen dosya tipini

Response.Write(FileUpload1.PostedFile.ContentType);
//bir txt dosyasını gönderdiğinizde tarayıcımızda "text/plain",bir mp3 dosyası göndediğimizde ise "audio/mpeg" yazdıgını göreceğiz.

kod satırı ile öğrenebilir ve istemediğimiz tipdeki dosyaların sunucuya gönderilmesini engelleyebiriz.Peki gelelim dosya büyüklüğüne. Bu basit hali ile uygulamamızı kullanıcılara açtığımızda beklenmedik bir durum ile karşılaşma ihtimalimiz çok yüksek. Örneğin iş başvurusu yapılacak ve kullanıcılardan CV lerini word dökümanı olarak istemekteyiz. ContentType ile dosya tipini belirleyerek başka formatlardaki dosyaları sunucumuza gönderilmesini engelledik. E güzel!. Dosya boyu 5 mb olan bir kullanıcı CV sini göndermeye çalıştığında ne olur ? Görünürde "ne olabilir ki?" dediğimizde aslında sunucumuz - iis - bu işlemi iptal edecek ve hatta yukardaki kod örneğinde catch bloğumuz işe yaramayacaktır. Olan olmuştur. Sunucu bir request'deki varsayılan büyüklük olan 4MB sınırının aşıldığını tespit edecek ve bir hata oluşturacaktır (HttpUnhandledException). Peki Global.asax da biz bu hatayı yaklayıp inceleyelim.



Görüldüğü gibi yakalanan hatamızın InnerException nesnesine baktığımızda oluşturulan isteğin sınırı aştığını görebiliriz. Bu bizim için aslında dezavantajdan ziyada avantajdır.Çok büyük dosyalar yükleyerek sistemimizin yavaş çalışmasına neden olacak kötü niyetli arkaşlarımızı! birazcık üzecektir. Çözüm ise sunucumuzun gelen isteklerin boyutunun 4MB den büyük olmasına izin vermesi. Bunu da web.config doyasını aşağıdaki gibi düzenleyerek sağlayabiliriz.



Artık sunucumuz bu ayar ile maksimum istek boyutunu yaklaşık 16MB olarak kabul edecektir. Tabi burda dikkat etmemiz gereken en önemli nokta ise sunucumuzun bu uzun işlemler sırasında -16MB lik bir dosya kullanıcının bağlantısı yavaş olduğunu göz önüne alındığında yüklenmesi uzun bir işlem olacaktır - Normalde 90 sn boyunca gelen isteğe cevap veremezse IIS, isteği sonlandıracak ve timeout hatası gönderecektir. Bunu da engellemek için web.config dosyamızda aşağıdaki düzenlemeyi yaparız.



artık sunucumuz 90 sn değil 360 sn boyunca gelen isteği cevaplamak için "var gücü ile :) " çaba sarfedecektir ;) Tabi bu süreyi iyi analiz etmeli performans sorunları yaşamamak için bu sürenin uygulamanız çerçevesinde ne kadar süre olarak belirlenmesini iyi analiz etmek gerekir.

Kaynak: http://www.oguzyagmur.com/PermaLink,guid,a0237b88-624f-47ae-b26e-4edbbf324750.aspx

10 Mayıs 2010 Pazartesi

HashSet Kullanımı

HashSet h = new HashSet();
h.Add(7);
h.Add(11);
h.Add(7);

Console.WriteLine(h.Count);

IIS Yüklerken Dosya Kopyalayamama Hatası


Windows XP Professional SP2-SP3 çalışan bir bilgisayara IIS yüklemeye çalıştığınızda "Kur staxmem.dll dosyasını kopyalayamadı" hata iletisini alabilirsiniz
Hatayı düzeltmek ve kurulumu yapmak için aşağıdaki adımları izleyiniz:

1. Başlat'ı tıklatın, Çalıştır'ı tıklatın, cmd yazın ve Tamam'ı tıklatın.
2. Komut istemine aşağıdaki komutu yazın ve ENTER tuşuna basın:
esentutl /g c:\Windows\security\database\secedit.sdb
3. Komut istemine aşağıdaki komutu yazın ve ENTER tuşuna basın:
esentutl /p Sürücü:\Windows\security\database\secedit.sdb
4. "Database log dosyalarında değişiklik yapıcam veri kaybına uğrayabilirsiniz" hata iletisine Tamam Diyoruz.
5. IIS kuruluma devam edin.

9 Mayıs 2010 Pazar

Sansüre Karşı DNS Ayarı


Daha önceden Sansürü Kaldıran Tarayıcı Opera makalesinde söz verdiğim bir konuyu anlatacam. Daha doğrusu resimle gösterecem :).

DMOZ Site Eklemek ve Dikkat Edilmesi Gereken Kurallar


Dmoz diğer adıyla Açık Dizin Projesi. AOL Search, AltaVista, HotBot, Google, Lycos, Netscape Search vs gibi arama motorları sıralama yapaken veya siteleri dizine eklerken bu (DMOZ) veritabanından site bilgilerini alır. (Unutmamak gerekir ki her arama motorunun kendine özgü bir algoritması vardır. O algoritma üzerinden işlemlerini gerçekleştirirler. Bizim yaptığımız ise sadece sitemizin indexlenmesini ve üst sıralarda çıkmasını kolaylaştırmaya çalışmaktır.)

Peki DMOZ'a kayıt işlemi nasıl yapılır? İki yolu var. Birincisi editörler sitenizi görüp, beğenirler bu şekilde dizine eklerler yada siz başvuru yaparsınız. Yapmış olduğunuz başvuru editörler tarafından kontol edilir ve dizine ekleme işlemini gerçekleştirir. Yani her koşulda sitenizin bir editör onayından geçmesi gerekir. Buradaki editörler tamamen gönüllülük esasına göre çalışırlar. Yazımın devamına nasıl editör başvurusu yapacağınıza dair bilgiler aktaracağım.

DMOZ'a başvururken dikkat etmeniz gereken koşullar. Bu koşullara uymanız gerekiyor çünkü siteniz editörlerin onayından geçiyor yani otomatik bir sistem olmadığından dolayı kandırma ihtimaliniz yok.

* Sitenin içeriğinin özgün olması Kopyala = Yapıştır = Çalıntı
* Link sitesi olmaması
* Sitede kırık link olmaması
* Bir sitenin aynısı olmaması
* İletişim bilgilerinin olması
* Yanlış kategoriye başvuru yapmadığınızdan emin olmalısınız.
* Birden çok kategoriye başvurarak listelenme şansını artırabilirsiniz. Ama aynı kategoriye birden fazla başvuru kesinlikle yapmayın.
* Rakip firmalarınızı Dmoz'da kontrol edip onların kaydoldukları kategorilere kayıt olabilirsiniz.
* Yansı siteleri göndermeyin.
* Dizinde listelenmiş sitelerle aynı veya çok benzer içeriğe sahip olan siteleri göndermeyin.
* Aldatıcı tekniklerle sitenizi veya site adresinizi bir kereden fazla göndermeyin. Örnek: http://www.birdunyatarif.com ve http://www.birdunyatarif.com/index.html.
* Yapım aşamasında ve yasa dışı siteleri göndermeyin.
* Reklam niteliği taşıyan sözcüklerden ve cümleciklerden kaçının.
* Açıklamalarınızı yazarken SADECE BÜYÜK HARF kullanmayın.
* Cümledeki her sözcüğün ilk harfini büyük harf yapmayın.
* Sitenizin başlığını açıklamada yinelemeyin.
* Yazım hatası yapmadığınızdan emin olun.
* Başka sitelerden iframe yöntemi ile eklenmiş haber ve yazar köşeleri almayın
* Gazete oku bölümleri eklemeyin.
* Uzun süre siteniz dizine eklenmemişse yukarıdaki kuralları tekrardan gözden geçirip başvurunuzu yineleyin.

Adım Adım DMOZ'a Başvuru

1) www.dmoz.org/World/Türkçe/ linkini açıyoruz.
2) Kaydedeceğimiz sitenin adresi:www.birdunyatarif.com
3) Seçmeniz gereken kategori: Top: World: Türkçe: Ev: Yemek: Yemek Tarifleri
4) Sayfanın en üst bölümünde adres öner linkine tıklayarak, başvuru sayfasını açıyoruz.

Site Adresi:http://www.birdunyatarif.com/
Bu ne tür bir bağlaç:Normal PDF RSS Atom

Sitenizin tamamını kayıt ettirmek istiyorsanız: Normal seçeneğini
Sitenizde ki bir pdf uzantısını kayıt ettirmek istiyorsanız:Pdf seçeneğini
Sitenizin RSS sayfasını kayıt ettirmek istiyorsanız:RSS seçeneğini seçmelisiniz.

Site Başlığı Kısmına : Bir Dünya Tarif

Site Açıklaması Bölümüne :Çeşitli kategorilere göre ayrılmış pratik yemek tarifleri sunuluyor.

E-posta Adresiniz Bölümüne :Kullanmakta olduğunuz bir mail adresi giriniz.

Daha sonra sayfanın altında ki gönder tuşuna basarak sitenizin başvurusunu tamamlıyorsunuz.

Eğer ki yukarıda ki gibi başvurunuzu tam ve eksiksiz yaptıysanız sitenizin dizine eklenmemesi gibi bir durum söz konusu değildir. Mutlaka eklenecektir.

Adım Adım Editör Başvurusu

Yukarıdaki adımları teker teker 4. adıma kadar yapın. Daha sonra editör ol linkine tıklayın. Buradan açıklamaları tek tek okuyaraktan editörlük başvurunuzu gerçekleştirin. Şunu unutmayın sadece kendiniz olun ve sorulara doğru cevaplar verin. Bir saat geçmeden size geri dönüş yapacaklardır.

4 Mayıs 2010 Salı

Bilgisayarınızı Güvene Almanın Yolları


İnternet bankacılığı başta olmak üzere E-mail, Facebook, Twitter gibi sık kullandığınız şifreleri mutlaka periyodik olarak değiştirin. Şifre oluştururken güçlü karakterler kullanmayı unutmayınız(@ . - vs). Forumlara üye olurken daha önceden belirlediğiniz bir şifreyi kullanın. İnternet bankacılığı gibi sizin için hayati öneme sahip olan şifrelerinizle aynı şifreleri vermeyin.

İnternetten alışveriş yaparken güvenilir siteleri tercih edin ve ödeme sayfasında SSL (Url'nin https olarak başlaması gerekiyor) olduğunu kontrol edin. Hiç bir şekilde e-mail ile gelen ve sizden kredi kartı şifrenizi talep eden mail'lere de güvenmeyin. Şunu unutmayın ki bankalar müşterilerinden bu şekilde herhangi bir bilgi istemez.

Hangi virüs programı olursa olsun bilgisayarınıza bir tane virüs programı kurun. Çoğu virüs programı kendini otomatik olarak güncelliyor. Bu özelliği yalnışlıkla kapatmış olmadığınızı kontrol edin.

Belirli periyodlar halinde bilgisayarınızdaki dosyaları yedekleyin. Bu sayede sistem çökmeleri veya harddisk bozulmaları(En önemli sebebi ani elektrik kesintileri. Bunun içinde bir güç kaynağı alınabilir.) gibi durumlarda yedekleriniz güvende olur.

Kablosuz (WiFi) internet bağlantılarınıza güçlü şifreler koyun. Kullanmadığınız zaman Adsl'nizi kapatın. Eğer tüm herkese açık internet bağlantısı kullanıyorsanız (Cafe, park vs) önemli işlerinizi buradan yapmayın.

Son olarakta bilgisayarınıza ve çok önemli dediğiniz dosyalara şifre(WinRar şıkıştırma dosyası ile bunu yapabilirsiniz) koyabilirsiniz.

3 Mayıs 2010 Pazartesi

Bilmemiz Gereken 15 Kısayol Tuşu


Yapılan araştırmalar gösteriyor ki bilgisayar veya internette harcadığımız vaktin çoğu mouse hareketlerimize gidiyor. Zamandan tasarruf etmek ve işlerimizi daha hızlı yapmak için bilmemiz gereken 15 kısayol tuşunu aşağıda sırasıyla sizinle paylaşıyorum.

1) Ctrl + C (Seçili metni kopyalar)
2) Ctrl + X (Seçili metni keser)
3) Ctrl + V (Kopyalanan yada kesilen metni yapıştırır)
4) Ctrl + A (Tüm metni şeçer)
5) Ctrl + F (Metin içinde arama penceresini açar)
6) Ctrl + Z (Yazılan metni geri alır)
7) Ctrl + Y (Yazılan metni tekrardan yazar)
8) Ctrl + T (Yeni sekmede açar)
9) Alt + Tab (Sayfalar arası geçisi sağlar)
10) Windos + D (Açık olan tüm pencereleri simge durumunda küçültür ve masaüstünü gösterir)
11) F5 (Sayfayı yeniler)
12) F6 (Adres çubuğunu seçer.Mouse ile seçmekten daha hızlı)
13) F11 (Tam ekran yapar. Slayt gösterilerinde çok işe yarıyor)
14) Page Up (Sayfa sayfa yukarı çıkmamızı sağlar)
15) Page Down (Sayfa sayfa aşapı inmemizi sağlar)

Sansürü Kaldıran Tarayıcı "Opera"


Bir çoğumuzun bildiği gibi (bilmeyenler için yeni bir makale yolda) engellenen web sitelerine girmek için DNS adresi değiştirmek veya vekil sunucu üzerinden bağlanmak gibi değişik bir çok yönteme başvuruyorduk. Bu tekniklere yeni bir yol daha eklendi. O da tarayıcımızı Opera yapmak. Siber özgürlükler platformu Cyber-Rights.Org.TR, Opera'nın Turbo özelliği kullanılarak erişim engeli bulunan yani yasaklı sitelere girilebildiğini bu nedenden dolayıda Opera kullanımını desteklediklerini açıkladı.

Dünya tarayıcı pazarında Explorer, Firefox gibi devlerden sonra beşinci sırada bulunan Opera'nın (Bu özellik sayesinde web kullanıcılarından bir "+" aldı) Turbo özelliği kullanıldığında, engellenen web siteleri sorunsuz görüntülenebiliyor. Opera'nın Turbo özelliği web dolaşımını hızlandırıyor. Tarayıcı bu hızlandırmayı yaparken sıkıştırılmış web sayfalarını ülke dışında yer alan bir sunucu üzerinden indirme imkanı sağlıyor. Bu sayede de otomatikmen sitelere giriş yapılabiliyor.(Bir nevi otomatik DNS yapma).

Siber özgürlükler platformu Cyber-Rights.Org.TR, bu özelliği nedeniyle tüm internet kullanıcılarını Opera web tarayıcısını kullanmaya davet etti.

World of Warcraft Servet Kazandı


World of Warcraft dünya çapınca milyonlarca kullanıcısı olan, internet üzerinden online olarak oynanan bir strateji oyunu. "Blizzard Pet Store" ise bu oyun için oluşturulan ve oyun içinde kullanılabilen eşyaların satışa sunulduğu bir site.

Geçenler bu sitede satışa sunulan "Celestial Steed" isimli sanal bir at, oyunun kullanıcılarından büyük ilgi gördü. 25 dolarlık fiyatıyla 24 saatte yapımcısına 3.5 milyon dolar kazandırdı.

Bu sanal atın özelliği ise diğer sanal atlara göre daha hızlı koşması ve düşmanlara karşı daha dayanıklı bir yapıda olması...

2 Mayıs 2010 Pazar

Bitmeyen Denilen Bir Oyun Daha Bitti


Bejewelled 2 oyununu hiç oynadınız mı? Bu ve bu tarz oyunlar kişide bağımlılık yapıyor ve bitiren yok. Daha doğrusu yoktu.

Mike Leyde, 2205 saat harcayarak Bejewelled 2'yi bitirdi. Oyunun maksimum puanı olan 4.872.299 mücevheri de topladı.

Oyunun yapımcılar ve programcıları şaşkın. Hiç kimsenin bu kadar mücevher toplayacaklarını tahmin etmemişler. Zaten 1 mücevher daha alsa skor birden - (eksi)lere düşmeye başlıyor.

Ne diyelim Allah(cc) akıl fikir versin. :D

Oha Artık Facebook


Ailesiyle, 14 yaşında tekne gezisine çıkan Olivier Vandevalle defterinden kopardığı bir sayfayı içine birşeyler yazıp şarap şisesiyle denize bırakıyor ve tam 33 yıl sonra cevabını Facebooktan alıyor.

Lorraine Yates adlı kişi şişeyi Dorset'te Swanage'daki sahilde bulduktan sonra açık adresi bir kenara bırakıp mesajın sahibini Facebook'ta aramaya başlar. Şimdi bu iki kişide Facebok'ta kanki olmuşlar.

Facebook artık eski arkadaşları kavuşturmaktan sıkılıp, birbirini tanımayan ama bir şekilde bağlantısı olan insanları da birbirine bağlamaya başlamış gibi görünüyor.

30 Nisan 2010 Cuma

Yavuz Abi Askere Gidiyor...


Yaklaşık 2 yıldır yanında çalıştığım. Bildiği herşeyi büyük bir sabırla anlatan (bana bir şeyler anlatmak sabır işidir :D) Yavuz abimiz (oturan) askere gidiyor. Tüm herşey için teşekkürler. Hayırlı tezkereler...

İnternet Explorer 8 Fatura Yazdırma Sorunu


Evet arkadaşlar benim ve ofisteki diğer arkadaşların (:D) bolca vaktini alan bir konu var sırada. Yapmış olduğumuz web tabanlı yazılımda müşterilerin faturalarını oluşturup yazdıracakları bir bölüm yaptık. Testlerde hiç bir sorun çıkmadı. Bu şekilde onlarca müşteri kullandı sorun çıkmadı. Taki müşterinin biri bilgisayarında İnternet Explorer 8'i güncelleyene kadar. İnternet Explorer 7'de herşey güllük - gülüstanlıkken Explorer 8 güncellemesiyle yazılar çok garip biçimde çıkmaya başladı. (Çok büyük ve iç içe geçmiş bir vaziyette). Gel zaman git zaman bu sorunun cevabını yandaki resimdeki gibi hallettim. Eğer sizde bu şekilde bir sorun yaşıyorsanız benim kadar vakit kaybetmeyin :D. Kolay gelsin.

Microsoft Muradına Erdi...


Microsoft daha önceki yıllarda Avrupa ülkelerinde kendisine sorun çıkartan patent sorununu halletti. Fat (Fat, Fat32, NTFS sırasıyla en güncel dosya sistemi) dosya sistemlerinde kullanılan uzun dosya isimleri ve bu uzun isimlerin farklı dosya sistemleriyle olan uyumluluğu konusundaki patent hakkı sonunda Microsoft'a verildi.

Microsoft mahkemeye CD-Romlar'daki (Rock Ridge Interchange Protocol) protokolü ile kendi geliştirdikleri sistemin farklı çalıştığını söylemiş. Bu sayede özellikle son dönemlerdeki teknolojik gelişmeler (fotoğraf makineleri, cep telefonları) yüzünden çok daha önemli bir hal alan patent sorununu halletmiş oldu.

29 Nisan 2010 Perşembe

4. Uluslararası Robot Yarışması Yakında Başlıyor

Türkiye'de 2010 Japonya Yılı olması kapsamında düzenlenen “4. Uluslararası Robot Yarışması”, 6-7 Mayıs tarihlerinde Ankara'da yapılacak.

Japonya Uluslararası İşbirliği Ajansı (JICA) ile Milli Eğitim Bakanlığı (MEB) birliğinde düzenlenen “4. Uluslararası Robot Yarışması”, Ankara Prof. Dr. Ahmet Taner Kışlalı Spor Salonu'nda gerçekleştirilecek.

Üniversite ve liseler(tüm liseler dahil) arası düzenlenen yarışma kapsamında, katılan tüm öğrencilerin kendi branşlarındaki bilgi ve becerilerini kullanarak bilimsel düşünme ve yaratıcı zeka bilinciyle araştırma yapmaları amaçlanıyor.

İki ğlke arasındaki dostluk ilişkisi temasıyla düzenlenen yarışma, “Dostluk Köprüsü”, “Çizgi İzleyen Robotlar” ve “Sumo Güreşçisi Robotlar” adında üç farklı kategoriden oluşacak. Yarışmanın sonunda da birinci olan ve özel ödül alan takımlar birer gösteri sergileyecekler.

Yarışmaya, “http//etogm.meb.gov.tr web sitesinden ya da 0312 413 12 41- 0312 413 18 65 numaralı telefonlardan başvurulabilecek. Yarışmaya katılım ücretsiz.

Disks are dead


Bir zamanların en popüler depolama teknolojisi olan disketler, artık yerini neredeyse tamamen USB ve optik belleklere bırakmış durumda. Ancak disketlere son darbeyi Sony indirmeye hazırlanıyor. Disketin mimarı da olan Japon devi, disket satışlarını bu yılın sonuna kadar durduracağını duyurdu. Yalnış okumadınız Sony firması bu zamana kadar disket üretimine devam etmekteydi. Bunun nedeni ise gelişmekte olan ülkelerde ki potansiyeldi. Bu potansiyelde artık yavaş yavaş tükenmeye başladı. Piyasadan iyice kaybolmadan bir tane disketi nostalji olsun diye saklamanızda fayda var.

Nokia'dan Yazılım Açılımı


Dünyanın en iyi telefon üreticilerinden biri olan Nokia, Symbian 3 işletim sistemine sahip ilk cep telefonunu kullanıcılarına tanıttı. Nokia'nın bu açık kaynak kodlu ilk işletim sistemi olan Symbian 3 ile kullanıcılar artık dilediği programı geliştirebilecek. Bu da iPhone için geliştirilen binlerce uygulamanın çok yakın zamanda Nokia telefonları için de geliştirilebileceği anlamına geliyor.

Nokia multi-touch (çoklu dokunmatik yeteneği - iphone daha önceden zaten mevcuttu) sahip olan N8 modelini bu yılın üçüncü çeyreğinde kullanıcılara sunması bekleniyor. Nokia bu atağı ile iphonenin yerini sallayamasada biraz yaklaşacağı tahmin ediliyor.