– Merhaba Oğuz Bey, konuşmanız çok güzeldi. Elevator pitch
– Teşekkür ederim.
– Adım Nadir Karman. Bilgisayar mühendisliği öğrencisiyim. Sizi ve şirketinizin başarılarını hep takip ediyorum.
– Teşekkürler. Ama şimdi gitmem lazım. Bir toplantıya yetişeceğim.
– Öyle mi? Kusura bakmayın. Ben de sizinle birkaç şey konuşabilir miyim diyecektim.
– Başka bir zaman belki.
– Aslında çok güzel bir fikrim var. Hatta bir proje desem daha doğru. Dinlemek istersiniz diye düşündüm.
– Buyrun bu kartvizitim. E-mail adresime fikrinizi yazabilirsiniz. İyi günler.
– Ama yazılı olarak tam anlatamayabilirim.
– Allah Allah. Peki. Madem öyle, bak şimdi. Şu asansörü çağırıyorum. Aşağıya beraber ineceğiz. En alt kata ininceye kadar bana fikrini anlatırsan ne ala. Anlatamazsan…

Diyelim ki, böyle bir teklifle karşılaştınız. Anlatabilir miydiniz?

İngilizce’de Elevator Pitch, Elevator Speech ya da Elevator Presentation diye bilinen, Türkçe’ye ise Asansör Tanıtım Konuşması ya da Asansör Sunumu diye çevrilebilecek bir tabir var. Daha çok girişimci insanların yatırımcıların ilgisini çekebilmek için fikrini kısa sürede anlatabilmek anlamına geliyor. Wikipedia’daki ilgili maddede bu kısa sürenin anlamı 30 saniye ya da 150 kelime olarak belirtilmiş.

Bir asansör tanıtım konuşmasında olması istenen üç temel bilgi var : Fikir (ürün, çözüm, proje) nedir? Yatırımcı için faydası nedir? Siz (ya da şirketiniz) kimsiniz? Bu üç bilgi için fikir ve faydayı birleştirip üçüncü olarak daha fazla bilgiye nasıl ulaşılabilir sorusunun cevabını ekleyenler de var.

Şu yazıda iyi bir asansör konuşmasının 9 özelliğinden (Nine C’s) bahsetmiş:

  1. Concise : Az ve öz olmalı
  2. Clear : Herkes tarafından anlaşılır olmalı
  3. Compelling : Çözmeye çalıştığınız problemi iyi açıklamalı
  4. Credible : Bu problemi çözebileceğiniz konusunda ikna edici olmalı
  5. Conceptual : Konuyu genel olarak anlatabilmeli
  6. Concrete : Hayali bir şey olmamalı, uygulanabilir olmalı
  7. Consistent : Tutarlı olmalı
  8. Customized : Farklı şekillerde anlatılabilmeli
  9. Conversational : Paragraf gibi değil, anlaşılabilir kısa cümleler veya soru cevap şeklinde olmalı

Bu konu ile ilgili olarak bir de Türkçe kaynak verelim. Ayrıca Internet’te yüzlerce yazılı, sesli ve görüntülü kaynak bulabilirsiniz.

Yalnız, başka bir nokta daha var. Herhangi bir tanıtımla ilgili olarak kısa sürede söyleyebilecek sözünüz var mı?

  • Kendini kısaca tanıtır mısın?
  • Çalıştığın şirket ne iş yapar?
  • Yazdığın program ne işe yarar?
  • Senin için …. kelimesi ne ifade ediyor?
  • …. konusunda fikrinizi alabilir miyim?

Deneyin bakalım, 30 saniyede ne anlatabiliyorsunuz?

  • ipaqim.com güzel bir kaynak. xda-developers ise fevkalade…
  • Öncelikle HP BIOS güncellemesini ve pil süresi çözümünü yüklemek lazım.
  • İBB CepTrafik programı sorunsuz çalışıyor. Sağolsun yapanlar 😉
  • Her smartphone için lazım bir uygulama Smart Toolkit. Önemli ihtiyaçlardan birisi farklı saatlere kurulabilen bir alarm programıydı. Smart Toolkit’in böyle bir özelliği de var. Ayrıca otomatik tuş kilidi, Windows benzeri menüsü ve kısayolları çok kullanışlı. Hele analog saat şeklinde bir ekran koruyucusu var ki, tam sanat eseri…

IPAQ 514
Windows Mobile’ın en güzel özelliklerinden birisi rehberde arama yaparken birkaç harf yazdığınızda sadece baş harflerini değil, ismin içinde herhangi bir yerde geçen kişileri de göstermesi. Gerçi bu özellik kimisi için kullanışsız geliyor ama rehberiniz kalabalıksa çok faydalı.

Eğer hala aradığınız numarayı bulamıyorsanız, o zaman SmartPhone Find programını yükleyeceksiniz. Telefonun her yerinde metin araması yapabiliyor.

Öncelikle eski telefondaki numaraları Excel’e aktardım. Üzerinde düzenlemeler yapıp Outlook’a almaya çalışınca nedense Outlook kabul etmedi. Excel dosyasını CSV olarak kaydedip, içini editörle açarak noktalı virgülleri virgüle dönüştürdüm. (Bölge/Dil ayarı Türkçe ise, Excel noktalı virgül olarak kaydediyor.) Outlook’a bu sefer düzgün aldı. Senkronizasyon sonrasında telefonun rehberi harika oldu. Hele (Şirket sütununu kullanarak) rehberdeki kişileri kategorize etmişseniz daha güzel oluyor. Çünkü telefondaki Kişiler uygulamasının şirkete göre gruplandırma özelliği var.

Telefonun rehberinde hem Outlook hem de sim kartı numaralarını gösteriyor. Eğer sim kartındaki numaraları görmek istemiyorsanız, telefonun registry’sinde bir ayarı değiştirmeniz gerekiyor. Bu işlem için iki yöntem kullanılabilir:

  1. CERegEditor programını bilgisayarınıza yüklersiniz. Programı çalıştırıp telefona bağlandıktan sonra, HKEY_CURRENT_USER – Control Panel – Phone yolunu izleyip oradaki ShowSIM seçeneğinin değerini 0 yaparsanız artık SIM karttaki numaralar görünmeyecektir.
  2. Diğer ve daha kolay yöntem ise, OS RegTweaker programını indirip telefon içinden çalıştırmak. Yazılım telefonun derinliklerine hükmetmenizi sağlıyor. İlk sayfadaki Show SIM Contacts seçeneğini off yapıp değişiklikleri uyguluyoruz. (Apply Tweaks)

Kablosuz ağ özelliği bayağı becerikli. Kullanıcı doğrulamalı proxy ve Linux firewall üzerinden Internet’e sorunsuz çıkabiliyor.

Her türlü şifre, parola vb. bilgilerinizi güvenli bir şekilde saklamak için ücretsiz ve açık kaynaklı Keepass uygulamasını kullanabilirsiniz. Programın Windows Mobile sürümü de var ve hem yetenekli hem de kullanması kolay bir uygulama.

Telefonla gelen Office Mobile programı yeni dosyalar oluşturmaya izin vermiyor. Bunun için geliştirilmiş Modaco DoNew adlı çözümü yükleyerek bu sorunu da aşabiliyoruz.

Türk insanının pek alışık olmadığı halbuki mesela ABD’de çok popüler olan önemli bir ihtiyaç da kişisel finans/gelir gider uygulamaları. Quicken neredeyse her Amerikan vatandaşının bilgisayarında yüklüdür. Bilgisayar başında olmadığımız saatlerde ise Windows Mobile yüklü cep telefonları gelir-gider takibini yapabilmek için çok uygun aletler. Bir mobil uygulama yükleyerek her yerde kullanabilir ve “hesabınızı bilirsiniz.” Nitekim ücretli ve ücretsiz yüzlerce İngilizce uygulama var. Hiç Türkçe uygulama – en azından smartphone için – bulamadım.
KeepSavin
Denediğim ücretsiz onlarca program içinde en kullanışlı olanı KeepSavin’ idi. Ufacık boyutlu ama çok güzel özelliklere sahip. Açılırken direkt o günün tarihiyle harcama giriş ekranı geliyor. Çoklu giriş özelliği sayesinde arka arkaya hızlı gelir/masraf kaydı yapılabiliyor. İşlemler kategorilere ayrılabiliyor. Farklı döviz türleri kullanılabiliyor. İşlemlere detaylı açıklama girilebiliyor. Günlük ve aylık harcama raporları alınabiliyor. Raporlar CSV ve Quicken formatlarında bilgisayara aktarılabiliyor. Velhasıl tam işini yapan bir uygulama.

Program güzel ama simgesi biraz can sıkıcı. Windows Mobile içindeki herhangi bir uygulamanın simgesi değiştirilemiyor. Kısayol programları kullanılabiliyor ancak bunlar genelde ücretli ve bir programın daha hafızada çalışıyor olması anlamına geliyor. Neticede vardığım çözüm şöyle oldu:

  1. Telefonda kurulu programın EXE dosyasını bilgisayara alıyoruz.
  2. Ücretsiz ResHacker programını indiriyoruz. Bu program EXE dosyalarının içindeki simgeleri dışarı alabiliyor ya da bu simgeyi bir başkasıyla değiştirebiliyor.
  3. Internet’ten -mesela şuradan – bir simge dosyası (ICO uzantılı) buluyoruz.
  4. EXE dosyasının simgesini değiştireceğiz ancak, WM6 programları güvenlik için imzalanmış (signed) olduğundan değişiklik sonrasında program çalışmıyor. Sorunu aşmak için imza sökücü programımızı indiriyoruz. Bu program MS-DOS komut satırından çalışıyor. Dosyanın adını parametre olarak veriyor (unsigner keepsavin.exe) ve çalıştırıyoruz.
  5. Şimdi ResHacker’i kullanarak EXE dosyamızı açıyor ve Action menüsünde Replace Icon seçeneği ile simge dosyamızı programın içine yerleştiriyoruz.
  6. Sonrasında geriye EXE dosyayı tekrar telefona kopyalamak ve telefonu kapatıp tekrar açmak kalıyor.

Telefonun içine işletim sistemi koyarsanız böyle oluyor işte… Bu macera burada bitmez.

  • Günümüzdeki bilgisayar mühendisliği dersleri yeterince sıkı değil, iyi düşünme ve problem çözmeyi teşvik etmiyor. Aksine derslere katılımı kolaylaştırmak için içerik daha da basitleştiriliyor.
  • Baba mı, Java mı

  • Mesela, ilk dil olarak Java’nın öğretilmesi bu süreci hızlandırıyor. Özellikle de grafik arayüzlerinin kullanımı öğrencileri arka plandaki kaynak kodu anlamadan sürükle bırak kolaycılığına itiyor.
  • “Matematik eğlenceli değil, derslerdeki oranını düşürelim. Algoritma zor, gerek yok. Hazır kütüphaneler zaten var. Sonra insanlar görsel güzelliğe önem veriyor. Komut satırını boşverin” anlayışı yerleşiyor.
  • Eski yazılımcılardan biri yeni mezun olmuş çalışanına hatayı bulmak için “call stack” a bakmasını söylediğinde “böyle bir şey duymadım” dediğini anlatıyordu.
  • Bir Java kitabı alıyorsunuz, 1200 sayfa. Ama içinde 300 sayfa komutlar kalan 900 sayfa hazır kütüphaneler… Bu yazılım mühendisliği değil, tüketici düzeyi programcılık…
  • Eğer öğrenciler okula gelip, Java’yı, hazır kütüphaneleri ve web programcılığını öğrenip bırakacaklarsa, bu bir işe yaramaz. Yetenek gerektirmeyen işleri, daha ucuza çalışılan ülkelere kaydırırsınız, olur biter.
  • Yani, bugünün hazır kod programcısı, yarın pizzacı olur.
  • Yazılım mühendisi olacak kişinin zor problemlerle uğraşmaktan zevk alması, ilginç algoritmalar üretmesi, zekice veri yapıları oluşturabilmesi lazım. Problem çözmekten sıkılan adam bizim aradığımız adam değil.

Kısaltarak çevirdiğim bu yazıda, New York Üniversitesi’nin kıdemli profesörlerinden Robert Dewar Amerikan öğrencilerinden bahsediyor. Ancak sanki yazılanlar bize pek yabancı değil. Ne dersiniz?

Skype üzerinden yapılan sohbetleri arşivliyor olabilirsiniz. Ancak geçmiş sohbetlerde arama yapılamıyor. Geçmiş sohbetlerde geçen bir kelimeyi nasıl aratırsınız?

Aslında Skype’ın böyle bir özelliği var. Ama henüz deneme aşamasında olduğu için kapalı. Aktif hale getirmek için şu dosyayı indirin ve çalıştırın. Skype’ı kapatıp açın. Chats (Mesajlar) menüsünde Historic chats (Geçmiş yazılı mesajlar) diye bir seçenek gelecek.

Artık istediğiniz kelimeyi ya da konuyu aratabilirsiniz.

Java ile yazdığınız uygulamanın kaynak kodlarında bir satır bile değiştirmeden kullanıcı adı ve şifre kontrolünü, akıllı kart kullanımını ya da parmak izi kullanımını nasıl eklersiniz?

JAAS (Java Authentication and Authorization Service) paketleri Java’nın içindeki güvenlik sistemini biraz daha geliştiriyor ve farklı kaynaklar kullanılarak güvenlik sistemleri oluşturmayı mümkün hale getiriyor.

Java SDK içindeki java.security.* paketleri bir uygulamanın güvenliğinin sağlanması için temel metotları içeriyor. Bunlar arasında byte-code doğrulayıcısı (byte-code verifier), sınıf yükleyicisi (class loader), güvenlik yöneticisi (security manager), erişim denetleyicisi (access controller), politikalar (policy) ve koruyucu alanlar (protecting domain) sayılabilir.

Bunlara ek olarak genişletme kütüphaneleri (extension API) sayesinde uygulamaların güvenliği istenilen seviyelerde arttırılabiliyor. JAAS bunlardan birisi…

JAAS temel olarak uygulamaya kimlik bilgisi döndürecek bir LoginContext ve bu kimlik bilgisinin çeşitli yollarla elde edilmesini sağlayan bir LoginModule‘den oluşuyor.

LoginModule sınıfından genişletilerek oluşturulan modüller kimlik bilgisi için bir veritabanına bağlanan, Kerberos ya da LDAP dizininden kullanıcı bilgisi alan, akıllı kart okuyucudan veya parmak izi okuyucudan bilgi aktaran bir yapıda tasarlanabilir. Uygulamadan bağımsız olarak modüller tasarlamak bize eklenip çıkarılabilir bir kimlik denetimi yapısı sağlar.

jaas.jpg

Uygulamamızda JAAS kullanmak için şöyle bir yol izliyoruz:

Öncelikle bir konfigürasyon dosyası oluşturuyoruz. Daha sonra uygulamayı çalıştırırken parametre olarak bu dosyayı vereceğiz.

jaas.config

Ornek 
{
   DBLoginModule required 
        debug="true" 
        url="jdbc:mysql://localhost/jaasdb?user=root&password=pass" 
        driver="org.gjt.mm.mysql.Driver";
};

Uygulamayı çalıştırırken kullanımı:

 java -Djava.security.auth.login.config=jaas.config JaasTest 

Burada kullanacağımız modül, bir MySql veritabanına bağlanarak kullanıcı adı kontrolü yapıyor.

JaasTest uygulamamıza bu modüllere erişip kullanacak LoginContext’i tanımlıyoruz.

JaasTest.java

...
/* JAAS sınıfları */
import java.security.*;
import javax.security.auth.*;
import javax.security.auth.login.*;

...

        try {
            // LoginModule ile haberleşecek olan sınıf
            ConsoleCallbackHandler cbh = new ConsoleCallbackHandler();
	 
            LoginContext lc = new LoginContext("Ornek", cbh);

            try {
            	// LoginModule içinde login metodunu kendimize uygun şekilde
            	// tanımlayacağız.
                lc.login();

		// Subject : kimlik denetimi bilgilerini içeren nese 
                subject = lc.getSubject();

		// Principal : Yetkili olan kişiler vb.
                Iterator it = subject.getPrincipals().iterator();

		// Credential : Yetkiler, haklar vb.
                it = subject.getPublicCredentials(Properties.class).iterator();

		...
		// Programın çalışma rutinleri
		
		// Program çıkışında 
                lc.logout();
            } catch (LoginException lex) 
	    {
              ....
            }

        } catch (Exception ex) 
	{
            ...
        }

        System.exit(0);
    }

Temel anlamda kullanılan sınıf ve metotlar böyle…
Şimdi MySQL veritabanına bağlanıp kontrol yapan login modülümüze bakalım.

DBLoginModule.java

...

import java.security.*;
import javax.security.auth.spi.LoginModule;
import javax.security.auth.login.LoginException;
import javax.security.auth.Subject;
import javax.security.auth.callback.*;

...

public class DBLoginModule implements LoginModule 
{

    // initial state
    CallbackHandler callbackHandler;
    Subject  subject;

...

    public void initialize(Subject subject, CallbackHandler callbackHandler,
            Map sharedState, Map options) 
    {
      // ön işlemler
    }
    
    public boolean login() throws LoginException 
    {
	// veritabanına bağlanıp yapılacak kontroller
	// Buraya akıllı kart, parmak izi okuyucu vb. 
	// kontrolleri eklenebilir
    }

    public boolean commit() throws LoginException 
    {
       // Otomatikmen çalışır
       // login işlemi doğru yapıldı ise true, değilse false döndürür
    }

    public boolean abort() throws javax.security.auth.login.LoginException 
    {
      // işlem başarısız  olduğunda burası çalışır
    }

    public boolean logout() throws javax.security.auth.login.LoginException 
    {
      // uygulamadan çıkışta yetkileri temizler 
    }
}

Bu örnekte veritabanına bağlandık. Sadece LoginModule ve jaas.config dosyalarında değişiklik yapılarak istenen kontrol yöntemi uygulanabilir. Böylelikle uygulamamızın kaynak koduna müdahale etmeden güvenlik kontrolü ekleyebiliriz.

JAAS konusunda bilgilenmek isteyenler için maalesef Türkçe doküman yok. Ancak İngilizce olarak şu bilgilendirici sunum, şu yazı, Sun sitesindeki orijinal kılavuz faydalı olabilir. Ayrıca veritabanına bağlanan, akıllı kart okuyucudan bilgi alan, parmak izi okuyucuya bağlanan örnekler incelenebilir.

Facebook, -şöhreti, getirdikleri ve hakkındaki iddialar bir yana- sonuçta bir yazılım… Bu kadar çok kullanılan bir uygulamanın arkaplanında ve teknik altyapısında neler var?

Önce birkaç istatistik… (Facebook sayfasından)

  • Siteye ortalama her gün 250 bin yeni kayıt oluyor.
  • Ayda ortalama 65 milyar sayfa gösterimi var.
  • Kullanıcıların en az yarısı her gün giriyor.
  • Dünya’nın en çok kullanılan fotoğraf paylaşım uygulaması… En yakın üç rakibinin toplamından daha fazla resim gösterimi yapılıyor.
  • Facebook platformunu kullanan 7 binden fazla uygulama yazılmış. Her gün yüzden fazla yeni uygulama ekleniyor.

Teknik altyapıya gelince…

  • Neredeyse tamamen açık kaynaklı uygulamalar kullanılmış.
  • Yazım dili PHP. Arka planda çalışan bazı uygulamalar Java, Python ve Perl kullanıyor. Ayrıca C++ uyumlu uygulamalar için gcc ve Boost kütüphaneleri kullanılmış. Yine, c++ uygulamalarının daha sağlıklı çalışması için kendileri phpembed adlı bir kütüphane yazmışlar.
  • Sunucularda Linux yüklü. Web server olarak Apache kullanılıyor. Dünyanın her yerinde hızlı çalışması için içeriğin çoğunu Akamai sunucularında tutuyorlar.
  • Sistemde 2 milyardan fazla fotoğraf dosyası yüklü. Bunlar diskte yaklaşık 200 terabyte yer tutuyor. Kullanıcılar her hafta 80 milyon civarında resim yüklüyor. Her fotoğraf için 4 ayrı boy tutulduğundan, bu 300 milyondan fazla resim dosyası demek. Oluşan yoğunluğu karşılayabilmek için, yüklenen fotoğrafları işleyen bir çok sunucu var. Ayrıca bir grup sunucu, işlenmiş fotoğrafları Akamai’ye gönderiyor. Bazı fotoğrafları tutmak üzere kendi dosya sunucuları da var.
  • Veritabanı olarak MySQL kullanılıyor. Birbirine bağlı binlerce MySQL veritabanları var.
  • Veritabanından bilgi çekmek çok yavaş olduğu için cache (önbellek) mekanizması kullanılıyor. memcached isimli açık kaynaklı uygulamayı kendi yazdıkları kodlarla geliştirmişler. (detaylı bilgi)
    • Sitenin neredeyse belkemiği bu uygulama. Kullanıcı profillerini, arkadaş bilgilerini, uygulamaları hep önbellekte (RAM’de) tutuyor ve çok hızlı gelmesini sağlıyorlar.
    • 400’den fazla memcached sunucusu var.
    • 5 Terabyte’dan fazla RAM önbellekleme için kullanılıyor.
    • memcached sorgularının daha hızlı çalışması için TCP yerine UDP portunu kullanmışlar.
    • Ayrıca APC kütüphanesini kullanarak sayfa görüntülemeyi 30 kat hızlandırmışlar.
  • Kendi yazdıkları site içi arama motorunu kullanıyorlar. Ayda 1 milyara yakın arama yapılıyor. Önbellek için 2 terabyte civarında RAM ayrılmış. Ortalama sonuç süresi 100 milisaniye civarında imiş.
  • Yazdıkları kodu yerinde debug etmek için phpsh adlı bir komut satırı kütüphanesi yazmışlar. Ana bilgisayara yükleyip bağlandığınızda komut satırından php kodları yazıp çıktısını görüyorsunuz.
  • Versiyon yönetimi için Subversion ve git kullanıyorlar.

Yani, Facebook olmak istiyorsanız altyapınızı da ona göre kuracaksınız.

Özellikle Hollywood filmlerinde izlemekten rahatsız olacağınız sahneler her zaman oluyor. Bazen çok güzel ve anlamlı olduğunu düşündüğünüz bir filmi içindeki bazı sahneler sebebiyle ailenizle izleyemiyorsunuz. O sahneleri izlerken geçmek için ileri sarma vb. aksiyonlar yapmak da işin tadını kaçırıyor.

Şöyle bir program olsa, filmin istemediğimiz kısımlarını belirtsek de izlerken otomatik olarak oraları atlasa…

Aslında komut satırından çalışan ve özellikle Linux dünyasında çok meşhur olan video oynatıcısı mplayer ile bu sorunu çözebiliyoruz. EDL (Edit Decision List) denilen bir özellik sayesinde, mplayer programına videonun atlanacak bölümlerinin listesini bir dosya halinde veriyoruz. Video gösterilirken, belirttiğimiz kısımları atlayıp devam ediyor.

Bu iş için öncelikle Not Defteri gibi bir metin editörü açıp, atlanacak saniyeleri satırlar halinde gireceğiz. EDL dosyalarının yapısı şöyle:

[Başlangıç saniyesi] [Bitiş saniyesi] [İşlem(0-atla, 1-sessiz oynat)]

Örneğin,

210 240 0
1890 1960 0

Daha sonra bu dosyayı .edl uzantısı ile harddiske kaydediyoruz. Tabii, listeyi oluştururken saniye hesaplamalarını yapmak gerekecek. Aslında mplayer’in -edlout parametresi ile bu işlemler arayüz üzerinden de yapılabiliyor ama çok kullanışlı değil.

Mplayer’ın Windows tarafında kolay kullanımı için bir çok arayüz yazılmış durumda… Biz bu arayüzlerden SMPlayer yazılımını kullanacağız. Görünüm değiştirebilme, Türkçe desteği, altyazı oynatabilme ve gelişmiş özellikleri ile SMPlayer bir çok ticari video oynatıcı yazılımdan daha güzel.

Programı şuradan indirip, kuruyor ve çalıştırıyoruz. Videomuzu açıyoruz. Seçenekler (Options) menüsünden Bilgi ve özelliklere bak seçeneğine tıklayarak video özellikleri penceresini açıyoruz. Mplayer seçenekleri (Mplayer options) sekmesinde Seçenekler (Options) bölümüne -edl edldosyasınınadı şeklinde dosyamızı belirtiyoruz. (Örnek: -edl c:\film\atla.edl)

Artık, videomuz oynarken belirttiğimiz saniyeleri atlayacaktır.

Sanal Dünyalar Forumu (Virtual Worlds Forum) 23-26 Ekim tarihleri arasında Londra’da yapıldı. Foruma 80’den fazla üzerinde uluslararası konuşmacı, 23 ülkeden 480 uzman ve dinleyici katıldı.

Second Life ile popülerleşen sanal dünyaların geleceğinin konuşulduğu forumda çok güzel sunum ve oturumlar var. Resmi blog sitesinden olup bitenleri ve konuşmaların mp3 halini takip edebiliyorsunuz.

Çok enteresan başlıklar var, keşke mümkün olsa da, tüm konuşmaların transkriptlerini yayınlasalar…

İlgimi çeken konulardan bazı başlıklar…

  • Sanal dünyalarda şu anda ikinci dalga yaşanıyor. Önce, herkes merakla daldı, şimdi ise düzenli yatırımlar ve iş fikirleri tartışılıyor.
  • Sanal Dünyalar Forumu

  • Google bu işe de el atmış. Kendi sanal dünyasını yazıyor. Bu, resmen doğrulanmasa da, foruma katılanlar diyor ki : “Yazdıklarını biliyoruz, çünkü arkadaşlarımızı işe aldılar.” Gelirini reklamdan elde eden Google’ın böyle bir cennete el atması beklenirdi.
  • Sanal dünya tasarımlarının gerçek hayatta üretilmesi planlanıyor. Mesela Armani’nin sanal dükkanında beğendiğiniz bir giysi gerçekte de üretilebilecek. Şimdilik garip geliyor ama 3 boyutlu yazıcıların yaygınlaşmasıyla buna da alışacağız sanırım.
  • Pazarda yeni hedef çocuklar ve gençlere özel sanal dünyalar tasarlamak… Çünkü “gençler sanal dünyalar hakkında konuşmuyor, direkt gidip katılıyor.”
  • Cep telefonu ve mobil cihazlar sanal dünyalarla iletişim için kullanılacak. Mesela Second Life’ta o sırada online olmadığınızda size gelen bir mesaj cep telefonunuza da SMS olarak gelecek. Ya da, Windows Mobile üzerinde çalışan bir Second Life sürümü düşünün. Hatta Japonya’da böyle bir şey yapılmış bile…
  • Sosyal ağlarla sanal dünyaları birleştirecek çözümler aranıyor. En büyük sorun, genelde sosyal ağlarda gerçek bilgiler kullanılırken, sanal dünyalarda gizli ve bilinçaltı karakterler kullanılıyor.
  • Sanal dünyalar ve bağımlılık ya da asosyalleşme önümüzdeki yılların çok tartışılan konuları olacak.
  • Oyuncakçılar sanal dünyaları keşfetti. Barbie ve Lego bunun ilk örnekleri… Yine hedef çocuklar. Şimdiden bir iki örnek var. Daha önce bahsettiğimiz “shifthappens” sunumunun yeni versiyonunda geçen bir cümleye dikkatinizi çekerim: “Amerika’da bugün 4 yaşındaki çocukların %70’i bilgisayar kullandı. ”
  • Çocuklar gibi ileride diğer bir hedef yaşlılar… Çünkü yaşlılarda duygusallık yüksek ve boşa harcayacak çok paraları oluyor.
  • Amerika’da büyük şirketler toplantı ve eğitimler için gittikçe artan bir oranda sanal dünyaları kullanmaya başladı. Mesela işe girdiğinizde size aynı zamanda bir Second Life hesabı açılıyor ve ilk eğitimlerinizi orada alıyorsunuz. Sıradışı değil mi? Bu durum tabii başka bir konuyu gündeme getiriyor. Ya o karakterinizi kullanarak iş dışında da Second Life’ta bir şeyler yaptıysanız? (ki muhtemelen yapacaksınız.) Şirketiniz sizi izler mi?

Şu dünyada ( hangisinde 🙂 ) neler oluyor…

Aslında sanallaştırmadan bahsederken geleceğin teknolojisi olarak anlatmak yanlış. Çünkü neredeyse 40 yıldır varolan bir terim ve kullanım… Ancak, son dönemde yeni geliştirilen özellikler ve donanım teknolojileri sayesinde yeniden popüler oldu. Gelecekte özellikle iş uygulamalarında yıldızı parlak olacak.

Sanallaştırma (Virtualization), en basit haliyle, bir bilgisayar üzerinde birden çok işletim sistemini aynı anda çalıştırmak olarak tanımlanabilir. Örneğin Windows XP yüklü bilgisayarımızda, bir pencere içinde Linux çalıştırabilir ve tüm donanım özelliklerini Linux içinden de kullanabiliriz.

Sanallaştırma işlemi bir çok amaçla kullanılıyor. Örnek vermek gerekirse;

  • MS-DOS için yazılmış bir programı yeni bir bilgisayarda program üzerinde değişiklik yapmadan çalıştırabiliriz.
  • Güçlü bir bilgisayara birden çok işletim sistemi kurarak donanım maliyetlerinden tasarruf edebiliriz. Bir firmanın sayfasında %70’e kadar maliyet düşüşünden bahsediliyor.
  • Bir uygulamayı sanal işletim sistemine kurup, daha sonra fiziksel bir değişiklik gerektiğinde, örneğin yeni bir ana bilgisayara geçilirken sanal işletim sistemini durdurup, işletim sistemi dosyasını yeni bilgisayara taşıdıkta sonra tekrar çalıştırarak kaldığımız yerden devam edebiliriz.

SanallaştırmaSanallaştırma işlemi değişik seviyelerde yapılıyor. Mesela platform sanallaştırması bir bilgisayarda birbirinden bağımsız işletim sistemlerini kaynakları paylaştırarak çalıştırmayı sağlıyor. Çok detaylı bir konu ama şöyle bir örnek verebiliriz: 8 işlemcili bir bilgisayara 8 ayrı sanal işletim sistemi kurup her birine ayrı işlemciler ve RAM kaynakları tahsis edilebiliyor.

Son dönemde hosting şirketleri bu yöntemi kullanarak isteyenlere sanal özel sunucu denilen (VPS) bir hizmet sunmaya başladılar.

Bu konuda pazarın güçlü oyuncusu VMvare hakkında bir teknik doküman şurada yer alıyor.

Ayrıca Microsoft’un stratejileri ve diğer bir oyuncu Xen hakkındaki bu sunum teknik anlamda faydalanılabilecek kaynaklar…

Sektördeki bir çok firma, sanallaştırma alanında çalışmalar yapıyor. Neler olup bittiğini anlamak için bu ve bu yazıları okuyun. Amerika’daki bir araştırma şu anda En büyük 1000 firmada %29 oranında sanallaştırmaya ilgi duyulduğunu gösteriyor.

Yazı içindeki bağlantılardan bu konu ile ilgili bir çok detay öğrenilebilir. Gelelim, bir bilişim öğrencisi için gelecekte bu konuda ne gibi fırsatlar olduğuna…

Donanım, ağ ve işletim sistemleri konusunda kariyer yapmak isteyen öğrenciler sanallaştırma üzerine geleceklerini kurabilirler. Bu noktada öğrenilecek çok şey var. Öncelikle şu harika makale okunmalı. Daha sonra, makalede geçen ürün ve kavramlar (hypervisor gibi) hakkında detaylı bilgiler edinilmeli. Uygulamalı çalışmalar yapılmalı. Teknolojik gelişmeler ve etkinlikler yakından takip edilmeli.

Yazılım üzerinde kendini geliştirecek öğrenciler için de sanallaştırma büyük fırsat… Sanal makineleri yönetecek uygulamalar, sanal makineler arası haberleşme ve transfer yapacak uygulamalar, yedek alma, web üzerinden sanal makinelere ulaşım uygulamaları geliştirilebilecek yazılımlardan birkaçı… Bunların bir kısmı zaten yazılmış durumda ama genelde üst düzey uygulamalar…

Bir diğer alternatif, kendi sanal sisteminde çalışacak uygulamalar geliştirmek… Programı tüm özellikleri ile geliştirip, müşterilere olduğu gibi sanal sistemiyle veriyorsunuz. Dosyayı sanal sunucusunda çalıştırdığında hazır kurulu uygulama olarak kullanabiliyor.

Bunlar şu anki vizyonla üretilmiş fikirler… Konu ile ilgili teknik bilgiler derinleştikçe çok uç noktalara ve çözümlere ulaşılabilir. Bu da size kalmış.

Bu makalenin çıkış noktası aslında Microsoft’un yeni işletim sistemi Windows 7’nin çekirdeğini tanıtmasıydı. Windows 7 çekirdek düzeyinde sanallaştırma destekleyecek. Bu noktada rakip taraftan RedHat Linux ekibinin teknik şefi gelecek vizyonu özetliyor:
“Varolan modeli değiştirmeye çalışıyoruz. Normalde, işletim sistemini alırsınız, sanal sunucu programını alırsınız ve sistemi kurarsınız. Halbuki daha entegre sistemler kurulmalı”.
Yani, sanallaştırma yeteneklerini içinde barındıran ve işlemcilerle en alt düzeyde haberleşerek maksimum performansı sağlayan işletim sistemleri…
Önümüzdeki yıllar masaüstü sistemlerde sanallaştırmanın parladığı yıllar olacak. Donanım ve sistem yazılımı alanında geleceğini kurmak isteyen öğrenciler için sanallaştırma uzmanlığı iyi bir fırsat…

Pownce bir tür web tabanlı paylaşım platformu.

Dosya, link, etkinlik ve mesaj gönderim imkanı sunan servis, oluşturduğunuz sosyal ağınız dahilindeki kullanıcılarla web üzerinden ya da masaüstü uygulaması ile paylaşım gerçekleştirebilmenizi sağlıyor.

Pownce’nin programcısı, programı yazarken yaşadığı uygulama geliştirme tecrübelerini paylaşmış.

Özetle şöyle diyor:

  1. Teknolojiyi doğru seç. Biz Python üzerinde Djangoyu seçtik. Amazon’un S3 servisini kullandık. Adobe AIR’i kullandık. Avantajları …..(detayları orada okuyun)
  2. Az adamla çok iş yap. Kısa bitiş hedef süreleri koy. Herkes birden fazla rol üstlensin.
  3. Açık kaynak kodlu uygulamaları kullan. Başkaları bu uygulamaların sorunlarını çözmüşlerdir. Büyük ihtimalle de senden daha akıllıdırlar.
  4. Tüm bilgi kaynaklarını kullan. Arkadaşlar, IRC, forum siteleri ne varsa… Toplululuklara üye ol.
  5. Veritabanına önem ver. Önbellekleme (cache) kullan. Sorguları kuyruğa al, sırası geldikçe işle. Kayıtları lazım olduğu sayıda çek, limit koy. İndeks kullan. Basitleştir. Gereksiz sorguları ele.
  6. Sorunlara hazır ol. Çabuk cevap ver. Yedek al. Versiyon kontrol sistemleri kullan.
  7. Yazdığın uygulamayı kullananlarla iletişim içinde ol. Kodun durumunu bilsinler. Hata bildirimine açık ol. Hataları düzelt. Verdiğin bitiş hedeflerine uy.
  8. Büyümeye hazır ol. Uygulamanın tasarımını buna göre yap. Gerektiğinde büyük değişiklikler yap.