Hilmi BEYDEŞ 的个人资料Hilmi BEYDEŞ照片日志列表 工具 帮助

日志


5月30日

Gün ve Ay İsimleri Nereden Geliyor?

Ntvmsnbc.com da rastladığım ilginç bir bilgiyi paylaşmak istedim. İşte gün ve ay isimlerimizin kökenleri:

Cuma-Arapça-toplama, toplanma
Cumartesi-Arapça-(ertesi - Türkçe)
Pazar-Farsça-(ba = yemek, zar = yer)
Pazartesi-Farsça-(ertesi - Türkçe)
Salı-İbrânice-(üçüncü)
Çarşamba-Farsça-(cehar şenbe = dördüncü gün)
Perşembe-Farsça-(penç şenbe = beşinci gün)
Günümüzde kullandığımız ay isimlerinin geldikleri yerler de karışık. Hicri takvimdeki Arabi ay isimlerinin bugün hiçbirini kullanmamamıza rağmen yine de Şubat, Nisan, Haziran, Temmuz ve Eylül aylarının isimlerinin kökenleri Arapça ve Süryanice, Kasım ayının ise Arapça. İşin daha ilginç yanı bunlardan Şubat, Nisan, Temmuz ve Eylül hemen hemen aynı telaffuzla Yahudi takviminde de yer alıyorlar. Gelin ayların isimleri ve kökenlerine bir göz atalım.
Ocak = Türkçe (Kışın evlerde ateş yakılan yer)
Şubat = Süryanice
Mart = Latince (Maritus - mitolojik isim Mars’tan)
Nisan = Süryanice
Mayıs = Latince (Tanrıça Maria’nın ayı)
Haziran = Süryanice
Temmuz = Arapça / Süryanice
Ağustos = Latince (Roma İmparatoru Augustus’un adından)
Eylül = Süryanice
Ekim = Türkçe (Toprağı ekmekten)
Kasım = Arapça (Bölen)
Aralık = Türkçe (İki zaman dilimi arası)

5月29日

C# ile Drag&Drop

Hepimizin bildiği sürükle bırak… Peki implementasyonu nasıl? Bir kontrolün mouse ile tutulup taşınması mantığını içerdiğinden genellikle kontrolün MouseDown eventine kodlarımızı yazmalıyız. Burada önemli olan metot ve özellikleri inceleyelim.

DoDragDrop: Sürüklenecek bilginin belirlenmesini sağlar.
AllowDrop: Sürüklenen verinin kontrol içine bırakılabilir olup olmamasını sağlar.
DragDropEffects: Bir enum sınıfıdır. Bu sayede sürükleme ile kopyalama, taşıma gibi işlem yapacağımızı belirleriz.

Genel olarak mantık şöyledir. Öncelikle mousedown eventinde DoDragDrop ile taşınacak veriyi seçeriz. Sürüklenecek kontrolün AllowDrop özelliğini true yaparız. DragDropEffects ile de sürükleme tipini belirleriz. Son olarak da sürüklenen veriyi bırakılan kontrole ekleriz. Yaptığım örneği 5sn den kısa sürede indirip deneyebilirsiniz.
http://cid-ecd27a5458288d23.skydrive.live.com/self.aspx/Ortak/dragdrop.rar

Herkese İyi Çalışmalar!

5月28日

Neden MSDN?

İtalyanlar MSDN in önemini anlatan güzel ve eğlenceli bir video yapmışlar:). Silverlight teknolojisi ile hazırlanmış iki sevimli yazılımcının 3 gününü gülerek izleyeceksiniz. Mutlaka izleyin!

http://www.microsoft.com/italy/msdn/prodotti/promozioni/value/default.aspx

5月27日

DataTable da Filtreleme ve Sıralama- 2

filterExpression: Filtreleme ifadesi. WHERE ifadesi
sort: Sıralama ifadesi. ORDER BY ifadesi
recordStates: DataTable içerisindeki veriler üzerinde değişiklikler yapabilmekteyiz. recordStates parametresi DataTable içerisindeki verilerin durumuna göre seçme işleminin hangi kayıtlar arasından yapılacağını belirler. RecordStates e DataViewRowState enum class ı üzerinden erişebilirsiniz. Aynı proje üzerinde hemen bir örnek yapalım:

private void button1_Click(object sender, EventArgs e)

        {

            dataGridView1.DataSource = dt;

            DataRow[] satir = dt.Select("musteri_id<30 and musteri_id>20");

            foreach (DataRow dr in satir)

            {

                MessageBox.Show(dr["musteri_adi"].ToString());

            }

        }

DataTable da var olan bu özellikler sayesinde projelerimiz üzerindeki performans yükünü büyük bir oranda azaltmış oluyoruz. Zira eğer her sıralama veya filtreleme işlemi için server a gidecek olursak performansımız doğal olarak düşük olur. Her şeyden önce bu biz mühendislerin tercih etmeyeceği bir noktadır.

Bu arada yaptığım projeyi skydrive a upload ettim. Dileyen indirebilir.

http://cid-ecd27a5458288d23.skydrive.live.com/self.aspx/Ortak/datatable.rar

Herkese İyi Çalışmalar!!!

5月26日

DataTable da Filtreleme ve Sıralama -1

 

Ado.Net sıklıkla kullandığımız sınıflardan biridir DataTable. DataTable a ait DataRow ve DataColumn sınıfları ile işlemler yapabilmekteyiz. Bu yazımda genel olarak kullandığımız datatable da filtreleme ve sıralama işlemlerine göz atacağız. DataRow özelliği altında filtreleme işlemleri find metodu ile yapabiliyoruz. Ancak bu metottan tek bir kayıt geri dönüyor. Zira Find() primary key üzerinden arama yapıyor. Şu örnek koda bakalım:

private void Form1_Load(object sender, EventArgs e)

        {

            SqlConnection con = new SqlConnection(@"data source=HILMIPC\HILMI;integrated security=sspi;initial catalog=ilk");

            SqlDataAdapter da = new SqlDataAdapter("Select * from musteri", con);

            dt = new DataTable("musteri"); // dt global olarak tanımlanmıştı

            da.Fill(dt);

            DataColumn[] dc = { dt.Columns["musteri_id"] };

            dt.PrimaryKey = dc;

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            dataGridView1.DataSource = dt;

           DataRow satir= dt.Rows.Find(19);//varolan bir ID girin. aksi halde hata verecektir.veya try catch de kullanabilirsiniz:)

           MessageBox.Show(satir["musteri_adi"].ToString());

        }

Hemen kısa bir izahatta bulunayım. Bağlantıyı kurup DataTable doldurulduktan sonra onun üzerinde hangi kolonların primary key olacağını belirlememiz gerekiyor ki find metodu çalışabilsin. Daha sonra da buton click te datarow un find metodunun kullanılışını görüyoruz.

Peki primary keyden başka alan üzerinden işlem yapamıyor muyuz? Tabi ki yapabiliyoruz. DataTable a ait Select() bu işi yapıyor ve 3 adet override a sahip.

Select();
DataTable içerisindeki tüm satırları getirir.

Select(string filterExpression);
DataTable içerisinden sadece filtrelenen kayıtları getirir.

Select(string filterExpression, string sort);
DataTable içerisinden sadece filtrelenen kayıtları, belirtilen sıralamada getirir.

Select(string filterExpression, string sort, DataViewRowState recordStates);
DataTable içerisinden DataRowViewState'i belirtilen kayıtlar içerisinden filtrelenen kayıtları, belirtilen sıralamada getirir.

(devam edecek)

5月25日

Genel Exception Sınıfları

C# da hata yakalama işlemlerini try-catch-finally blogları ile yapıyoruz. Bu yazımda .Net framework içerisinde tanımlanmış olan exception sınıflarından yaygın olanları inceleyeceğim.
SystemException
Sistem namespace i içindeki önceden tanımlanmış hatalar için ana sınıftır.
AccessViolationException
Bu sınıf hafızada korunan bir yere okuma veya yazma teşebbüsünde bulunulduğunda kullanılan hata sınıfıdır.
StackOverflowException
Çalışan bir yığın çok fazla metod çağrısı içerdiğinde yığında taşma meydana geldiğinde tetiklenen hata sınıfıdır.
ArgumentNullException
Bu hatayla çoğumuz karşılaşmıştır sanırım. Bu sınıf da bir metod null değer almadığı halde null değer dönüyorsa throw edilir.
ArgumentOutOfRangeException
Gelen değer hafızada ayrılmış değeri taşıyorsa throw edilir.
ArithmeticException
Bu sınıf aritmetik, casting ve dönüşüm işlemlerinde oluşan hatalarda kullanılır.
ArrayTypeMismatchException
Diziye dizi türünden başka türde eleman ataması yapmak istediğinizde tetiklenen hata sınıfıdır.
NotSupportedException
Bu metod işletilmek istenen metod desteklenmediğinde veya okuma, yazma, arama desteklenmeyen bir stream e bu işlemler yapılmak istendiğinde throw edilen sınıftır.
FormatException
Bu sınıfı format uyumsuzluğu olduğunda tetiklenen sınıftır.
IndexOutOfRangeException
Bu hatayı dizilerle işlem yaparken almayanımız yoktur herhaldeJ. Gönderilen index dizinin sınırlarını aşıyorsa throw edilen sınıftır.
InvalidCastException
Geçersiz casting işlemi uygulanmaya çalışıldığında tetiklenen sınıftır.
InvalidOperationException
nesnenin o anki durumuna göre bir metodun çağırılması geçersiz ise throw edilen hata sınıfıdır.
MissingMemberException
Var olmayan bir sınıf üyesine erişim sağlanmak istendiğinde throw edilir.
DivideByZeroException
Sıfıra bölme hatası ile karşılaşıldığında tetiklenen sınıftır.
NullReferenceException
Bir null nesneyi referans olarak gösterildiğinde hata throw edilen sınıftır.
Burada birçok hata sınıfına genel bir bakış yaptım. Ancak tabi daha birçok hata sınıfı var:
ArgumentException, MissingFieldException, MissingMethodException, OutOfMemoryException, OverflowException, NotFiniteNumberException, NotImplementedException, InvalidFilterCriteriaException, InvalidProgramException, InvalidTimeZoneException gibi hata sınıfları da exception handling işlemlerinde bizlere yardımcı oluyor. Tabi bunların yanında bizler de User-Defined exception handling yapabiliyoruz.

Herkese İyi Çalışmalar!!!

5月24日

Asp.net ile vCalendar Oluşturmak

Asp.net ile hazırladığımız bir sitede etkinlik duyurusu yaptık diyelim. Bunu kullanıcının Outlook takvimine randevu olarak eklemek istiyoruz. Nasıl yaparız sorusunun cevabını bu yazımda bulabilirsiniz.

Öncelikle veri tabanımızda tabloyu oluşturalım.

 

Daha sonra bir web Project açalım. Sayfamızın source kısmına geçip page bölümüne ResponseEncoding="iso-8859-9"  ibaresini ekliyoruz.  Bunu eklememiz Türkçe karakter desteğini sağlayacaktır.

Sonra Body kısmına aşağıdaki kodu ekleyelim:

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="vcalendar" OnItemCommand="onClick">

        <ItemTemplate>

            <asp:Label ID="lblBaslik" runat="server" text='<%#Eval("baslik")%>'></asp:Label>

        <br/>

            <asp:Label ID="lblOzet" runat="server" Text='<%#Eval("ozet")%>'></asp:Label>

        <br/>

            <asp:Label ID="lblbaslangic" runat="server" Text='<%#Eval("bitis")%>'></asp:Label>

        <br/>

            <asp:Label ID="lblbitis" runat="server" Text='<%#Eval("baslangic")%>'></asp:Label>

        <br/>

            <asp:LinkButton ID="linkbutton1" runat="server" CommandName="vcalendar">Takvime Ekle</asp:LinkButton>

        <br />

        </ItemTemplate>

        <SeparatorTemplate>

        <br />

        ________________________________

        <br />

        </SeparatorTemplate>

        </asp:Repeater>

Tasarımdan sonra asıl kod sayfamız aşağıdaki gibi olacak:

protected void Page_Load(object sender, EventArgs e)

    {

        if (!Page.IsPostBack)

        {

            SqlConnection con = new SqlConnection(@"Data Source=HILMIPC\HILMI;Initial Catalog=vcalendar;Integrated Security=True");

            SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM[etkinlik]", con);

            DataSet ds = new DataSet();

            da.Fill(ds);

          

            Repeater1.DataBind();

        }

    }

 

    protected void onClick(object source,RepeaterCommandEventArgs e)

    {

        if (e.CommandName == "vcalendar")

        {

            string baslik = ((Label)e.Item.FindControl("lblbaslik")).Text;

            string ozet = ((Label)e.Item.FindControl("lblozet")).Text;

            string baslangic = Convert.ToDateTime(((Label)e.Item.FindControl("lblbaslangic")).Text).ToString("yyyyMMddTHH0000");

            string bitis = Convert.ToDateTime(((Label)e.Item.FindControl("lblbitis")).Text).ToString("yyyyMMddTHH0000");

            string UID = Guid.NewGuid().ToString().Replace("-", "");

 

            StringBuilder sb = new StringBuilder();

            sb.Append("BEGIN:VCALENDAR\n");

            sb.Append("BEGIN:VEVENT\n");

            sb.Append("DTSTART:" + baslangic + "\n");

            sb.Append("DTEND:" + bitis + "\n");

            sb.Append("UID:" + UID + "\n");

            sb.Append("DESCRIPTION:" + ozet + "\n");

            sb.Append("SUMMARY:" + baslik + "\n");

            sb.Append("END:VEVENT" + "\n");

            sb.Append("END:VCALENDAR");

            Response.ContentType = "text/x-vCalendar";

            Response.AddHeader("Dosya","filename=" + UID + ".vcs;");

            Response.Write(sb.ToString());

            Response.End();

        }

    }

Bu sayede Outlook randevusu ayarlamış olduk. Kodu biraz incelemenizi  tavsiye ederim.

İyi Çalışmalar!

5月22日

Photosynth ve CSI:NY

CSI:NY dizisi içerisinde Microsoft Live Labs ürünlerinden olan Photosynth ürünü kullanılarak bir okul cinayetinin suçlusu dedektifler tarafından arandı. Dizi içerisinde geçen sahnede öğrencilerin parti esnasında fotoğraf makineleri ve cep telefonlarıyla çekmiş oldukları tüm fotoğraflar Photosynth sayesinde biraraya getirildi ve böylelikle muhtemel suçlunun bulunması sağlanmış oldu.

CSI yönetmenleri geçtiğimiz yaz Microsoft’u ziyaret ettiklerinde onlara Photosynth demosu yapılmıştı ve ekip bunu dizi içerisinde kullanmak istediklerini belirtmişlerdi, bunun üzerine Microsoft Live Labs takımı ile yakın çalışarak yan tarafta izleyebileceğiniz bölüm içerisindeki sahne ortaya çıktı. Photosynth’in gücünü gösteren çok güzel bir örnek oldu, bildiğiniz gibi biz de Microsoft Türkiye olarak bugüne kadar Sultanahmet Meydanı ve Anıtkabir’in binlerce fotoğrafını Photosyth kullarak biraraya getirmiştik. Gençsen Geleceksin seminer dizisinde de bunları paylaşmıştık.

Photosynth i denemek ve incelemek için tıklayınız: http://labs.live.com/photosynth/

5月21日

Imagine Cup 09 Temasını Seçin!

Bir Imagine Cup yılını da en azından Türkiye olarak geride bıraktık. Finalistimiz dünya finali için hazırlanırken dünyada gelecek senenin Imagine Cup teması oluşturma çabaları başladı. Aşağıdaki linke tıklayıp siz de yeni temaları görünteleyip seçim aşamasında oy kullanabilirsiniz.

http://www.mondorobot.com/microsoft/IC2009

Herkese iyi çalışmalar!

5月16日

SOA Semineri

Yazılım dünyasının popüler ve önemli kavramları hakkında, örneklerle bilgi edinin.
MSAkademik lider editörleri'nden Pamir Erdem, "Katmanlı Mimari ve SOA" ana başlığı altında, aşağıdaki konuları kapsayacak bir seminer gerçekleştirecek.

SOA
- Service definition
- Explictness
- Coupling
- Configuration
- RPC/XML, SOAP/XML, Remoting, Web Services , COM, DCOM, COM+

Katmanlı Mimari
- Database mimarisi
- Database tasarımı
- Design Patterns
- ADO.NET
- Katmanlar
- NHibernate

Tarih / Saat : 24 Mayıs 2008, Saat 13:00
Yer : Microsoft İstanbul Ofisi, Marmara Salonu
Seminere katılmak için tıklayın: http://www.msakademik.net/seminer_kayit.aspx?etkinlik_id=241
5月15日

Not So Naive Algorithm

Diskten bir metin arama algoritması olan Not So Naive Algoritmasını inceleyeceğim bugün. Gerçek hayattaki performansında hemen tüm metin arama algoritmaları genellikle diskten okuma işlemlerinde pek farklı değildir. Ancak Not So Naive Algoritması kodlama açısından en uygulanabilir algoritmadır.

C Kodu 

void NSN(char *x, int m, char *y, int n)

{

   /* Burada x aranacak metin; y metim yığını; m metin yığınının uzunluğu ve n ise aranacak metinin uzunluğudur. */       

   int j, k, ell;

 

   /* Önişlem */

   if (x[0] == x[1]) {

      k = 2;

      ell = 1;

   }

   else {

      k = 1;

      ell = 2;

   }

 

   /* Arama */

   j = 0;

   while (j <= n - m)

      if (x[1] != y[j + 1])

         j += k;

      else {

         if (memcmp(x + 2, y + j + 2, m - 2) == 0 &&

             x[0] == y[j])

            OUTPUT(j);

         j += ell;

      }

}

Buradaki memcmp komutunu kısaca açıklayalım:

MEMCMP :
İşlevi : n baytlık bir uzunluk için s1 ve s2 stringini karşılaştırır.Bu fonksiyon baytları unsigned char olarak karşılaştırır. Bu yüzden
Memcmp(“\xFF”,”\x7F”,1);
İfadesi pozitif bir değer gönderir.
Formatı : int memcmp (const void *s1, const void *s2, size_t n);

Herkese İyi Çalışmalar

5月14日

PopFly GameCreator

Artık aramızda popfly ı bilmeyen yok. Ancak Alfa aşamasında olan Game kısmını tanıtmak istiyorum. popfly.com a girdiğinizde Create Game butonuna tıkladığınızda küçük çaplı oyunlar yapabilmeye başlıyoruz. Tabiki popfly ın mantığı ile paralel şekilde. Yani tek bir satır kod yazmadan:).
Sıkıldığınızda mash-uplar veya web sayfalar oluşturmaya devam edebilirsiniz.
Şimdi live hesabınızla girip deneyin.
5月13日

Voice Over Internet Protocol SON

Voice Over IP ile İlgili Tanımlar

VoIP: İnternet Protokolü üzerinden ses aktarımı ( IP Telefonculuğu, Internet Telefonculuğu ve Dijital Telefon olarak adlandırılır), sesli görüşmelerin İnternet veya diğer IP tabanlı ağ üzerinden yapılmasıdır.

SIP: Oturum Başlatma Protokolü - IETF MMUSIC Çalışan Grup tarafından geliştirilmiştir ve video, ses, anında mesajlaşma, online oyunlar ve sanal gerçeklik gibi çoklu ortamı kapsayan bir etkileşimli kullanıcı oturumunu başlatma, değiştirme ve son vermek için önerilen standarttır.

PSTN: Kullanıcı anahtarlamalı telefon şebekesi - İnternetin dünya üzerindeki kullanıcı IP tabanlı paket anahtarlamalı şebekelerinin yoğunlaşmış haline çok benzer şekilde, dünya üzerindeki kullanıcı çevrim-anahtarlı telefon şebekelerinin yoğunlaşmış halidir.

ISDN: Entegre Hizmetler Dijital Şebeke- ses ve verinin sıradan bakır telefon kabloları üzerinden analog sistemlerden daha iyi kalitede ve daha hızlı dijital (analog'un tersine) aktarımını sağlayacak şekilde tasarlanmış bir çevrim anahtarlı telefon şebeke sistemidir.

PBX: Özel Şube Santrali (Özel İşletme Santrali olarakta bilinir) - Genel bir taşıyıcı ya da telefon firmasının sahip olduğu santrale karşılık özel kurumların kendilerinin sahip olduğu bir telefon santralidir.

IVR: Telefonculukta, Etkileşimli Sesli Yanıt - genellikle telefonla arama yapan bir kişinin sesli menüden bir seçim yapmasına imkan veren ve aksi takdirde bir bilgisayar sistemi arayüzü ile karşılaşılan bilgisayarlaştırılmış bir sistemdir.

DID: Direkt Dahili Arama (Avrupa'da DDI olarak da bilinir) telefon şirketlerinin (telco), müşterilerinin PBX sistemleri ile kullanılmak üzere onların PBX'ine bağlı bir dizi numara tahsis etme yoluyla sundukları bir özelliktir.

RFC: Yorumlar Talebi (RFCs için Yorumlar Talepleri) İnternet ve Unix toplumlarındaki ticari yazılımlar ve bedava yazılımlar tarafından yaygın olarak takip edilen bir dizi numaralı Internet bilgilendirici belge ve standartlarından birisidir.

Son Söz

Voice Over Internet Protocol kısaca VoIp, internette veya da diğer packet switch ağlarında ses iletiminin optimize edilerek sağlandığı bir protokoldür diye tanımlamıştık. Ancak gördük bu tanım altında kısa bir sürede birçok geliştirilme yapılmış ve yapılmaya devam ediyor.

VoIP uygulama alanları hem eğitim hem de diğer sektörlerde hızlıca artmaktadır. VoIP servislerine duyulan bu aşırı istek de maliyetlerin azalmasına sebep olmuştur. IP tabanlı servisler günümüzde yönetim ve öğrenme açısında da potansiyel bir güç olmuştur.

Ayrıca ileride medya, veri, vidyo ve ses üzerinde de birleştirme olacaktır. Bu seviyedeki bir birleştirmeyi sağlayabilmek için beraber çalışabilirlik ve standartlar üzerinde çalışma kritik olacaktır.

Diğer bir önemli nokta ise kablosuz VoIP alanındaki gelişmeler olacaktır. Bu sayede her bir kişi uzaktan istediği yerden bilgisayarlarını kullanarak istedikleri verilere ulaşabilecekler. Belki de ilerde multiplayer oyun oynamak gibi bir şey olacak VoIP.

Ancak hala daha geliştirilmeyi bekleyen birçok VoIP konusu hali hazırda bulunmaktadır. Bunlar IP tabanlı video konferanslarda VoIP entegrasyonu, adresleme, aktif dizin desteği vb… konulardır.

Kısaca VoIP teknoloji dünyamızda aslında bir kilometre taşıdır. Birçok şeyi değiştirmiş bizlere çok büyük faydalar sağlamıştır ve de sağlamaya devam edecektir.

(SON)

5月11日

Teşekkürler GALATASARAY

Eğer bir işi kalbinizi ortaya koyarak yapıyorsanız o işte başarılı oluyorsunuz. 5 maç seyircisiz oynadı Cim Bom, teknik direktör Kalli bir ara hasta oldu, bir ara ne olduğu belli olmadı ama saha kenarında nadir vardı. 4 oyuncusu genç ve bir önceki sezon küme düşen takımdan gelen oyunculardı. Emre Ankaragücü'nden gelen bir oyuncu. Servet Sivas'tan. Orkun Erciyes'ten. Hakan Manisa'dan. Volkan Antalyaspor'dan. Serkan ve Barış Almanyada 3.lige düşen Essen takımından. Bunların yanında tecrübeli Kral Şükür, Ümit Karan, Hasan Şaş, Ayhan ve Süper Yıldız ARDA ve Lincoln ile CİMBOM tek yürek oldu. Her maçta sahada on bir altın ASLAN yürek vardı. Paralarla değil her maçtaki oyununuzla maçları kazanabiliyorsunuz. 
Sonuçta yeni bir tarih yazdı GALATASARAY.

Her birine teker teker TEŞEKKÜRLER!
ŞAMPİYON GALATASARAY!!!
5月10日

Imagine Cup Turkey Final

Bir senedir beklenen an geldi ve geçti. Finalist The EFS Team grubu arkadaşlarımın hepsine tekrardan çok teşekkür ediyorum.
Cuma günü tüm finalist grupların sunumlarını izleme şansına sahip oldum. Innovatif düşünce olarak imagine kelimesinin karşılığını aslında The EFS Team çok iyi vermişti. Ancak Jürilerin değerlendirmesi sonucunda ise Türkiye klasmanı şöyle oluştu:
1-L'orientalis - Kocaeli Üniversitesi
2-Miracle - Kayseri Erciyes Üniversitesi
3-Rota - Çanakkale Üniversitesi
Tüm grupları tebrik eder Ms Yaz Okulu 2007 den arkaşım Semih Balkancı'nın grubu L'orientalis' e de Paris'te başarılar dilerim.
5月8日

Voice Over Internet Protocol - 6

‘IP telefonları üzerinden ses ve verinin birleştirilmesi ile VoIP 2010’ a kadar tüm büyük kuruluşları %95 ten fazlasında kullanılıyor olacak. Birleştirme ile iş uygulamalarına imkan tanıyan iletişim sınıfı ile ek özellikler sunulacak ve telekomünikasyon endüstrisi kuruluşundan itibaren ki en önemli adımı atacak’

Gartner 12.Mayıs.2005 

·         Ağ Birleştirme: Şu ana kadar özel ya da genel bir çok kuruluş IP teknolojileri geliştirmeye başladı. Çünkü inanıyorlar ki IP tabanlı sistemler arttırılmış güvenilirlik ve hata toleransı sunuyorlar. Tahminlere göre %50 den fazla Avrupalı yatırımcıları VoIP, IP, PBX leri üzerinde ya önderlik ya da geliştirme yapıyor. Yakın zamanda da telefon görüşmeleri %75 oranda IP ağları üzerinden yapılacak. Bu aşama birleştirilmiş ağ oluşturma konusunda ilk adımdır. Tek bir ağ farklı ses ve veri ağlarını yerleştirir. Bu da bazı yararlar sağlar. Örneğin, güvenilirlik artmaktadır, toplam sahiplik azalmaktadır ve taşınabilirlik gibi ek özellikler gelmektedir(Önceden anlattığım Find Me,Follow Me özellikleri gibi).

·         Uygulama Birleştirme: Kurumlar ağ birleştirmeyi maliyet ve bakımı azaltmak için ve ikinci birleştirme aşamasına temel olması için kullanmaktadır. Bu aşamada birbirinden farklı uygulamaların birleşimini göreceğiz. Örneğin, ses, e-mail, anlık mesajlaşma ve video gibi. IP kullanımı ve veri ve ses uygulamalarının entegrasyonu VoIP ye geleneksel PBX sistemlerini geliştirmek için yeni öneriler sunmasını sağladı. Özellikle 2009 itibariyle 1 milyar anlık mesajlaşma hesabı olan kişi olacağı düşünülürse uygulama birleştirmenin önemi anlaşılmış olur sanırım.

·         Kablosuz VoIP: Son yıllarda kablosuz VoIP teknolojisi gelişimi arttı. Gelişimin temel odak merkezi ise IEEE 802.11 kablosuz standardı olan WiFi oldu. Ayrıca IP bazlı telefonlaşma başka kablosuz sistemleri üzerinde de mümkündür(802.16 WiMax gibi). Bu özelliğin faydası ise şu oldu: Cep telefonları ile pahalı konuşmalar yapmak yerine daha maliyetli olan internet tabanlı aramalar yapabilmek. Bir VoIP kullanıcısı ağa login olduğunda kendi masasındaki telefon gibi elindeki telefonu kullanabilmektedir. Yeter ki ağa bağlı olsun. Önceden de bahsettiğim gibi bu telefonlara SoftPhone diyoruz. Laptopumuza yüklediğimizde kablosuz ağ noktası olarak kullanbiliyor oluyoruz ve tüm konuşmalarımızı en düşük maliyette yapıyoruz.  Ancak Voice Over WiFi üzerinde hala da önemli üzerine uğraşılan zorluklar da yok değil. Güvenlik, WiFi aletlerindeki batarya kullanım süresi ve arama kalitesi. Kablosuz ağlar bant genişliğini WLAN erişim noktalarına en yakın cihaza göre ayarlar. Bu da ses kalite iletiminde sorunlar ortaya çıkarmaktadır. Gerçi bazı üreticiler(Meru Networks gibi) erişim noktalarını ses kalitesine uygun bant genişliği olacak şekilde ayarlamaktadır.

(devam edecek)

5月7日

Voice Over Internet Protocol -5

Daha önce de bahsettiğim gibi PSTN telefon mimarisi 100 yıllık bir maziye dayalıdır ve ses iletiminde oldukça güvenilir bir altyapı oluşturmuştur. Aksine VoIP ise göreceli olarak daha az bir maziye sahip olan bir mimaridir ve daha az güvenilir bir sistemdir. Bu da gösteriyor ki daha hala geliştirilmesi gereken alanlar VoIP adı altında mevcuttur. Bu aşamada altyapıdaki protokolleri, VoIP ile kullanılan teknolojileri inceleyeceğiz ve karşımıza çıkacak sorunları tartışacağız.

Protokoller

                Diğer iletişim sistemlerinde de genelde olduğu gibi VoIP iki parça ile yapılanmıştır. Taşıyıcı(ağ üzerinden gönderilen gerçek ses) ve İşaretçi(Diğer arama elementlerini kontrol etmek için gerekli ek mesajlar. Aranan numaranın rakamları gibi). Bu iki sistem de değişik standart ve protokolleri kullanabilir.

VoIP Protokolü

Katman

Genel İnternet Protokolü

OSI Modeli

VoIP Uygulaması, SIP

7

HTTP

Uygulama

H.323

6

 

Sunum

RTP, RTCP

5

SSL

Oturum

UDP

4

TCP

Taşıma

IP

3

IP

Data

2

Ethernet

Veri

Fiziksel

1

100-Base T

Fiziksel

VoIP Protokol Katmanları ve OSI Modelleri ile Karşılaştırılması

VoIP nin temeli tüm internet uygulamalarında olduğu gibi tabloda da gösterildiği şekilde internetin katmanlı yapısına dayanmaktadır. Bu tablo katmanlar arasında uygulama üretimi ve iletiminin internet alt yapısını kullanarak nasıl sağlanacağını gösterir. VoIP nin alt katmanları internet alt yapısını kullanan diğer uygulamalarla ortak görevlere sahiptir. Web uygulamaları gibi. Son kullanıcıya web ve VoIP uygulamaları farklı hizmetler verse de alt katmanları aynıdır. Yani aslında alt katmanlar veri iletimine; üst katmanlar ise iletişim kontrol mekanizmasına odaklanmıştır diyebiliriz. Tabloda VoIP nin Ethernet ve WiFi teknolojileri temelinde Web ve FTP gibi internet tabanlı uygulamalarda alt katmanları nasıl paylaştığını göstermektedir.

Ağ katmanı da yine diğer internet uygulamalarında olduğu gibi, İnternet Protokolü(IP) tarafından ele alınır. Veri paketlerinin(datagram) temel olarak iletimini yönetir. Ancak VoIP ağ katmanı genel protokol olan TCP(Transmission Control Protocol) tarafından değil de UDP(User Datagram Protocol) ve RTP(Real-Time Transport Protocol ) kullanarak tasarlanmıştır.

Yüksek katmanlar(oturum, sunum ve uygulama) ise iletişim sağlanmasında işaretçi mekanizmasını yönetirler. Yani iki son nokta arasında iletişimin kontrolünü sağlarlar. İki çeşit işaretleme standardı vardır: H323 ve SIP(Session Initiation Protocol)

·         H323: Bu protokol 1996 yılında Uluslararası İletişim Birlik’i tarafından onaylandı. Ses, video ve veri konferansı konularında paket bazlı ağlarda iyi bir iş yapmaktadır. PSTN işaretlemesi ile yapılmış bir çok mesaj sıralama sistemlerini aynen kullanır. Bu yüzden PSTN sistemleri ile geniş bir işlevsellik alanı vardır. Ayrıca Uluslararası İletişim Birlik’i standartlarında OpenH323 adında tamamen özel ve işlevselselliği hedefleyen açık kaynak uygulaması vardır.

·         SIP: SIP ise metin bazlı, Internet Engineering Task Force(IETF) tarafından onaylanmış IP üzerinden telefon aramaları için açık kontrol bir protokoldür. H323 ten geç kurulmuş olmasına rağmen son yıllarda iyi bir trend yakalamıştır. SIP, H323 ile aslında aynı görevi yapar ancak tek farkı internet için özel tasarlanmış olmasıdır. H323 e göre daha modüler bir yapısı vardır. Daha çok HTTP Web protokolüne benzer ve internet üzerinde oturum oluşturur. SIP tabanlı oturum içerikleri sade telefon görüşmesinden, çok parçalı-karışık medya oturumlarına kadar farklıdır. Yani web tabanlı uygulamalar ve telefon uygulamalarını birleştirerek e-mail, mesajlaşma ve video çekmek gibi servislere de erişebilme imkanı sağlar.

Kodekler

IP temelli bir ağda ses iletiminden daha önemli nokta bir insan sesinin dijital ve kodlanmış forma çevirtilmesidir. Belli miktarda ses sıkıştırması müteakip iletimlerde bant genişliğini sabit tutmak için mutlaka yapılacaktır. Ayrıca sesin alıcı tarafında da analog forma çevirilmesi gerekmektedir. Bunun için G-Serileri olarak da bilinen ITU(International Telecommunication Union) tarafından standartlaştırılmış bir miktar ses kodlama algoritmaları kullanılır. Bunlardan en çok bilinenleri: G.711 ki PSTN ağlarında geniş bir kullanım yelpazesine sahiptir ve G.729dur. Bu kodekler algoritma içerisinde analog sesin örneğini alma ve sıkıştırma karışıklığı ayarlarına göre birbirinden ayrılırlar. Bu sayede hangi algoritma için ne kadar bant genişliği gereklidir bunu görebilmekteyiz. Örneğin G.711, G.729 dan daha yüksek bir bant genişliği ister. Ve sıkıştırma türleri ile bant genişliği arasında takas tipinde bir sistem vardır. Yani ne kadar iyi sıkıştırma kullanırsanız o kadar fazla bant genişliği istemek zorundasınız.

VoIP Uygulamasında Dikkat Edilmesi Gerekenler

                Daha önce de belirttiğim gibi geleneksel PSTN telefon mimarisi 100 yılı aşkın süre önce bulundu ve geliştirilerek günümüze kadar %100 güvenilir bir yapı hazırlayarak geldi. Artık telefon konuşmalarında “Ankara hattan çık!”cümlesini kullanmıyoruz. PSTN kendi güç kaynağına sahip olduğundan elektrik kesilse bile telefonumuz hala çalışabilir durumda oluyor. Konumuza dönecek olursak VoIP ise tabiî ki böyle bir alt yapıya sahip değildir. Bu durumda VoIP nin daha az güvenli olduğu konular şunlardır:

·         Ses Kalitesi

·         Servis Güvenilirliği

·         999 Servislerine Ulaşım

·         Dizin ve Adresleme

(devam edecek)

5月6日

mekanist.net

Sanal alemdeki sosyal iletişim sitelerinin aksine kullanıcıların birbirlerini çevrelerindeki işletmeler hakkında bilgilendirmelerini amaçlayan Mekanist.Net yayın hayatına başladı.

Mekanist.Net “Sosyal Yaşamın Mobil Rehberi” sloganıyla yola çıkan ekip, şimdilik İstanbul ile sınırlı olan ve bünyesinde farklı kategorilerde yaklaşık 4000 adet mekan bulunduran kullanıcı tabanlı paylaşım platformunu hayata geçirmiş bulunuyor.

Alışveriş , Restoran , Bar&Gece Klübü , Cafe , Güzellik Merkezleri , Turizm , Sağlık ve Eğitim gibi oldukça geniş bir kategori yelpazesi sunan Mekanist platformu ana kategorilerin dışında kullanıcıların hizmetine Akdeniz Mutfağı , Uzakdoğu Mutfağı , Vejeteryan veya Ev Yemekleri gibi  daha özelleşmiş içerikleri de sunmakta.

Kitleler arası paylaşımı arttırarak kullanıcıların birbirlerine tecrübelerini ve tavsiyelerini aktarmalarına yardımcı olabilecek bir platform olarak tasarlanan Mekanist.Net bu alanda söz konusu olan ciddi bir ihtiyacı kapatma yolunda ilerliyor.

Mekanist bünyesinde şuan itibariyle tam olarak 12 adet Ana Kategori ve bunların altında onlarca özelleşmiş kategoriler yer almakta.Yapılan şey tamamiyle sanal ortamdaki verileri belli bir düzen içinde saklayıp  bunu insanların hizmetine sunmak.Şuan sadece İstanbul ile sınırlı hizmet veren Mekanist.Net ‘ e internet ortamından www.mekanist.net adresinden ulaşabilirsiniz.

5月5日

En iyi bilgisayar mühendisliği bölümüne sahip üniversiteler

IT sektörüne hizmet veren bir danışmanlık firmasının IT firmalarında çalışan yöneticiler ve karar verici konumunda bulunan kişiler arasında yaptığı ankete göre üniversiteler arasında bir sıralama yapıldı. Yapılan ankette yöneticilere çalışan personelin çalışkanlığından üretkenliğine, takım içinde çatışma sıklıklarından bireysel yeteneklere, okuldan yeni mezun olanların bilgilerinden çabuk öğrenmeye kadar 48 konuda çalışan bilgisayar mühendislerini üniversitelerine göre değerlendirmeleri söylenmiş. Yöneticilerin yaptığı seçimlere göre üniversitelerin bilgisayar mühendisliği sıralamasında ilk 10 şöyle:

1. İstanbul Teknik Üniversitesi
2. Yıldız Teknik Üniversitesi
3. İstanbul Üniversitesi
4. Marmara Üniversitesi
5. Ege Üniversitesi
6. Boğaziçi Üniversitesi
7. Bilkent Üniversitesi
8. Galatasaray Üniversitesi
9. Hacettepe Üniversitesi
10. Orta Doğu Teknik Üniversitesi
 
Yakın zamanda listenin en başında İstanbul Üniversitesi ni görebiliriz. Bölümde çok büyük bir değişim yaşandı ve hala da yaşanıyor. Bunu başarmak için hepimiz çok çalışacağız! Görünen köy kılavuz istemeyeceğinden eminim ki bu pek de zor olmayacak!!!
5月4日

Asp.net ile absolute positioning örneği

Asp.net ile İstediğimiz bir koordinata bir kontrolü yerleştirebiliriz. Bunun için de pek yorulmamıza gerek yokJ :

Textbox1.Style.Add("position", "absolute");
Textbox1.Style.Add("left","100px");
Textbox1.Style.Add("top", “100px");

Örnekler çoğaltılabilirJ.

Herkese İyi Çalışmalar!