Benim Küçük Evrenimin Kaynak Kodu

in #tr7 years ago

Küçükken birçoğumuz gibi bende sihirbazlara büyük hayranlık duyardım.
Yapılan illüzyonların gerçekte mümkün olmayacağını bilir ama yine de hayranlıkla izlerdim.
Sonra ben de birkaç numara öğrenmeye karar verdim.
Ancak şöyle bir sorun ortaya çıktı.
Numaraları yaparken arkasındaki "BASİT" aldatmacaları biliyor olmak, bütün oyunu bozuyordu.
Yani sihirli güçleriniz olmuyor; bir nevi yalancı konumuna düşüyordunuz.
Bu hiç hoşuma gitmedi ve "SİHİRBAZLIK" kariyerim de başlamadan sona erdi. :)

Yani gerçekler aslında göründüğü gibi olmayabiliyor ve daha da ilginç olanı bizler gerçekleri olduğu gibi görmek istemiyorduk.

Sonra biraz daha büyüdüğümde, QBASIC dili ile küçük oyunlar programlamayı öğrendiğim yıllarda MATRIX filmi çıkıverdi.
İnanılmaz bir şeydi. Adamlar uçuyor, mermilerden kaçıyor ve daha nice çılgınca şeyler oluyordu. Ama tüm bu metafiziksel olaylar bir gerçeğin üzerine oturtuluyordu; YAZILIM.

matrix.jpg

Hem illüzyonu sevmiştim. Hemde arkasındaki sırrı.

Yıllar geçtikçe biriktirebildiğim kadar günlük hayatta gereksiz olan fakat "HAYAT" denen illüzyonun arkasındaki sırrı hakkında küçük bilgiler biriktirdim. Pratik değiller. Eğlenceli de değiller. Ve hatta para da kazandırmıyorlar.

Sonra tüm bu illüzyonun bir yazılım ile nasıl tarif edilebileceğini düşünmeye başladım.

En başta fiziksel hiçbir şeyin var olması GEREKMEDİĞİNİ kesinlikle biliyordum. Çünkü dünyayı ve yaşadığımız evreni bize fiziksel olarak gösteren/hissettiren duyularımız birer elektrik sinyalinden ibaretti. Bir ses duyduğumuzda kulak zarımız titreşiyor ve bu titreşimi elektrik sinyali olarak beynimize gönderiyordu. Diğer tüm duyularımız da aynı temele dayanarak çalışıyordu. Dokunduğumuzda bir sinyal. Tattığımızda bir sinyal. Baktığımızda ve kokladığımızda bir başkaları. Ve bu veriler yine elektriksel olarak beynimizde saklanıyordu.

İkinci önemli nokta Kütle/Mekan/Zaman üçlemesini açıklamaktı. Çünkü Einstein abimiz bize şöyle diyordu. Bir kütleyi hareket ettirmek için gereken enerji kütle ile ışık hızının karesininin çarpımına eşitti. Bu da şunu doğuruyordu; kütlesi olan hiçbir şey ışık hızında hareket edemezdi. Işık fotonlarının kütlesi yok. İşte bu yüzden evrenin mutlak hız limiti olarak kabul edilen maksimum hızda yani ışık hızında hareket edebiliyorlar.

Hmm... Kütlesi yok ama kendisi var. Bu bana doğrudan programlama dillerindeki pointer (işaretçi) kavramını hatırlattı.
Kısaca anlatmak gerekirse işaretçiler kendileri bir veri taşımazlar. Taşıdıkları şey ise belli bölgede var olan verinin adresini tutmaktır.

Zaman konusunda ise ışık hızına karşılık gelen evrensel bir Clock hayal edelim. Hepimizin bildiği bilgisayarlarımızı ve telefonlarımızı alırken baktığımız CPU hızı var ya tam olarak öyle işte. Tüm veri blokları eşit miktarda bu darbeleri alıyorlar. Peki bu darbeleri eşit miktarda alırlarsa herkes hiçin ortak bir zaman kavramı ortaya çıkıyor mu? Halbuki evren öyle işlemiyor. Zaman göreceli bir kavram. Ne kadar hızlı hareket ederseniz zaman sizin için o kadar yavaş hissediliyor.

O zaman şöyle başlayabiliriz :

typedef struct data {
int x,
int y,
int z,
int refresh_rate,
struct data *data_blocks_pv;
struct data *data_blocks_nx;
}

Burada "x", "y", "z" maddenin evrendeki konumunu gösteriyor.
"data_blocks" ise bu işaretçinin gösterdiği veri topluluğu. Yani fiziksel olarak gerçek kabul ettiğimiz veri blokları. Sen, ben, dünya, hayvan, vb... Bu veri blokları bir ring buffer ile birbirine bağlı.
"refresh_rate" ise bu veri bloğunun var olduğundan beri mekandaki güncelleme sayısı. Yani hissettiğimiz zaman.

Her bir veriyi tek bir darbe ile güncelleyebildiğimizi düşünelim. Yani "data_blocks" (veri bloğu) bölümü boş ise (ışık fotonları gibi) bu verinin güncellenme sayısı ana kaynak frekans ile aynı olacaktır. Bir başka değişle ışık hızı. Ancak bu veri bloğu herhangi bir veriyi işaret ediyorsa o verileri güncellemek için de barındırdığı veri miktarı kadar darbeye ihtiyacımız olacaktır. Tüm veriler güncellendikten sonra bu ana işaretçinin "refresh_rate" değişkeni bir arttırılır. Ne kadar çok hızlı hareket etmek istersek ihtiyacımız olan darbe sayısı da artacaktır. Veriyi hareket ettirmek için kullandığımız darbe sabit olduğundan tek bir darbede birden fazla veriyi hareket ettirmek imkansız olacaktır. Yani kütlesi olan hiç bir şey ışık hızına ulaşamaz.

NOT: Eğlence amaçlı yazılmıştır. Fizik ya da kuantum uzmanı değilim.

Saygılarımla....

Sort:  

hocam hiç pointer a bulaşmayalım en iyisi, mümkünse Java kullanmak :)

Öür yer vallah doğru söylüyorsun :)

okuyan anlamaz, yazan kolayca yazamaz o nedir abi öyle :) işkence vala. ama yine kendine mecbur bırakıyo bazen C kullanmak gerekiyor napalım.