<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">
  <channel>
    <title>Gökhan ÖZİÇ</title>
    <description>// Bilgi Paylaştıkça Artar...</description>
    <link>http://www.gokhanozic.com/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.4.5.0</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://www.gokhanozic.com/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Gökhan ÖZİÇ</dc:creator>
    <dc:title>Gökhan ÖZİÇ</dc:title>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/gokhanozic" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>SQL Server View Kullanımı</title>
      <description>&lt;p&gt;Merhaba;&lt;/p&gt;  &lt;p&gt;Bu yazımda sizlere view oluşturmayı, neden gereksinim duyulabileceğini ve kullanımını anlatmaya çalışacağım. Lafı fazla uzatmadan başlıyayım.&lt;/p&gt;  &lt;p&gt;SQL Server View yapısı sanal tablo olarak adlandırılabilir. Bu tablo aslında veritabanınızda varolmuyor; ancak gerçek bir tablo gibi sorgulanabiliyor. Böyle bir yapıya da bazen ihtiyaç duyulabiliyor. Örneğin, birden fazla tablo barındıran ilişkisel bir veritabanı dizaynı yaptınız. Bu ilişkisel veriabanında, iki ayrı tabloda olan verileri birleştirerek (inner ya da outer join yoluyla) sorgulmak istiyorsunuz. Ama bu birleştirmeyi projenizde sıklıkla kullanacaksınız. Her seferinde inner/outer join yapmak yerine bu sorguyu sanal olarak sorgulayabileceğiniz bir yapı olsa fena olmaz mıydı? İşte tam burada View yapısı devreye giriyor. Şimdi örnek üzerinden devam edelim. İlişkisel ve üç tablolu bir veritabanınız olduğunu farzedelim.&lt;/p&gt;  &lt;p&gt;&lt;img title="Çalışanlar Tablosu" alt="" src="/Images/employee.jpg" /&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;img title="Departman Tablosu" alt="" src="/Images/department.jpg" /&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;img title="Prim Tablosu" alt="" src="/Images/bonus.jpg" /&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;img title="Database Diagram" alt="" src="/Images/database.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Tablolar yukarıda imagelerde görüldüğü gibi olsun. Bunları oluşturmak için gerekli olan t-sql kodları ise: &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;CREATE TABLE Department(    &lt;br /&gt;DepartmentID INT PRIMARY KEY IDENTITY(1, 1) NOT NULL,     &lt;br /&gt;DepartmentName CHAR(20) NOT NULL)&lt;/p&gt;  &lt;p&gt;CREATE TABLE Employee(    &lt;br /&gt;EmployeeID INT PRIMARY KEY IDENTITY(1, 1) NOT NULL,     &lt;br /&gt;Name CHAR(20) NOT NULL,     &lt;br /&gt;Surname CHAR(20) NOT NULL,     &lt;br /&gt;DepartmantID INT FOREIGN KEY REFERENCES Department NOT NULL)&lt;/p&gt;  &lt;p&gt;CREATE TABLE Bonus(    &lt;br /&gt;ID INT PRIMARY KEY IDENTITY(1, 1) NOT NULL,     &lt;br /&gt;EmployeeID INT FOREIGN KEY REFERENCES Employee NOT NULL,     &lt;br /&gt;BonusAmount MONEY NOT NULL)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Diyelim ki çalışanlarınızın departmanlarıyla birlikte aldıkları toplam primleri de tek bir tabloda görmek ve üzerinde sorgu yapmak istiyorsunuz. Bu sorguyu da sürekli kullanacaksınız. O zaman bir View yapısına ihtiyacımız var. İlk önce tablolarımıza gerçek olmayan birkaç kayıt girelim.&lt;/p&gt;  &lt;p&gt;&lt;img title="Departman Kayıtları" alt="" src="/Images/department_records.jpg" /&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;img title="Çalışan Kayıtları" alt="" src="/Images/employee_records.jpg" /&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;img title="Prim Kayıtları" alt="" src="/Images/bonus_records.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Şimdi gelelim View yapımıza. View yapısını oluşturmak için gereken t-sql kodu:&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;CREATE VIEW TotalBonus AS SELECT e.EmployeeID, e.Name, e.Surname, e.DepartmentID, d.DepartmentName, SUM(b.BonusAmount) AS TotalBonus FROM (Employee e INNER JOIN Department d ON e.DepartmentID = d.DepartmentID) INNER JOIN Bonus b ON e.EmployeeID = b.EmployeeID GROUP BY e.EmployeeID, e.Name, e.Surname, e.DepartmentID, d.DepartmentName&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Artık tüm çalışanlarımızın aldığı toplam primleri ve hangi departmana bağlı olduğunu aynı anda görebileceğimiz sanal bir tablomuz var. &lt;/p&gt;  &lt;p&gt;&lt;img title="View Görünümü" alt="" src="/Images/view.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Artık View yapımızı aynen fiziksel varolan bir tablo gibi sorgulayabiliriz. Örneğin; “SELECT * FROM TotalBonus WHERE EmployeeID = 2” diye bir sorgulama yaptığınızda, alacağınız output;&lt;/p&gt;  &lt;p&gt;&lt;img title="Sorgu Sonucu" alt="" src="/Images/view_query.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bir başka yazıda daha görüşmek üzere.&lt;/p&gt;</description>
      <link>http://www.gokhanozic.com/post/2009/11/05/SQL-Server-View-Kullanimi.aspx</link>
      <author>gokhanozic.nospam@nospam.gmail.com (Gökhan ÖZİÇ)</author>
      <comments>http://www.gokhanozic.com/post/2009/11/05/SQL-Server-View-Kullanimi.aspx#comment</comments>
      <guid>http://www.gokhanozic.com/post.aspx?id=b09ec43d-b70e-4875-a215-388d4287b961</guid>
      <pubDate>Thu, 05 Nov 2009 07:09:00 -0400</pubDate>
      <category>MSSQL</category>
      <dc:publisher>Gökhan ÖZİÇ</dc:publisher>
      <pingback:server>http://www.gokhanozic.com/pingback.axd</pingback:server>
      <pingback:target>http://www.gokhanozic.com/post.aspx?id=b09ec43d-b70e-4875-a215-388d4287b961</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.gokhanozic.com/trackback.axd?id=b09ec43d-b70e-4875-a215-388d4287b961</trackback:ping>
      <wfw:comment>http://www.gokhanozic.com/post/2009/11/05/SQL-Server-View-Kullanimi.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.gokhanozic.com/syndication.axd?post=b09ec43d-b70e-4875-a215-388d4287b961</wfw:commentRss>
    </item>
    <item>
      <title>MCP:.NET Framework 3.5, ASP.NET Application Development Ünvanı Sahibi Oldum</title>
      <description>&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Merhaba;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Microsoft DreamSpark programı, 30 Haziran 2009 tarihine kadar DreamSpark keyleri ile elde edilebilen Voucher Number’lar ile bir kereye mahsus herhangi bir Microsoft sertifika sınavına bedava girme hakkı vermişti. Bende bu fırsattan yararlandım ve bugün BilgeAdam’da girdiğim 070-562 Microsoft .NET Framework 3.5, ASP.NET Application Development sertifika sınavını verip MCP ünvanı sahibi oldum. Aslında potansiyel bir MCTS ünvanı adayı da oldum denebilir. Hep girmek istediğim bir sertifika sınavına DreamSpark programı sayesinde girebildim. Sıradaki hedefim ise MCTS ünvanını da alabilmek için 070-536 sınavını da vermek.&lt;/p&gt;  &lt;p&gt;&lt;img src="/Images/logo_mcp.jpg" title="MCP" alt="" /&gt;&lt;/p&gt;</description>
      <link>http://www.gokhanozic.com/post/2009/06/29/MCPASPNET-35-Unvani-Sahibi-Oldum.aspx</link>
      <author>gokhanozic.nospam@nospam.gmail.com (Gökhan ÖZİÇ)</author>
      <comments>http://www.gokhanozic.com/post/2009/06/29/MCPASPNET-35-Unvani-Sahibi-Oldum.aspx#comment</comments>
      <guid>http://www.gokhanozic.com/post.aspx?id=96914276-5cdf-432a-9c0a-fae92fd6e4d0</guid>
      <pubDate>Mon, 29 Jun 2009 19:59:00 -0400</pubDate>
      <category>ASP.NET</category>
      <category>C#</category>
      <category>Kuruluşlar</category>
      <category>MSSQL</category>
      <category>Web Service</category>
      <category>XML</category>
      <dc:publisher>Gökhan ÖZİÇ</dc:publisher>
      <pingback:server>http://www.gokhanozic.com/pingback.axd</pingback:server>
      <pingback:target>http://www.gokhanozic.com/post.aspx?id=96914276-5cdf-432a-9c0a-fae92fd6e4d0</pingback:target>
      <slash:comments>7</slash:comments>
      <trackback:ping>http://www.gokhanozic.com/trackback.axd?id=96914276-5cdf-432a-9c0a-fae92fd6e4d0</trackback:ping>
      <wfw:comment>http://www.gokhanozic.com/post/2009/06/29/MCPASPNET-35-Unvani-Sahibi-Oldum.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.gokhanozic.com/syndication.axd?post=96914276-5cdf-432a-9c0a-fae92fd6e4d0</wfw:commentRss>
    </item>
    <item>
      <title>Haziran Ayında 12 Tane Silverlight 3.0 Online Semineri</title>
      <description>&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Haziran ayı, tatile gidemeyen ya da henüz gitmeyen, ve kendini geliştirmek isteyen yazılımcı ya da yazılımcı adayları için güzel bir fırsata dönüşüyor. Haziran ayı boyunca Silverlight hakkında Daron Yöndem tarafından 12 tane online Silverlight 3.0 semineri verilecek. Seminerlerle ilgili detaylar şu şekilde:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Silverlight'a Giriş - 8 Haziran, 21.00&lt;/strong&gt;    &lt;br /&gt;Bu webinerde Silverlight nedir sorusuna cevap verirken mimari yapısına bakarak Silverlight dünyasına bir giriş yapacağız. Silverlgiht projeleri nasıl oluşturulur,nasıl yayınlanır, XAML nedir? ve &amp;quot;Neden Silverlight&amp;quot; gibi soruların cevapları da bu webinerde.    &lt;br /&gt;&lt;a href="https://www.livemeeting.com/cc/usergroups/join?id=GFRH8M&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=GFRH8M&amp;amp;role=attend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Silverlight ile Animasyonlar - 9 Haziran, 21.00&lt;/strong&gt;    &lt;br /&gt;Animasyon mantığını kavrayacağımız bu webinerde ilk olarak Expression Blend arayüzüne bakarak animasyonlarının Blend tarafında nasıl oluşturulabildiğine göz atacağız. Sonra bu animasyonların programatik olarak yaratılmasını ve kontrollerini inceleyerek Silverlight tarafında bir animasyon uzmanı olacağız.    &lt;br /&gt;&lt;a href="https://www.livemeeting.com/cc/usergroups/join?id=6GRJPM&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=6GRJPM&amp;amp;role=attend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Layout Kontrolleri ve Dinamik Arayüzler, 10 Haziran, 21.00&lt;/strong&gt;    &lt;br /&gt;Silverlight içerisinde istediğiniz görsel arayüzü oluşturabilmek için arayüz oluşturma esnasından kullanabileceğiniz Layout kontrollerini çok iyi tanımanız gerekir. Diğer yandan dinamik olarak tüm nesneleri yaratbilmeniz, bu nesnelerin birbiri ile konuşabilmesi ve projenizi doğru biçimde UserControl yapıları ile şekillendirmeniz de şart. İşte bu webinerde bu konulara değineceğiz.    &lt;br /&gt;&lt;a href="https://www.livemeeting.com/cc/usergroups/join?id=PBRM8P&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=PBRM8P&amp;amp;role=attend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Kontrol Şablonları ve VisualStateManager, 11 Haziran, 21.00&lt;/strong&gt;    &lt;br /&gt;Standart kontroller arasında sıkışmayın ve kontrollerinizi tamamen baştan yaratın. Hatta bu tasarımları tekrar ve tekrar kullanın. Bu webinerde silverlight kontrollerinin şablonlarının değiştirilmesini, Template Binding mekanizmasını ve visual State Manager'ın kullanımını Custom State yapıları ile beraber inceleyeceğiz.    &lt;br /&gt;&lt;a href="https://www.livemeeting.com/cc/usergroups/join?id=R8JSQH&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=R8JSQH&amp;amp;role=attend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Silverlight içerisinde Veri Erişimi, 12 Haziran, 21.00&lt;/strong&gt;    &lt;br /&gt;İster klasik web servisleri kullanın, ister WCF servisleri veya ister Socket üzerinden haberleşin hepsinin de kendine göre avantaj ve dezavantajları var. Gelin hepsinin de Silverlight tarafındaki detaylarını beraber inceleyip Silverlight uygulamalarımızı veri ile tanıştıralım.    &lt;br /&gt;&lt;a href="https://www.livemeeting.com/cc/usergroups/join?id=GH9T5W&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=GH9T5W&amp;amp;role=attend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Offline/Online/Desktop çalışma yapıları, 15 Haziran, 21.00&lt;/strong&gt;    &lt;br /&gt;Silverlight 3.0 ile beraber uygulamalarınızı masaüstüne birkaç tıklama ile taşıyabilirsiniz. Peki hem masaüstünde hem webde hem online hem offline çalışırken tüm bu sistemi, verilerinizi nasıl kontrol edeceksiniz. Bu webinerde farklı çalışma yapılarını göz atarken verilerimizi IsolatedStorage içerisinde saklayacağız.    &lt;br /&gt;&lt;a href="https://www.livemeeting.com/cc/usergroups/join?id=QTZH9R&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=QTZH9R&amp;amp;role=attend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;İş Uygulamaları Yaparken Silverlight, 16 Haziran, 21.00&lt;/strong&gt;    &lt;br /&gt;Animasyonlar hoştur, güzeldir ama herşey değildir. DataGrid'ler, Comboboxlar, Calendar'lar bir araya girdiğinde hepsinden bir iş uygulaması arayüzü yaratıp kontrol etmeye ne dersiniz? Bu webinerde hep beraber bir iş uygulamasının ekranını hazırlayacağız.    &lt;br /&gt;&lt;a href="https://www.livemeeting.com/cc/usergroups/join?id=BGN6BT&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=BGN6BT&amp;amp;role=attend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;RIA Services, 17 Haziran, 21.00&lt;/strong&gt;    &lt;br /&gt;Farklı bir bakış açısı ile Silverlight uygulamalarınızdan veritabanına erişimine çocuk oyuncağına dönüştürmek ister misiniz? RIA Services sadece verinin taşınmasını değil aynı anda kendi kontrolleri ile düzenlenmesini de kolaylaştırıyor. Nasıl olacağını merak ediyorsanız bekleriz.    &lt;br /&gt;&lt;a href="https://www.livemeeting.com/cc/usergroups/join?id=P9KQ6B&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=P9KQ6B&amp;amp;role=attend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Silverlight projelerinde SEO, 18 Haziran, 21.00&lt;/strong&gt;    &lt;br /&gt;Arama motorlarına dair optimizasyonların çoğumuz için önemli. Silverlight projelerinde özellikle asenkron veri erişimi nedeniyle söz konusu veriye arama motorları ulaşamıyor. Peki ya bir çözümü varsa? Tabi ki o çözümü paylaşma vakti.    &lt;br /&gt;&lt;a href="https://www.livemeeting.com/cc/usergroups/join?id=Q6H2G7&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=Q6H2G7&amp;amp;role=attend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Video Aşkına! Canlı/Cansız Yayın, 19 Haziran, 21.00&lt;/strong&gt;    &lt;br /&gt;İnternette televizyoz izlemek veya cansız kayıtları yayınlamak, amacınız ne olursa olsun video konusunda Silverlight çok güçlü. Bu webinerde Silverlight ile canlı yayın, Media Services ayarları, Adaptive Streaming, cansız yayın ve Video Player hazırlanması gibi konulara değineceğiz.    &lt;br /&gt;&lt;a href="https://www.livemeeting.com/cc/usergroups/join?id=BNPK36&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=BNPK36&amp;amp;role=attend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;DeepZoom Uygulamaları, 22 Haziran, 21.00&lt;/strong&gt;    &lt;br /&gt;Yaklaştıkça daha çok detay görmek isteyenlerin tarzı DeepZoom uygulamalarını hızlı bir şekilde geliştirmenin yanı sıra sıfırdan DeepZoom uygulamalarını yazmak, uygulamaları özelleştirmek ve veri bağlantısı yaparak dinamik DeepZoom projeleri yaratmak isteyenler bu webineri kaçırmasın.    &lt;br /&gt;&lt;a href="https://www.livemeeting.com/cc/usergroups/join?id=BZFCH9&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=BZFCH9&amp;amp;role=attend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Tarayıcı Entegrasyonu, 23 Haziran, 21.00&lt;/strong&gt;    &lt;br /&gt;Silverlight ile tarayıcı arasındaki ilişkiyi inceleyeceğimiz bu webinerde Silverlight tarafındaki C#/VB kodunuz ile DOM entegrasyonunun yanı sıra tam ekran uygulamaları, ön yükleme ekranlarını ve RunTime yükleme ekranlarını özelleştirmeye göz atacağız.    &lt;br /&gt;&lt;a href="https://www.livemeeting.com/cc/usergroups/join?id=3GZKMH&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=3GZKMH&amp;amp;role=attend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Daron Yöndem’in de dediği gibi. Haziran ayı; Silverlight 3.0 öğrenme ayı.&lt;/p&gt;</description>
      <link>http://www.gokhanozic.com/post/2009/06/03/Haziran-Ayinda-12-Tane-Silverlight-30-Online-Semineri.aspx</link>
      <author>gokhanozic.nospam@nospam.gmail.com (Gökhan ÖZİÇ)</author>
      <comments>http://www.gokhanozic.com/post/2009/06/03/Haziran-Ayinda-12-Tane-Silverlight-30-Online-Semineri.aspx#comment</comments>
      <guid>http://www.gokhanozic.com/post.aspx?id=f7722322-7cc1-42d3-9575-1eddc090ca42</guid>
      <pubDate>Wed, 03 Jun 2009 15:29:00 -0400</pubDate>
      <category>C#</category>
      <category>Kuruluşlar</category>
      <category>Teknoloji</category>
      <category>Webiner</category>
      <dc:publisher>Gökhan ÖZİÇ</dc:publisher>
      <pingback:server>http://www.gokhanozic.com/pingback.axd</pingback:server>
      <pingback:target>http://www.gokhanozic.com/post.aspx?id=f7722322-7cc1-42d3-9575-1eddc090ca42</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.gokhanozic.com/trackback.axd?id=f7722322-7cc1-42d3-9575-1eddc090ca42</trackback:ping>
      <wfw:comment>http://www.gokhanozic.com/post/2009/06/03/Haziran-Ayinda-12-Tane-Silverlight-30-Online-Semineri.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.gokhanozic.com/syndication.axd?post=f7722322-7cc1-42d3-9575-1eddc090ca42</wfw:commentRss>
    </item>
    <item>
      <title>Windows Vista ve Windows Server 2008 Service Pack 2 Çıktı</title>
      <description>&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Windows Vista için çıkan ilk Service Pack’ten sonra, ikinci Service Pack’in de çıkacağı görüşü hemen hemen herkes tarafından dile getiriliyordu. Bunu SP1’den sonra Vistanın otomatik updatelerinden de görmek mümkündü aslında. Nihayet Vista SP2 release oldu. Peki SP2, Vista ve Server 2008 için neler getiriyor?&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SP2, Microsoft’un şimdiye kadar Windows Update üzerinden sunduğu tüm güncelleştirmeleri ve yamaları paket halinde içinde barındırıyor. SP2, üçüncü parti uygulamarı çözüyor. Ayrıca Windows’da Vista ile gelen ve daha hızlı arama yapmaya olanak tanıyan Windows Search teknolojisi de 4.0 sürümü ile karşımıza çıkıyor. Ayrıca sağladığı çözümlerden bir tanesi de kablosuz ağ bağlantıları için uyku modundan geri dönüldüğündeki performans kaybını gideriyor. Asıl güzel tarafı ise, blue-ray disklere kayıt yapmaya olanak tanıyan gömülü bir yazılımı Windows’unuz içine kuruyor. Şu anlık sadece İngilizce, Fransızca, Almanca, Japonca ve İspanyolca dil versiyonları mevcut.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Windows Vista ve Windows Server 2008 SP2’yi şu linkten indirebilirsiniz:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=a4dd31d5-f907-4406-9012-a5c3199ea2b3&amp;amp;DisplayLang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=a4dd31d5-f907-4406-9012-a5c3199ea2b3&amp;amp;DisplayLang=en" target="_blank"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=a4dd31d5-f907-4406-9012-a5c3199ea2b3&amp;amp;DisplayLang=en&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://www.gokhanozic.com/post/2009/05/28/Windows-Vista-ve-Windows-Server-2008-Service-Pack-2-Cikti.aspx</link>
      <author>gokhanozic.nospam@nospam.gmail.com (Gökhan ÖZİÇ)</author>
      <comments>http://www.gokhanozic.com/post/2009/05/28/Windows-Vista-ve-Windows-Server-2008-Service-Pack-2-Cikti.aspx#comment</comments>
      <guid>http://www.gokhanozic.com/post.aspx?id=d8f0ac0a-d6de-4913-8f50-a0cc4bba94aa</guid>
      <pubDate>Thu, 28 May 2009 06:30:00 -0400</pubDate>
      <category>Kuruluşlar</category>
      <category>Teknoloji</category>
      <dc:publisher>Gökhan ÖZİÇ</dc:publisher>
      <pingback:server>http://www.gokhanozic.com/pingback.axd</pingback:server>
      <pingback:target>http://www.gokhanozic.com/post.aspx?id=d8f0ac0a-d6de-4913-8f50-a0cc4bba94aa</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.gokhanozic.com/trackback.axd?id=d8f0ac0a-d6de-4913-8f50-a0cc4bba94aa</trackback:ping>
      <wfw:comment>http://www.gokhanozic.com/post/2009/05/28/Windows-Vista-ve-Windows-Server-2008-Service-Pack-2-Cikti.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.gokhanozic.com/syndication.axd?post=d8f0ac0a-d6de-4913-8f50-a0cc4bba94aa</wfw:commentRss>
    </item>
    <item>
      <title>Havayolu Şirketi Bilet Rezervasyon Sistemi</title>
      <description>&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Web Development dersinin dönem projesini sonunda tamamladım. Ufak tefek eksiklikleri olsa da projem şu anda sorunsuz çalışıyor. Aslında çoğunuzun aklına neden daha yeni ve farklı birşey yapmadın diye bir soru gelebilir. Bunun nedeni, ASP.NET’e ve C#’a biraz daha hakim olabilmek ve öğrenebilmekti. Bu yüzden yapılmış ve birçok örneği bulunan bir sistem seçtim. Böylelikle öğrenme sürecimde bana kaynak olabilecek birçok imkanım oluştu.&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Projem, yazının başlığından da anlaşılacağı üzere bir bilet ayırtma sistemi. İnternet üzerinden bir havayolları şirketinin sistemine girip, üye olup, istediğiniz uçuşa istediğiniz tarihe bay ya da bayan, istediğiniz koltuğa bilet ayırtabiliyorsunuz. Kullandığım teknolojiler ASP.NET, C#, XML, MSSQL ve Web Service’ler.&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;   &lt;center&gt;&lt;img alt="" src="/Images/bilet_rezervasyon.jpg" width="448" height="480" /&gt;&lt;/center&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Sistemde karşılaştığım en büyük sorun aslında, kullanıcının keyfi bilet ayırtmasını engellemekti. İnsanların çocukken rastgele numara çevirip birilerini işletmeye çalıştığı gibi, bazı kullanıcılar da keyfi bilet ayırtmaları yapabilir. Bunun önüne geçmek için web service kullanmaya karar verdim. Oluşturduğum web service sayesinde, sisteme kayıt esnasında kullanıcıdan TC Kimlik No’su isteniyor. Sorgulama düğmesi ile bu TC Kimlik No sayesinde, web service’den kişinin ad ve soyadı çekiliyor ve kayıt olurken ad ve soyadın yazılması gereken textbox’lar otomatik olarak dolduruluyor. Zaten kayıt sayfasına girildiğinde ad ve soyad textbox’ları disabled halde karşımıza geliyor. Böylelikle bu alanların doldurulması sadece yazılan TC Kimlik No’nun sorgulanması ile yapılabiliyor. Bu da kullanıcının caydırılması yönünde güzel bir yapı haline geliyor. Sistemi denettiğim çoğu arkadaşımdan da caydırıcı olduğuna dair güzel eleştiriler aldım. Tabii bu fake bir web service. TC Nüfus Müdürlüğü’nün web service’lerini kullanmadım ders projesi için. Bu web service’i kullanmak için hem belirli bir miktar para ödemeniz; hem de dilekçe ile başvurmanız gerekiyor ki bu dilekçe kabul edilmeyebilirde. &lt;/p&gt;   &lt;a href="http://www.gokhanozic.com/Images/bilet_rezervasyon2.jpg" target="_blank"&gt;&lt;img alt="" src="/Images/bilet_rezervasyon2.jpg" width="550" height="589" /&gt;&lt;/a&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://www.gokhanozic.com/Images/bilet_rezervasyon3.jpg" target="_blank"&gt;&lt;img alt="" src="/Images/bilet_rezervasyon3.jpg" width="550" height="589" /&gt;&lt;/a&gt;     &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Sisteme sadece login olmuş kullanıcılar bilet ayırtma sayfasına ulaşabiliyor. Nereden ve Nereye kısımlarını doldurduktan sonra gitmek istediği tarihi giren kullanıcı, boş koltukları görebiliyor. İstediği boş koltuğu seçip bilet ayırt diyen kullanıcının bileti ayırtılmış oluyor. Kişi, ayırttığı biletleri profil sayfasından görebiliyor. Hangi tarihte, hangi saatte, nereden ve nereye şeklinde bir table halinde tüm ayırttığı biletler profil sayfasında oluşuyor. Ayrıca sistem, tarihi geçmiş biletieri de otomatik olarak temizliyor. Böylelikle profil sayfasına giren kullanıcı, tarihi geçmiş biletlerin silinmesiyle profil sayfasını her zaman düzenli görme imkanına sahip oluyor. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Bunların haricinde, üyeliğin yapıldığı tüm sistemlerde olan kullanıcı bilgilerini düzenleme, şifre değiştirme, hesap silme gibi tüm kullanıcı işlemleri de sistemde mevcut. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Sistemle ilgili hertürlü sorunuzu bana yazabilirsiniz.&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;b&gt;Not: Projemde kullandığım ve sitemde paylaştığım yukarıdaki resimlerde görülen tüm şirket bilgileri hayal ürünüdür.&lt;/b&gt;&lt;/p&gt;&lt;/blockquote&gt;</description>
      <link>http://www.gokhanozic.com/post/2009/05/16/Havayolu-Sirketi-Bilet-Rezervasyon-Sistemi.aspx</link>
      <author>gokhanozic.nospam@nospam.gmail.com (Gökhan ÖZİÇ)</author>
      <comments>http://www.gokhanozic.com/post/2009/05/16/Havayolu-Sirketi-Bilet-Rezervasyon-Sistemi.aspx#comment</comments>
      <guid>http://www.gokhanozic.com/post.aspx?id=a47f7d8e-d0ed-4ca1-9ea2-5eccac8c00c2</guid>
      <pubDate>Sat, 16 May 2009 06:56:00 -0400</pubDate>
      <category>ASP.NET</category>
      <category>C#</category>
      <category>MSSQL</category>
      <category>Proje</category>
      <category>Web Service</category>
      <category>XML</category>
      <dc:publisher>Gökhan ÖZİÇ</dc:publisher>
      <pingback:server>http://www.gokhanozic.com/pingback.axd</pingback:server>
      <pingback:target>http://www.gokhanozic.com/post.aspx?id=a47f7d8e-d0ed-4ca1-9ea2-5eccac8c00c2</pingback:target>
      <slash:comments>7</slash:comments>
      <trackback:ping>http://www.gokhanozic.com/trackback.axd?id=a47f7d8e-d0ed-4ca1-9ea2-5eccac8c00c2</trackback:ping>
      <wfw:comment>http://www.gokhanozic.com/post/2009/05/16/Havayolu-Sirketi-Bilet-Rezervasyon-Sistemi.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.gokhanozic.com/syndication.axd?post=a47f7d8e-d0ed-4ca1-9ea2-5eccac8c00c2</wfw:commentRss>
    </item>
    <item>
      <title>RoboÇankaya 2009 Bitti</title>
      <description>&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Çankaya Üniversitesi Yapay Zeka ve Robotik Kulübü olarak 4-5 Nisan tarihlerinde düzenlediğimiz RoboÇankaya 2009 etkinlikleri sona erdi. Çok güzel anılarla ayrıldık hepimiz. Elimizden geldiğince herhangi bir sorun çıkmamasına ve konuklarımızın rahat etmesine çalıştık. Tüm ekip arkadaşlarımı buradan kutluyorum. Benim de mini sumo, sumo ve çizgi izleyen kategorilerinde hakemlik yaptığım etkinlikte en büyük teşekkürü ODTU Robot Topluluğu’na borçluyuz. Kendinlerine buradan verdikleri destek, arkadaş canlısı tavırları ve bitmek bilmeyen enerjileri için birkez daha teşekkür ediyorum. Hakemlik konusunda da sayelerinde tecrübeli hale geldik. &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Etkinlik sonunda serbest, mini sumo, sumo ve çizgi izleyen kategorilerinde ödüller dağıtıldı. Her kategoride; birincilere kişi başı 2.1 ses sistemi ve ana sponsorumuz Microsoft tarafından sağlanan Windows 7 Beta dvdleri hediye edildi. İkincilere kişi başı direksiyon-pedal-vites sistemi ve Windows 7 Beya hediye edildi. Üçüncülere ise takım başına bir tane printer ve Windows 7 Beta hediye edildi. Umarım katılımcılarımız da, yarışmacılarımız da, konuşmacılarımızda etkinlikten memnun kalmıştır. Emeği geçen herkese sonsuz teşekkürler. Tüm Yapay Zeka ve Robotik Kulübü ekibini kutluyorum.&lt;/p&gt;</description>
      <link>http://www.gokhanozic.com/post/2009/04/07/RoboCankaya-2009-Bitti.aspx</link>
      <author>gokhanozic.nospam@nospam.gmail.com (Gökhan ÖZİÇ)</author>
      <comments>http://www.gokhanozic.com/post/2009/04/07/RoboCankaya-2009-Bitti.aspx#comment</comments>
      <guid>http://www.gokhanozic.com/post.aspx?id=d6fdb28d-2032-4d39-be93-3744c7c7a117</guid>
      <pubDate>Tue, 07 Apr 2009 08:35:00 -0400</pubDate>
      <category>Kuruluşlar</category>
      <category>Robot</category>
      <category>Teknoloji</category>
      <category>Yapay Zeka ve Robotik Kulübü</category>
      <dc:publisher>Gökhan ÖZİÇ</dc:publisher>
      <pingback:server>http://www.gokhanozic.com/pingback.axd</pingback:server>
      <pingback:target>http://www.gokhanozic.com/post.aspx?id=d6fdb28d-2032-4d39-be93-3744c7c7a117</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.gokhanozic.com/trackback.axd?id=d6fdb28d-2032-4d39-be93-3744c7c7a117</trackback:ping>
      <wfw:comment>http://www.gokhanozic.com/post/2009/04/07/RoboCankaya-2009-Bitti.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.gokhanozic.com/syndication.axd?post=d6fdb28d-2032-4d39-be93-3744c7c7a117</wfw:commentRss>
    </item>
    <item>
      <title>IT Sektöründeki Büyük Gelişme - 6th Sense</title>
      <description>&lt;img src="/Images/6th_sense.jpg" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Microsoft’un Surface’i duyurmasından sonra insanların geleceğin bilgisayarlarına bakış açısı birhayli değişti. Tüm dünyaya gelecekte dokundukları her yüzeyin aslında birer bilgisayar olacağı fikri yayılmaya başladı ve tüm teknolji meraklılarını heyecanlandırdığı gibi beni de etkiledi. Microsoft’un bu ürününü duyurmasından sonra bazı firmalarında benzer ürünler üzerinde çalıştıklarını duyuyordum. Ama birtanesinin videosunu yeni izleme şansı buldum. Ve tek kelimeyle “İNANILMAZ”. &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;İlk başta Surface’den farkları ile söze başlıyayım. Tabii şu anda herksin bildiği ve son tanıtılan Surface’in özelliklerine göre yazıyorum. Surface’den farklı olarak tek bir yüzeyde değil de istediğiniz her yüzeyde çalışma imkanı veriyor. Çünkü bu cihazın dahili bir projektörü var. Grüntüyü istediğiniz yüzeye yansıtabiliyor ve işlemlerinizi gerçekleştirebiliyorsunuz. Projektörün boyutuna baktığımızda ise yerinde bir karar olduğunu anlamak zor değil ki projektör birhayli küçük ve kullanışlı. Surface’de ürünler hakkında bilgi almak için ürünü Surface’in üzerine bırakmak gerekiyor. Böylelikle ürünün etrafında bir yuvarlak oluşuyor ve bu şekilde ürün hakkında bilgi alabiliyorsunuz. Fakat bu yeni geliştirilen cihaz sayesinde ürünü cihazın kamerasının görmesi yeterli. Ürün hakkındaki bilgiler anında projektörler vasıtasıyla o anki yüzeye yansıtılıyor. Surface’de işlemlerinizi yapabilmeniz için dokunmanız gerekiyor. Fakat bu yeni cihazda durum biraz daha farklı. Parmaklarınızın uçlarına geçirdiğiniz parçalar sayesinde cihaz parmak hareketlerinizi, el hareketlerinizi algılayıp reaksiyon gösteriyor. Bu da herhangi bir yüzeye dokunmak zorunluluğunu ortadan kaldırıyor. İsterseniz parmaklarınızdaki bu küçük parçalar sayesinde resim yapabiliyor, fotoğraflarınıza bakabiliyor ve onları büyültüp küçültebiliyorsunuz. Hemde istediğiniz yüzey üzerinde. &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Bu yeni sistem hem Surface’den daha ucuz, hem de taşınabilir olması ile dikkat çekiyor. Fiyatı sadece 350$. TED oluşumu üyeleri tarafından geliştirilen ve duyurulan cihaz hakkında daha fazla bilgi almak isterseniz &lt;a href="http://www.ted.com"&gt;http://www.ted.com&lt;/a&gt; adresine girip bilgi alabilirsiniz. Ve işte video:&lt;/p&gt; &lt;br /&gt;&lt;br /&gt;  &lt;object width="446" height="326"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;param name="bgColor" value="#ffffff"&gt;&lt;/param&gt; &lt;param name="flashvars" value="vu=http://video.ted.com/talks/embed/PattieMaes_2009-embed_high.flv&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/PattieMaes-2009.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=481" /&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="446" height="326" allowFullScreen="true" flashvars="vu=http://video.ted.com/talks/embed/PattieMaes_2009-embed_high.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/PattieMaes-2009.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=481"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;br /&gt;&lt;br /&gt;</description>
      <link>http://www.gokhanozic.com/post/2009/03/22/Iste-IT-Sektorundeki-Buyuk-Gelisme.aspx</link>
      <author>gokhanozic.nospam@nospam.gmail.com (Gökhan ÖZİÇ)</author>
      <comments>http://www.gokhanozic.com/post/2009/03/22/Iste-IT-Sektorundeki-Buyuk-Gelisme.aspx#comment</comments>
      <guid>http://www.gokhanozic.com/post.aspx?id=95082ed0-69cd-474d-b1d0-0877737970ad</guid>
      <pubDate>Sun, 22 Mar 2009 15:27:00 -0400</pubDate>
      <category>Kuruluşlar</category>
      <category>Teknoloji</category>
      <dc:publisher>Gökhan ÖZİÇ</dc:publisher>
      <pingback:server>http://www.gokhanozic.com/pingback.axd</pingback:server>
      <pingback:target>http://www.gokhanozic.com/post.aspx?id=95082ed0-69cd-474d-b1d0-0877737970ad</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.gokhanozic.com/trackback.axd?id=95082ed0-69cd-474d-b1d0-0877737970ad</trackback:ping>
      <wfw:comment>http://www.gokhanozic.com/post/2009/03/22/Iste-IT-Sektorundeki-Buyuk-Gelisme.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.gokhanozic.com/syndication.axd?post=95082ed0-69cd-474d-b1d0-0877737970ad</wfw:commentRss>
    </item>
    <item>
      <title>RoboÇankaya 2009 (4-5 Nisan)</title>
      <description>&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Geçen sene ilkini düzenlediğimiz RoboÇankaya robot olimpiyatlarının ikincisi ile yine karşınızdayız. İlk yarışmamızda Başkan Yardımcısı olduğum Çankaya Üniversitesi Yapay Zeka ve Robotik Kulübü olarak elimizden geldiğince katılımcılara dolu dolu bir yarışma sunmaya ve eksiklikleri gidermeye çalıştık. İlk defa böyle birşeye el atan bir topluluk olarak etkinliği sorunsuz (istisnalar hariç tabii) bitirmeyi başardık. &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bu sene geçen seneye oranla kategori sayısını 4’e çıkardığımız RoboÇankaya 2009, geçen seferkinden farklı olarak 2 gün sürecek. 2 gün boyunca en iyiler Çizgi İzleyen, Sumo, Mini Sumo ve Serbest kategorilerde robotlarıyla yarışacaklar. İki günün sonunda ise hakeden robotlar ödüllendirilecekler. &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Çankaya Üniversitesi Yapay Zeka ve Robotik Kulübü olarak yarışmayı dört gözle bekliyoruz. RoboÇankaya 2009 hakkında daha detaylı bilgi almak ve kayıt yaptırmak için sitemdeki banner'a tıklayabilirsiniz. Herkese şimdiden başarılar.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.robocankaya.org"&gt;www.robocankaya.org&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://www.gokhanozic.com/post/2009/03/13/RoboCankaya-2009-(4-5-Nisan).aspx</link>
      <author>gokhanozic.nospam@nospam.gmail.com (Gökhan ÖZİÇ)</author>
      <comments>http://www.gokhanozic.com/post/2009/03/13/RoboCankaya-2009-(4-5-Nisan).aspx#comment</comments>
      <guid>http://www.gokhanozic.com/post.aspx?id=2f22927b-2714-4a73-af1c-ae852871ecc2</guid>
      <pubDate>Fri, 13 Mar 2009 14:22:00 -0400</pubDate>
      <category>Hobiler</category>
      <category>Kuruluşlar</category>
      <category>Robot</category>
      <category>Teknoloji</category>
      <category>Yapay Zeka ve Robotik Kulübü</category>
      <dc:publisher>Gökhan ÖZİÇ</dc:publisher>
      <pingback:server>http://www.gokhanozic.com/pingback.axd</pingback:server>
      <pingback:target>http://www.gokhanozic.com/post.aspx?id=2f22927b-2714-4a73-af1c-ae852871ecc2</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.gokhanozic.com/trackback.axd?id=2f22927b-2714-4a73-af1c-ae852871ecc2</trackback:ping>
      <wfw:comment>http://www.gokhanozic.com/post/2009/03/13/RoboCankaya-2009-(4-5-Nisan).aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.gokhanozic.com/syndication.axd?post=2f22927b-2714-4a73-af1c-ae852871ecc2</wfw:commentRss>
    </item>
    <item>
      <title>C++'da Farklı Bir Concstructor Kullanım Şekli</title>
      <description>&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Object Oriented Programming ile gelen en büyük artılardan biri kuşkusuz constructor'lar. Developer'ın işini nasıl kolaylaştırdığını hepimiz biliyoruz. Ama bazen kullanım şekli itibariyle karışıklığa da sebep olabiliyor tabii.&lt;/p&gt;
&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Bu seneki projelerimden biri olan havayolları şirketi rezervasyon programı ile uğraşırken (C++), constructor'lerin kullanımı inceliyorudm ki değişik bir kullanımını farkettim. Şimdi örnekleyerek bu kullanıma yakından göz atalım. Elimizde Test adında bir class var ve tek attribute'ü "a" diye bir integer. Methodları ise iki tane constructor ve bir "getA()" methodu. Kolay bir örnekten gitmek istedim ki anlaşılması da kolay olsun. Bu classın kullanımı şöyle olsun:&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:bd3ed463-fd9c-42bb-bbea-6a94827b7ddb" style="display:inline; margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;DIV class=dp-highlighter&gt;
&lt;DIV class=bar&gt;
&lt;DIV class=tools&gt;&lt;A onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="about:blank#"&gt;view plain&lt;/A&gt;&lt;A onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="about:blank#"&gt;copy to clipboard&lt;/A&gt;&lt;A onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="about:blank#"&gt;print&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;OL class=dp-c&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&lt;SPAN class=preprocessor&gt;#include&amp;nbsp;"stdafx.h" &lt;/SPAN&gt;&lt;SPAN class=preprocessor&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&lt;SPAN class=preprocessor&gt;#include&amp;nbsp;&amp;lt;iostream&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;using&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;namespace&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;std; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;class&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;Test &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;{ &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;private&lt;/SPAN&gt;&lt;SPAN&gt;: &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;int&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;a; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;public&lt;/SPAN&gt;&lt;SPAN&gt;: &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Test():a(0){} &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Test(&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;int&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;x) &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a&amp;nbsp;=&amp;nbsp;x; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;int&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;getA()&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;const&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;return&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;a; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;}; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;int&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;_tmain(&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;int&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;argc,&amp;nbsp;_TCHAR*&amp;nbsp;argv[]) &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;{ &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Test&amp;nbsp;test1(4); &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Test&amp;nbsp;test2; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=string&gt;"The&amp;nbsp;test1&amp;nbsp;and&amp;nbsp;test2&amp;nbsp;objects'&amp;nbsp;\"a\"&amp;nbsp;variables&amp;nbsp;are:&amp;nbsp;"&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;test1.getA()&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=string&gt;"&amp;nbsp;"&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;test2.getA()&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;endl; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;return&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;0; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;}&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;İki constructor'ımız var. Bunlardan ilki "default constructor" olan "Test():a(0){}". Test classından oluşturduğumuz objenin initial değeri verilmediyse bu constructor çalışacak ve objenin a değerini 0'a eşitleyecek. Diğeri ise oluşturulan objenin initial değeri verildiyse o değeri a ile eşitleyecek. Gayet kolay bir class. Kullanımını da main'de görebiliyoruz. İki constructor da düzgün çalışıyor. Cout kısmında output olarak 4 ve 0'ın ekrana basıldığını göreceksiniz. Şimdi aynı class'ı farklı bir constructor ile kullanalım ve yazımın ana konusu olan main'deki kullanımının nasıl değişebildiğini görelim. Bu class'ın kullanımı da şu şekilde olsun:&lt;/p&gt;

&lt;div class="wlWriterEditableSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:398a967c-91d6-4837-aa9d-9cee3fe31c22" style="display:inline; margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;DIV class=dp-highlighter&gt;
&lt;DIV class=bar&gt;
&lt;DIV class=tools&gt;&lt;A onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="about:blank#"&gt;view plain&lt;/A&gt;&lt;A onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="about:blank#"&gt;copy to clipboard&lt;/A&gt;&lt;A onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="about:blank#"&gt;print&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;OL class=dp-c&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&lt;SPAN class=preprocessor&gt;#include&amp;nbsp;"stdafx.h" &lt;/SPAN&gt;&lt;SPAN class=preprocessor&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&lt;SPAN class=preprocessor&gt;#include&amp;nbsp;&amp;lt;iostream&amp;gt; &lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;using&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;namespace&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;std; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;class&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;Test &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;{ &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;private&lt;/SPAN&gt;&lt;SPAN&gt;: &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;int&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;a; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;public&lt;/SPAN&gt;&lt;SPAN&gt;: &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Test(&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;int&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;x&amp;nbsp;=&amp;nbsp;0):a(x){} &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;int&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;getA()&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;const&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;return&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;a; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;}; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;int&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;_tmain(&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;int&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;argc,&amp;nbsp;_TCHAR*&amp;nbsp;argv[]) &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;{ &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Test&amp;nbsp;test1&amp;nbsp;=&amp;nbsp;4; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Test&amp;nbsp;test2; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=string&gt;"The&amp;nbsp;test1&amp;nbsp;and&amp;nbsp;test2&amp;nbsp;objects'&amp;nbsp;\"a\"&amp;nbsp;variables&amp;nbsp;are:&amp;nbsp;"&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;test1.getA()&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=string&gt;"&amp;nbsp;"&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;test2.getA()&amp;nbsp;&amp;lt;&amp;lt;&amp;nbsp;endl; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;return&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;0; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=""&gt;&lt;SPAN&gt;}&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Bu örnekte ise default constructor ile parameter contructor'ı birleştirdim. "Test(int x = 0):a(x){}" satırı şöyle açıklanabilir. Eğer Test classından bir obje oluşturulmuş ve initial değeri gönderilmediyse methodun parametresini sıfır kabul et (int x = 0 satırından bahsediyorum) ve bunu da objenin a değerine eşitle. Eğer initial değeri verilmişse de o değeri parametre olarak x'e gönder ve x ile a değerini eşitle. Buraya kadar herşey normal. Şimdi dikkatinizi main'deki "Test test1 = 4;" satırına çekmek istiyorum. İşte yazımın ana konusu bu satır. Bu satır şu anda hatasız çalışıyor ve hepinizin de tahmin edebileceği gibi test1 objesinin a değerini 4'e eşitliyor. Peki bunu nasıl yapıyor?&lt;/p&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Constructor'a yakından bakarsak aslında biz bu şekilde bir initialization'ı zaten tanımlamış olduk. "Test(int x = 0):a(x){}" satırında gördüğünüz gibi x = 0 ibaresi zaten objenin bu şekilde tanımlanabilir olmasının compiler'a bildirilmesi anlamına geliyor. Yani artık obje = int komutu (bizim Test classımız için), x = 0 komutu sayesinde doğru oluyor. Çünkü biz, "Test(int x = 0):a(x){}" komutu ile objenin birşeye eşitlenebileceğini compiler'a söylemiş oluyoruz. Compiler'da bize hiçbir sorun çıkartmadan eşitlemeyi yapıyor. Cout kısmında ekrana 4 ve 0 basıldığını göreceksiniz.&lt;/p&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Umarım işinize yarayacak bir bilgi olmuştur. Bence çok ilginç bir constructor yaklaşımı. C++'ın ne kadar profesyonel bir dil olduğunu da gözler önüne sermesi cabası.&lt;/p&gt;</description>
      <link>http://www.gokhanozic.com/post/2009/02/05/Cppda-Farkli-Bir-Concstructor-Kullanim-Sekli.aspx</link>
      <author>gokhanozic.nospam@nospam.gmail.com (Gökhan ÖZİÇ)</author>
      <comments>http://www.gokhanozic.com/post/2009/02/05/Cppda-Farkli-Bir-Concstructor-Kullanim-Sekli.aspx#comment</comments>
      <guid>http://www.gokhanozic.com/post.aspx?id=55e84fa6-9c21-49c1-8bd7-20141ed7a834</guid>
      <pubDate>Thu, 05 Feb 2009 12:47:00 -0400</pubDate>
      <category>C / C++</category>
      <dc:publisher>Gökhan ÖZİÇ</dc:publisher>
      <pingback:server>http://www.gokhanozic.com/pingback.axd</pingback:server>
      <pingback:target>http://www.gokhanozic.com/post.aspx?id=55e84fa6-9c21-49c1-8bd7-20141ed7a834</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.gokhanozic.com/trackback.axd?id=55e84fa6-9c21-49c1-8bd7-20141ed7a834</trackback:ping>
      <wfw:comment>http://www.gokhanozic.com/post/2009/02/05/Cppda-Farkli-Bir-Concstructor-Kullanim-Sekli.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.gokhanozic.com/syndication.axd?post=55e84fa6-9c21-49c1-8bd7-20141ed7a834</wfw:commentRss>
    </item>
    <item>
      <title>www.gokhanozic.com Tekrar Yayında!!!</title>
      <description>&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Merhaba;&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Uzun zamandır sitem kapalıydı ve siteme post girme fırsatım haliyle olmadı. Bundan dolay ne kadar üzgün olduğumu anlatamam. Beni asıl üzen ise sitemin kapanışının benimle hiçbir alakası olmaması. Okulumdan birkaç arkadaşım ile bundan yaklaşık 6 ay önce host kiralamaya karar vermiştik. 6 arkadaş ortaklaşa bir bayii kiraladık. Kiralarken de piyasadaki dolandırıcılardan birine kurban gitmeyelim diye firmanın görevlilerinden biriyle bağlantı kurup örnek fatura istedik. Bizimle bağlantıya geçen şahıs çok kibardı ve şirketin politikalarını anlatıp bize örnek bir fatura gönderdi. Biz de faturadan yola çıkarak bu şirketin güvenilir olduğuna kanaat getirdik ve paramızı yatırdık. Başta hiçbir sorun yoktu. Bloglarımızı kurduk ve projemiz olan birkaç siteyi de beslemeye başladık. Yalnız, açtığımızdan 5 ay sonra bayii'yi kiraladığımız firmadan serverların taşındığına dair bir açıklama geldi ve serverlarımız süresi belirtilmeden kapatıldı. Aradan bir-iki hafta geçmesine rağmen açılmadı. Daha sonra yaptığımız araştırmada Türkiye'de çoğu insanın aynı durumdan mağdur olduğunu ve çok insanın aynı firmadan host aldığını gördük. Daha sonradan işin kokusu ortaya çıktı. Bizim bayii kiraladığımız firma aslında, daha önce başka bir adla faaliyetteymiş ve o dönemde birçok insanı dolandırmış. Yine aynı yöntemle hostlar satıp, bayiler kiralayıp insanları dolandırmış ve mağdur etmiş. Daha sonra şirket kapatılmış. Bizim host aldığımız şirket ise bu şirketin yeni adlı versiyonuymuş. Yani dolandırıldık. Aslında bu konu hakkında yazacak fazla birşey de yok. Herşey alenen ortada. İnsanları anlamak mümkün değil. Nedense kolay yol herzaman ilk tercih olarak görülüyor ve kolay yoldan para kazanmanın yolları herşekilde değerlendirilmeye çalışılıyor. Buradan da anlaşılıyor ki, bilişim sektöründe de büyük bir açık var. Bu kadar kolay, bir firma nasıl insanları dolandırabilir anlamak mümkün değil. Özellikle daha önceden insanların parasını gaspetmiş bir firmaın tekrar başka bir isimde, yeni bir firma açmasını neden kimse kontrol etmiyor? Biz ne kadar dikkat etsek de değişen birşey olmuyor. Firmadan fatura istememize, yetkili biriyle görüşmemize ve hatta 5 ay boyunca hiçbir sıkıntı çekmememize rağman başımıza böyle bir olay geldi. Küçük bir tavsiye olarak host alacaksanız muhakkak ama muhakkak çok iyi araştırın. Ben ve arkadaşlarım gibi ortada kalabilirsiniz. Bir şekilde firma hakkında bilgi sahibi olmaya çalışın. Köklü bir firma mı, güvenilir mi? Bunlar çok önemli. Umarım bizim gibi daha mağdur olan olmaz. Bazılarınız neden yasal yollara başvurmadınız diye sorabilirsiniz. Haklısınız. Ama sizce daha önce de insanlarıdolandırmış bir firmanın hiç ceza almadan paçasını kurtarıp başka isimde yeni kurdukları firmayı şikayet etmemizin bir anlamı var mı? Yorumu sizlere bırakıyorum. Umarım yeni hostumda bir sorun çıkmaz ve bende sizlerle paylaşmaya devam ederim. Herkese tekrar merhaba.&lt;/p&gt;  </description>
      <link>http://www.gokhanozic.com/post/2009/02/02/wwwgokhanoziccom-Tekrar-Yayinda!!!.aspx</link>
      <author>gokhanozic.nospam@nospam.gmail.com (Gökhan ÖZİÇ)</author>
      <comments>http://www.gokhanozic.com/post/2009/02/02/wwwgokhanoziccom-Tekrar-Yayinda!!!.aspx#comment</comments>
      <guid>http://www.gokhanozic.com/post.aspx?id=e7090250-9380-4355-bda8-ae096b08a7d7</guid>
      <pubDate>Mon, 02 Feb 2009 11:39:00 -0400</pubDate>
      <category>Kuruluşlar</category>
      <dc:publisher>Gökhan ÖZİÇ</dc:publisher>
      <pingback:server>http://www.gokhanozic.com/pingback.axd</pingback:server>
      <pingback:target>http://www.gokhanozic.com/post.aspx?id=e7090250-9380-4355-bda8-ae096b08a7d7</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.gokhanozic.com/trackback.axd?id=e7090250-9380-4355-bda8-ae096b08a7d7</trackback:ping>
      <wfw:comment>http://www.gokhanozic.com/post/2009/02/02/wwwgokhanoziccom-Tekrar-Yayinda!!!.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.gokhanozic.com/syndication.axd?post=e7090250-9380-4355-bda8-ae096b08a7d7</wfw:commentRss>
    </item>
    <item>
      <title>Windows Azure (Cloud Computing)</title>
      <description>&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Hepinizin bildiği &amp;#252;zere g&amp;#252;n&amp;#252;m&amp;#252;zdeki işletim sistemi anlayışı local olarak &amp;#231;alışan işletim sistemleri &amp;#252;zerine kuruluydu. Kuruluydu diyorum &amp;#231;&amp;#252;nk&amp;#252; artık işler biraz değişti. Microsoft, Professional Developers Conference 2008'de Windows Azure'yi duyurdu. Bildiğimiz işletim sistemi anlayışından &amp;#231;ok farklı olarak local değil online olarak &amp;#231;alışan bir işletim sistemi. Windows Azure aslen bir cloud computing servisidir. Peki nedir bu cloud computing?&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Cloud computing, uygulamarınızın sistem &amp;#252;zerinde herhangi bir kurulama gerek duymadan internette &amp;#231;alıştıştırılabilmesi ve kullanılabilmesine olanak sağlayan yeni bir teknolojidir.&amp;#160; Aslında bu şu demek. Artık bilgiye internet bağlantısı olan heryerden ulaşmak m&amp;#252;mk&amp;#252;n. Hatta kendi &amp;#246;zel dosyalarınıza bile. Yanınızda bilgisayarınızın (ya da harddiskinizin) olmadığı zamanlarda internet bağlantısı olan başka bir bilgisayardan online işletim sisteminize girip dosyalarınızı alabileceksiniz. &lt;/p&gt; &lt;p&gt;&lt;img src="/themes/StarGazer/images/azure.jpg" alt="" align="middle" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Windows Azure ise Microsoft'un Windows Live, Office Live, Exchange Online, Sharepoint Online ve MS Dynamics CRM Online hizmetlerini birarada barındıran bir online işletim sistemi. Windows Azure &amp;#252;zerinde uygulama geliştirmeye yarayan Windows Azure SDK 1.0 da release olmuş durumda. Windows Azure SDK 1.0'ı kullanarak kendi bilgisayarınızda da Windows Azure i&amp;#231;in uygulama geliştirebilir, ve bunu Azure ile internet ortamında diğer kullanıcılarla da paylaşabilirsiniz. Ama SDK 1.0'ı kullanabilmek i&amp;#231;in en az Windows Vista SP1 sahibi olmamalısınız. Ayrıca .NET Framework 3.5 SP1, IIS 7.0 (with ASP.NET and WCF HTTP Activation), Microsoft SQL Server Express 2005 veya Microsoft SQL Server Express 2008 ve Windows Poweshell (bu se&amp;#231;enek opsiyonel) sahibi olmalısınız.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Microsoft artık işletim sistemlerinde yeni bir &amp;#231;ağ başlatıyor. Bu yeni &amp;#252;r&amp;#252;nle işletim sistemlerinin artık online olarak kullanılmaya başlanacağını ve ileride belkide tamamiyle online olacağı anlaşılabilir.&lt;/p&gt;</description>
      <link>http://www.gokhanozic.com/post/2008/11/14/Windows-Azure-(Cloud-Computing).aspx</link>
      <author>gokhanozic.nospam@nospam.gmail.com (Gökhan ÖZİÇ)</author>
      <comments>http://www.gokhanozic.com/post/2008/11/14/Windows-Azure-(Cloud-Computing).aspx#comment</comments>
      <guid>http://www.gokhanozic.com/post.aspx?id=5e112858-f926-4568-85b8-11822435c186</guid>
      <pubDate>Fri, 14 Nov 2008 07:15:00 -0400</pubDate>
      <category>Kuruluşlar</category>
      <category>Teknoloji</category>
      <dc:publisher>Gökhan ÖZİÇ</dc:publisher>
      <pingback:server>http://www.gokhanozic.com/pingback.axd</pingback:server>
      <pingback:target>http://www.gokhanozic.com/post.aspx?id=5e112858-f926-4568-85b8-11822435c186</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.gokhanozic.com/trackback.axd?id=5e112858-f926-4568-85b8-11822435c186</trackback:ping>
      <wfw:comment>http://www.gokhanozic.com/post/2008/11/14/Windows-Azure-(Cloud-Computing).aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.gokhanozic.com/syndication.axd?post=5e112858-f926-4568-85b8-11822435c186</wfw:commentRss>
    </item>
    <item>
      <title>Gençsen Geleceksin 2.0</title>
      <description>&lt;img src="/Images/gencsen_geleceksin.jpg" alt="" align="left" height="400" width="300" /&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Geçtiğimiz akademik yıl ilkini gerçekleştirdiğimiz ve yoğun ilgi gören Gençsen Geleceksin bu yıl hedefini daha da büyüterek "Gençsen Geleceksin 2.0" adıyla yeniden başlıyor. Gençler ve teknoloji severlerin geleceğin teknolojilerine vizyonel bir bakış açısı ile bakmalarını sağlamayı amaçlayan yarım gün sürecek etkinlikler içerisinde mobil teknolojilerden, internetin geleceğine kadar geniş bir yelpazedeki içerik, konusunda uzman konuşmacılar tarafından gerçekleştirilecek. 50 farklı etkinlik siz teknolojistleri bekliyor...   “Neden Gelmeliyim?” diyorsan…   Gelecek fırsatlarla dolu ve bu fırsatlar için fikirler etkinliklerde seni bekliyor olacak. “Web 2.0 konusunda Türkiye’de ne gibi projeler yapılabilir? Web 3.0 neler getirecek? Mobil teknolojilerin geleceğindeki değişim seni ve çevreni nasıl etkileyecek? Bilgisayar Oyunları hayatımızın ve iş dünyasının bir parçası oluyor? Peki bilgisayar oyunları senin geleceğini nasıl değiştirebilir? IPTV ne gibi fırsatlar yaratacak? Facebook’un hayatımızı sarmaya başladığı günümüzde gelecek iletişim ve sosyal ağ fırsatları neler olacak? Surface teknolojiyle neler yapılabilir ve Surface uygulamaları senin hayatını nasıl değiştirir? Tasarım dünyasındaki değişim hangi yeni araçları beraberinde getiriyor?” gibi soruların hepsinin yanıtı bu etkinlikte, bu etkinlik GELECEK nedir sorunuza cevaplar veriyor…&lt;/p&gt;   &lt;p&gt;-----------------------------------------------------------------------&lt;/p&gt;  &lt;p&gt;""" Unutmadan, her etkinlikte değerlendirme formunu dolduran katılımcılardan birisi “Turkcell PDA” kazanıyor. Neden şanslı kişi teknolojist sen olmayasın? """"&lt;/p&gt;&lt;p&gt;Ayrıca XBOX 360 Turnuvası da etkinlikte sizleri bekliyor.&lt;/P&gt;  &lt;p&gt;-------------------------------------------------------------------------&lt;/p&gt;&lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;Etkinlik İçeriği nedir?&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;   &lt;p&gt;&lt;strong&gt;1. Bölüm: Yakın Geleceğin Yazılım Teknolojilerine Bakış&lt;/strong&gt;&lt;/p&gt;   &lt;p&gt;• Yazılım + Servisler Vizyonu&lt;/p&gt;  &lt;p&gt;• Geleceğin Internet Yaklaşımları&lt;/p&gt;   &lt;p&gt;• Online Medya, IPTV ve Gelecek&lt;/p&gt;   &lt;p&gt;• İnsan-Bilgisayar Etkileşimi&lt;/p&gt;  &lt;p&gt;• Oyun Geliştirme ve Fırsatlar&lt;/p&gt;   &lt;p&gt;• Açık Kaynak Yazılım Geliştirme&lt;/p&gt;   &lt;p&gt;• Mobil Uygulama Geliştirmek&lt;/p&gt;     &lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;2. Bölüm: Yakın Geleceğin Mobil Teknolojilerine Bakış&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;   &lt;p&gt;• İletişim Pazarı ve Gelecek&lt;/p&gt;   &lt;p&gt;• Mobil Gelecek ve Yaklaşımlar&lt;/p&gt;   &lt;p&gt;• Mobil İmza ve Mobil TV&lt;/p&gt;   &lt;p&gt;• Wimax ve Gelecek&lt;/p&gt;   &lt;p&gt;• 3G ve Türkiye’de Yaratacağı Fırsatlar&lt;/p&gt;   &lt;p&gt;• Mobil Cihazların Geleceği&lt;/p&gt;   &lt;p&gt;• Mobil Uygulama Pazarı&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tarih:&lt;/strong&gt; 20.11.2008 Perşembe&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Saat:&lt;/strong&gt; 13.00pm - 16.00pm&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yer:&lt;/strong&gt; Çankaya Üniversitesi Konferans Salonu&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Adres:&lt;/strong&gt; 100.Yıl Öğretmenler Caddesi Balgat&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Şehir:&lt;/strong&gt; Ankara&lt;/p&gt;
</description>
      <link>http://www.gokhanozic.com/post/2008/11/09/Gencsen-Geleceksin-20.aspx</link>
      <author>gokhanozic.nospam@nospam.gmail.com (Gökhan ÖZİÇ)</author>
      <comments>http://www.gokhanozic.com/post/2008/11/09/Gencsen-Geleceksin-20.aspx#comment</comments>
      <guid>http://www.gokhanozic.com/post.aspx?id=0dae0f0a-5add-4f41-b5fd-6369eb1b0fb3</guid>
      <pubDate>Sun, 09 Nov 2008 07:49:00 -0400</pubDate>
      <category>Bilgisayar Mühendisliği Topluluğu (BMT)</category>
      <category>Kuruluşlar</category>
      <dc:publisher>Gökhan ÖZİÇ</dc:publisher>
      <pingback:server>http://www.gokhanozic.com/pingback.axd</pingback:server>
      <pingback:target>http://www.gokhanozic.com/post.aspx?id=0dae0f0a-5add-4f41-b5fd-6369eb1b0fb3</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.gokhanozic.com/trackback.axd?id=0dae0f0a-5add-4f41-b5fd-6369eb1b0fb3</trackback:ping>
      <wfw:comment>http://www.gokhanozic.com/post/2008/11/09/Gencsen-Geleceksin-20.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.gokhanozic.com/syndication.axd?post=0dae0f0a-5add-4f41-b5fd-6369eb1b0fb3</wfw:commentRss>
    </item>
    <item>
      <title>İşte Hologram Teknolojisi!!!</title>
      <description>&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Dünya'nın birkaç gündür konuştuğu en büyük olay kuşkusuz ABD'deki başkanlık seçimleri. Barack Obama'nın ABD'nin ilk siyahi başkanı seçildiği geceye çok büyük bir teknolojik gelişme de damgasını vurdu. CNN International televizyonu, tam 1500 km uzakta Chicago'daki muhabiri Jessica Yellin'i yeni bir hologram teknolojisi kullanarak New York'taki stüdyoda bulunan Wolf Blitzer'in karşısındaymış gibi gösterdi. Görüntü o kadar gerçekçi ki iki kişi arasındaki farkı anlamak imkansız gibi birşey. Aşağıdaki resime bakarsanız ne demek istediğimi anlayacaksınız.&lt;/p&gt;&lt;br/&gt;&lt;img src="/Images/hologram-cnn.jpg" alt="" align="middle" /&gt;&lt;br/&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Peki dünyada böyle büyük bir teknolojik gelişme olur da Türk televizyonları bundan geri kalır mı? Tabii ki hayır. Bugün haber bültenleri arasında gezinirken ben de tesadüfen bu teknolojiye Show Tv Ana Haber Bülteni'nde şahit oldum. Aynı şekilde Ankara'da bulunan muhabir Tuğba Atav'ın görüntüsü, İstanbul'daki Show Tv haber stüdyosuna aktarıldı. Show Tv meğerse iki gündür bu teknolojiyi haber bülteninde deniyormuş fakat ben bugün rastladım. Aşağıdaki resime dikkatinizi çekiyorum. Bakalım kim gerçekten stüdyoda, kim hologram olarak orda ilk bakışta anlıyabiliyor musunuz?&lt;/p&gt;&lt;br/&gt;&lt;img src="/Images/hologram-showtv.jpg" alt="" align="middle" /&gt;&lt;br/&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Özellikle böyle büyük bir gelişmeyi çok hızlı şekilde yakalayan Show Tv'yi tebrik etmek gerek. Bu yeni hologram teknolojisinin biraz da teknik boyutuna bakalım. Bu teknoloji, parlak yeşil bir çadıra kurulan özel bir sistem sayesinde gerçekleştirildi. Dairesel bir odaya kurulan sistemde yüksek çözünürlüklü 35 kamera 10 cm arayla ışınlanacak kişinin etrafına göz hizasında yerleştiriliyor. Bu şekilde taranan görüntü istenilen yere aktarılıyor ve kişinin 3 boyutlu görüntüsü elde ediliyor. &lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Teknolojinin ne kadar hızlı geliştiğini bir kez daha ortaya koyan bu büyük gelişme, insan oğlunun bilim-kurgu filmlerinde gördüğü ve fantazi olarak nitelendirilebilecek hayallerinin hiç de gerçeksiz olmadığı, günün birinde herşeyin mümkün olabileceğini tüm çıplaklığıyla gözler önüne sermiyor mu? Bence bu sorunun cevabı evet evet evet!&lt;/p&gt;</description>
      <link>http://www.gokhanozic.com/post/2008/11/08/Iste-Hologram-Teknolojisi!!!.aspx</link>
      <author>gokhanozic.nospam@nospam.gmail.com (Gökhan ÖZİÇ)</author>
      <comments>http://www.gokhanozic.com/post/2008/11/08/Iste-Hologram-Teknolojisi!!!.aspx#comment</comments>
      <guid>http://www.gokhanozic.com/post.aspx?id=970056be-4f13-4f28-b3c1-42964893efa5</guid>
      <pubDate>Sat, 08 Nov 2008 19:55:00 -0400</pubDate>
      <category>Teknoloji</category>
      <dc:publisher>Gökhan ÖZİÇ</dc:publisher>
      <pingback:server>http://www.gokhanozic.com/pingback.axd</pingback:server>
      <pingback:target>http://www.gokhanozic.com/post.aspx?id=970056be-4f13-4f28-b3c1-42964893efa5</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.gokhanozic.com/trackback.axd?id=970056be-4f13-4f28-b3c1-42964893efa5</trackback:ping>
      <wfw:comment>http://www.gokhanozic.com/post/2008/11/08/Iste-Hologram-Teknolojisi!!!.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.gokhanozic.com/syndication.axd?post=970056be-4f13-4f28-b3c1-42964893efa5</wfw:commentRss>
    </item>
    <item>
      <title>C Dilinde Macro Kullanımı</title>
      <description>&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Developerlar olarak aslında en büyük yardımcılarımız kuşkusuz fonksiyonlardır (metodlar). CPU yükünü oldukça azaltan ve algoritmayı daha verimli ve hızlı hale getiren yapılardır fonksiyonlar (metodlar). Ancak; fonksiyonların uzun uzun yazılmalarından ziyade başka bir yöntem daha var ki, fonksiyonda yazdığınız birkaç satır kodu (özellikle kısa ve tek göreve sahip olan fonksiyonlarda) tek satırda yazarak aynı görevin yapılmasını sağlar. Macrolardan bahsediyorum tabiiki. Kullanımı rahat ve geliştirme sürecini kısaltan macrolar, fonksiyonlardan sonra (kimisine göre önce) en büyük yardımcılardan bir tanesi. Şimdi birkaç fonksiyon ve macro örneği yapalım ve görelim macrolar nasıl çalışıyor. Kolaydan gidelim ve iki integerın büyük olanını return eden bir fonksiyon yazalım.&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:3cb39239-80b3-4d2f-a89f-811f2a9bbca4" style="display:inline; margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;pre name="code" class="c-sharp"&gt;#include &amp;lt;stdio.h&amp;gt;

int Max(int a, int b)
{
    if(a &amp;gt; b)
        return a;
    else
        return b;
}


int main()
{
    int a, b;
    printf("Enter two integers: ");
    scanf("%d%d", &amp;amp;a, &amp;amp;b);
    
    printf("The maximum of two integers is %d.\n", Max(a, b));

	return 0;
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Gördüğünüz üzere fonksiyonumuz, aldığı a ve b değerlerinden büyük olanı return ediyor ve main de yazdırılıyor. Çok kolay bir algoritma. Peki bunu macro ile yapsak nasıl yapardık. O da şu şekilde.&lt;/p&gt;

&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:626fb4ef-5823-4ab6-b5f3-118223b3ed3b" style="display:inline; margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;pre name="code" class="c-sharp"&gt;#include &amp;lt;stdio.h&amp;gt;

#define MAX(a, b) ( a &amp;gt; b ? a : b)

int main()
{
    int a, b;
    printf("Enter two integers: ");
    scanf("%d%d", &amp;amp;a, &amp;amp;b);
    
    printf("The maximum of two integers is %d.\n", MAX(a, b));

	return 0;
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Gördüğünüz gibi fonksiyonla yaptığımız örneğin aynısını şimdi macro ile yaptık ve sadece bir satır sürdü. Farkettiyseniz macro için aldığı parametrelere değişken tiplerini yazmam da gerekmedi. Macroların avantajlarından biri de bu. Gönderdiğimiz değişkenin tipleri önemli değil. Yazdığınız macro her değişken tipinde görevini yerine getiriyor ve algoritmada herhangi bir upgrade yapmanız gerekmiyor. Onu da örneklendirelim. Yukarıda yazdığımız kodu bu sefer de iki double number için yapalım ve görelim.&lt;/p&gt;

&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:d6c56f55-31e0-42d5-8881-b4baf24867b6" style="display:inline; margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;pre name="code" class="c-sharp"&gt;#include &amp;lt;stdio.h&amp;gt;

#define MAX(a, b) ( a &amp;gt; b ? a : b)

int main()
{
    double a, b;
    printf("Enter two integers: ");
    scanf("%lf%lf", &amp;amp;a, &amp;amp;b);
    
    printf("The maximum of two integers is %0.2f.\n", MAX(a, b));

	return 0;
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Gördüğünüz gibi değişkenleri değiştirdik ve macromuz hala görevini yerine getiriyor. Macrolar fonksiyonlardan farklı olarak değişken tipi bağımsız olarak çalışıyorlar ve bu çok büyük bir artı. Macroları kurgulamak tamamen size bağlı. Algoritma geliştirmeyi gerçekten hızlandırıyor.&lt;/p&gt; 




 </description>
      <link>http://www.gokhanozic.com/post/2008/11/07/C-Dilinde-Macro-Kullanimi.aspx</link>
      <author>gokhanozic.nospam@nospam.gmail.com (Gökhan ÖZİÇ)</author>
      <comments>http://www.gokhanozic.com/post/2008/11/07/C-Dilinde-Macro-Kullanimi.aspx#comment</comments>
      <guid>http://www.gokhanozic.com/post.aspx?id=33146ab0-6e52-47e7-9ded-8a5a2b2bea03</guid>
      <pubDate>Fri, 07 Nov 2008 05:38:00 -0400</pubDate>
      <category>C / C++</category>
      <dc:publisher>Gökhan ÖZİÇ</dc:publisher>
      <pingback:server>http://www.gokhanozic.com/pingback.axd</pingback:server>
      <pingback:target>http://www.gokhanozic.com/post.aspx?id=33146ab0-6e52-47e7-9ded-8a5a2b2bea03</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.gokhanozic.com/trackback.axd?id=33146ab0-6e52-47e7-9ded-8a5a2b2bea03</trackback:ping>
      <wfw:comment>http://www.gokhanozic.com/post/2008/11/07/C-Dilinde-Macro-Kullanimi.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.gokhanozic.com/syndication.axd?post=33146ab0-6e52-47e7-9ded-8a5a2b2bea03</wfw:commentRss>
    </item>
    <item>
      <title>C Dilinde Buffer Sorunu (scanf, gets...)</title>
      <description>&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;C dili ile çalışan programlamacının en büyük dostlarından biri kuşkusuz "scanf()" fonksiyonudur. İşlevi ise kullanıcıdan input almak üzerinedir. Ancak bu dost bazen problemler çıkarabiliyor. Advanced Programming dersinde yaptığım son ödevde başıma gelen sorun gibi. Ödevim; text olarak alınmış bir inputun morse alfabesi ile karşılığının ve morse alfabesi ile alınmış bir inputun text olarak karşılığının ekrana yazdırılması için gerekli algoritmayı kurmaktı. Haliyle; algoritma bir menü ile çalışmak zorunda. Text'ten mi morse'a çevireceksiniz, yoksa morse'tan mı text'te... Bunu menü ile seçmeniz gerekiyor. Ve bunu bir loop'a sokmak gerekiyor ki birden fazla kez işlem yapılabilsin. Menüde seçim yapabilmek için ise bir karakter variable tanımlamak gerekiyor. Bu variable'ı da her seferinde tekrar istemek gerekiyor. Kod olarak ise şöyle gösterilebilir:  &lt;/p&gt;&lt;br/&gt; &lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:1102aa17-084a-4730-b652-b67736e0324c" style="display:inline; margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;pre name="code" class="csharp"&gt;printf("\tMenu\nE\tEncode(Read text and convert to morse)\n"
	   "D\tDecode(Read morse and convert to text)\n"
	   "X\tExit\n&amp;amp;gt;");
scanf("%c", &amp;selection);
		  
while ( (selection != 'x') &amp;&amp; (selection != 'X') )
	{
			  
		if( (selection == 'e') || (selection == 'E') ) 
		{
			//Statements
		}
		else
			if( (selection == 'd') || (selection == 'D') )
			{
				//Statements
			}
				  
			printf("\tMenu\nE\tEncode(Read text and convert to morse)\n"
			       "D\tDecode(Read morse and convert to text)\n"
			       "X\tExit\n&amp;amp;gt;");
			scanf("%c", &amp;selection);
				  
	}&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Bu kodu run ettiğimde menünün iki defa karşıma çıktığını gördüm. Halbu ki iki if statement'tan sonra bir kere menünün çıkması ve "scanf()" fonksiyonunu beklemesi gerekiyor. Karşıma çıkan sorun da işte bu. Variable tekrar kullanıcıdan istendiğinde "scanf()", sanki zaten variable'ı tekrar istemiş ve okumuş gibi davranıyor ve loop tekrar çalışıyordu. Haliyle menü iki kez karşıma çıkıyordu. Bu durumun "scanf()"ten kaynaklanan bir sorun olduğu ortada. Yaptığım araştırma sonucunda ise şöyle bir bilgiye eriştim.&lt;/p&gt;
&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;"scanf()" fonksiyonu çalıştığında tampon denilen bölgeden (birazdan açıklayacağım) bütün veriyi alıyor. Veriyi alırken de bölgedeki boşlukları ignore edip veriyi alıyor. Bu şu demek oluyor. Eğer verinin alındığı tampon bölgede herhangi bir veri varsa kullanıcıdan inputu almadan önce "scanf()" o bölgede varolan veriyi alıyor. Enter tuşuna basmamızı da bekler, fakat bölgedeki verinin içinde enter karakteri varsa bunu bile beklmeden statement'ı zaten çalışmış ve input alınmış gibi atlıyor. Bundan dolayı da "scanf()", kullanıcının input vermesine olanak vermiyor. Bu yüzden, "scanf()" fonksiyonunu kullanmadan önce mutlaka tampon bölgeyi boşaltmamız gerekiyor. Bu esanada da "fflush()" fonksiyonu imdadımıza yetişiyor. Tampon bölgeyi boşaltman için "scanf()" fonksiyonunu call etmeden önce "fflush()" fonksiyonunu call ederek tampon(buffer) bölgesini boşaltmamız gerekiyor. O zaman ise kod şu şekilde oluyor: &lt;/p&gt;&lt;br/&gt;

&lt;div class="wlWriterSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:0c332b06-d3bd-4cb3-8f60-d6cbc72516e0" style="display:inline; margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;pre name="code" class="csharp"&gt;printf("\tMenu\nE\tEncode(Read text and convert to morse)\n"
	   "D\tDecode(Read morse and convert to text)\n"
	   "X\tExit\n&amp;amp;gt;");
scanf("%c", &amp;selection);
		  
while ( (selection != 'x') &amp;&amp; (selection != 'X') )
	{
			  
		if( (selection == 'e') || (selection == 'E') ) 
		{
		        //Statements
		}
		else
			if( (selection == 'd') || (selection == 'D') )
			{
				//Statements
			}
				  
			fflush(stdin);
			printf("\tMenu\nE\tEncode(Read text and convert to morse)\n"
			       "D\tDecode(Read morse and convert to text)\n"
			       "X\tExit\n&amp;amp;gt;");
			scanf("%c", &amp;selection);
				  
	}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Peki nedir bu tampon(buffer) bölge? Klavyeden kullanıcı bir input girdiğinde aslında bu input, standart input dosyasına yazılmış oluyor. Yani aslında bizim bildiğimiz klavye ve ekran, input ve output dosyalarını temsil ediyor. Terminolojik olarak bunlar C dilinde "stdin" dosyası ve "stdout" dosyası olarak adlandırılıyor. "stdin" dosyasının varsayılan değeri klavye, "stdout" dosyasının varsayılan değeri ise ekran oluyor. "stdin" dosyasından okuma yapan fonksiyonlara ("gets()", "scanf()" gibi) verilen inputlar tampon bölgesinde tutuluyor ve okuma burada gerçekleşiyor.&lt;/p&gt;
&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Örneğin en çok kullandığımız fonksiyonlardan biri olan "printf()" fonksiyonu aslında "fpirntf()" olarak çalışır. "printf("Bilgi Paylaştıkça Artar")" dediğimizde aslında "fprintf(stdout, "Bilgi Paylaştıkça Artar")" demiş oluyoruz.&lt;/p&gt; 
&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Sonuç olarak "scanf()"ten önce yukarıdaki kodda olduğu gibi "fflush(stdin)" fonksiyonunu kullandığımızda "stdin" dosyasını boşaltmış oluyoruz. Tavsiyem, "scanf()"ten önce mümkün olduğu kadar tampon bölgeyi boşaltmanızdır. Hatta "gets()" fonksiyonundan önce de aynı işlemi yapıp, string alırken de başınıza gelebilecek bu sorundan kurtulabilirsiniz. Aksi halde sorunun ne olduğunu saatlerce düşünüp saç baş yolabilirsiniz.&lt;/p&gt;&lt;br/&gt;KAYNAK:&amp;#160;&lt;a href="http://www.sorucevap.com/bilisimteknolojisi/programcilik/c/ders.asp?206634"&gt;http://www.sorucevap.com/bilisimteknolojisi/programcilik/c/ders.asp?206634&lt;/a&gt;&lt;br/&gt;</description>
      <link>http://www.gokhanozic.com/post/2008/10/12/C-Dilinde-scanf()-Fonksiyonu-Sorunu.aspx</link>
      <author>gokhanozic.nospam@nospam.gmail.com (Gökhan ÖZİÇ)</author>
      <comments>http://www.gokhanozic.com/post/2008/10/12/C-Dilinde-scanf()-Fonksiyonu-Sorunu.aspx#comment</comments>
      <guid>http://www.gokhanozic.com/post.aspx?id=3d587abd-d4f7-4ee4-b518-99b96fa0135b</guid>
      <pubDate>Sun, 12 Oct 2008 08:45:00 -0400</pubDate>
      <category>C / C++</category>
      <dc:publisher>Gökhan ÖZİÇ</dc:publisher>
      <pingback:server>http://www.gokhanozic.com/pingback.axd</pingback:server>
      <pingback:target>http://www.gokhanozic.com/post.aspx?id=3d587abd-d4f7-4ee4-b518-99b96fa0135b</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.gokhanozic.com/trackback.axd?id=3d587abd-d4f7-4ee4-b518-99b96fa0135b</trackback:ping>
      <wfw:comment>http://www.gokhanozic.com/post/2008/10/12/C-Dilinde-scanf()-Fonksiyonu-Sorunu.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.gokhanozic.com/syndication.axd?post=3d587abd-d4f7-4ee4-b518-99b96fa0135b</wfw:commentRss>
    </item>
  </channel>
</rss>
