Salı, Temmuz 22, 2008

Web uygulama

muziktek.net web uygulamaları geliştirmek isteyenler için yol haritası niteliğinde bir yazı yazmıştım. Bu yazıyı düzenleyip buraya da ekliyorum.

1. HTML öğrenin. Daha önce bahsettiğim gibi syntax highlighting özelliği olan bir editör kullanmanızı öneririm. Basit web sayfaları yapın. Özellikle tablolara iyi hakim olun ve CSS öğrenin. HTML bilginizi iyi bir noktaya getirmeden diğer basamaklara geçmeyin.

Örneğin forumdaki tablo yapısının bir benzerini yapamıyorsanız diğer basamaklar için erken demektir. Tabloları manuel olarak yapabilmenin önemini PHP ile veritabanından okuyup tablolara yazarken anlayacaksınız.

Tablolara ve CSS'ye gerçekten hakim olmak biraz zaman alabilir. Özellikle IE ve Firefox arasındaki farklardan dolayı zor zamanlar yaşayabilirsiniz.

Bu arada HTML'de renk kullanımı (HEX renk kodları), font boyutlandırma ve metin formatlama gibi konuları iyice öğrenin. Bunları daima CSS ile yapın.

W3C kurallarını öğrenin ve göz ardı etmeyin.

2. Photoshop veya GIMP yada başka bir grafik programını öğrenin. Bir resim nasıl slice'lara bölünür öğrenin. Tasarımlarınızda renk uyumuna dikkat edin. Müzikteki armoni gibi renklerde de armoni vardır. Bu konuda gözünüzü eğitin. Bu renk uyumu konusu tabloların, yazıların, zeminin vs. renkleri için de geçerli.

3. JavaScript öğrenin. JavaScript kullanarak HTML'in bazı kısıtlamalarını aşabilirsiniz. İlk bakışta karışık gelebilir, zira sözdizimi biraz tuhafdır ama JavaScript kolay ve eğlenceli bir dildir.

İlk üç aşamayı geçtiğinizde durağan (statik) sayfalardan oluşan web siteleri yapabilirsiniz. Bu sitelerdeki sayfa sayısı arttıkça PHP'ye gereksinimiz artacak.

Diyelimki on sayfadan oluşan bir site yaptınız, ve her sayfanın en üstünde logo, bir altında menü, bir altında içerik kısmı ve en altta telif hakları bildirgesi olsun istiyorsunuz. Her sayfanın html dosyası içinde bu kısımlar olmalı... Hepsinde aynı... Tekrar... tekrar... En küçük bir değişiklik durumunda on dosyayı da teker teker açıp düzenlemek gerekecek. Önce frame'lerle bu sorunun üstesinden gelmeye çalışın. İleriki dönemlerde PHP ve AJAX ile angaryadan kurtulacaksınız.

Bu noktada "şunları baştan öğrensek ya" diye itiraz edenler olabilir... Bu işin enstrüman çalmayı öğrenmekten çok farklı olmadığını söylemeliyim. Başlangıçta biraz sıkıcı gelse de temel çalışmalar iyi bir programcı/enstrümantalist olmanızı sağlar. İnanmayan denesin görsün...

4. PHP ile programlamaya başlangıç yapın. PHP algoritma kurma, fonksiyon kullanma, nesne kullanma açısında diğer programlama dillerinden farklılık göstermez. PHP bir web tasarım dili değildir. O yüzden programcı formasyonu ile adım adım öğrenin.

Sağdan soldan snippet kopyalayıp yapıştırmakla programcı olunmaz. O yüzden bir kitap alın ve sayfa sayfa takip edin. O'Reilly kitaplarını tavsiye ederim. Bu arada bir önceki mesajımdaki PHP Official Manual tavsiyemi de unutmayın.

Tüm fonksiyonları, tüm formatlamaları ezberlemeye çalışmayın ama arada manuele göz gezdirin. Elinizin altında nasıl fonksiyonlar olduğunu öğrenin. Bazen işlerinizi çok kolaylaştıracak fonksiyonlar gözünüzden kaçabiliyor. Yada okuduğunuz kitap, yada takip ettiğiniz tutorialler eski bir sürümü anlatıyor ve yeni özellikler gelmiş olabilir.

Bu aşamada problemlerinizi önce kendiniz çözmeye çalışın. Hemen Google'a koşmayın. Bunun iki nedeni var, (1) çabalayarak ulaştığınız bilgi kalıcı olur (2) programcılık konusunda zihniniz bakir ise herkesten daha iyi bir yöntem bulabilirsiniz. Taklitçilerin bişey icad ettiği görülmemiştir.

Tabiki bu tüm dünyaya gözlerinizi kapatın demek değil. Boş zamanlarınızda, programcılık sorunlarına diğer programcılar nasıl çözümler getirmişler bakın. Daha iyi ve daha hızlı çözümler bulmaya çalışın.

Yazdığınız kodların hatasız ve hızlı olmasına dikkat edin. Aceleyle yazarken yaptığınız küçük bir hatayı tespit etmek çok zamanınızı alabilir.

Bazı programcılık kitaplarında KISS diye bir prensipten bahsederler. Keep it Simple, Stupid, yani kodu basit tut, anlaşılır tut... Fazla karmaşık hale getirme... Ben KISS prensibini kabul etmiyorum.

Programcılıkta amaç hatasız, etkin ve mümkün olan en hızlı programı yazmaktır. Programlar insanlar okusun diye yazılmıyor, bilgisayarlar okusun diye yazılıyor. O yüzden ahmaklar okuyunca anlamıycak diye barok bir program yazmaktan çekinmeyin. Bazen bir tekerleme gibi görünen çok kompleks kodlar en iyi çözümdür. Tabi bu işi yokuşa sürün demek değil. Herşey için bilmece gibi kod yazın, kimse işin içinden çıkamasın demek değil. Ama daha etkin kod yazmak için zekanızı kullanmaktan çekinmeyin, basitlik görecelidir, anlamayan anlamasın.

Corporate programcılar, yani programcılığı sevdiği için değil, mesleği olduğu için yapan ve şirketlerde programcılık yapan adamlar için geçerli prensipler "I like challanges, and I like to challange" diyen hacker programcılar için geçerli değildir. Bilişim sektörü para kazandırmaya başladığından beri çok sayıda ahmak bu sektöre girdi. Bunun sonucu olarak programcılıkta genel zeka seviyesi düştü. Müzikte de aynısı var işte. Bu tuzağa düşmeyin...

PHP'de biraz ilerledikten sonra başka dillere de göz atın. Birden fazla programlama dili öğrenmeniz hakimiyetinizi ve dilleri anlayışınızı geliştirir. Sıradan PHP programcılığı gelenekleri dışına çıkmak, diğer dillerdeki stratejileri PHP'ye uyarlamak programcılığınız için iyidir.

5. SQL öğrenmeye başlayın. Benim önerim PostreSQL kullanmanız. SQL sorgularını iyice öğrenin. Bazı SQL fonksiyonları veri sorgulamada çok büyük kolaylıklar sağlarlar. Eğer bir iş SQL sorgusu ile yapılabiliyorsa bu işi PHP'ye bırakmayın.

Veritabanı konusunda en önemli nokta veri tabanının tasarımıdır. Yani her bir tablo hangi verileri tutacak, alan büyüklükleri ve türleri ne olacak, tablolar arası ilişkilendirmeler nasıl yapılacak en kritik sorulardır. Veritabanı tasarımı çok ciddi planlama gerektiren bir konudur. Yanlışınızdan dönmeniz güç olabilir. Veritabanını tasarladınız, tabloları oluşturdunuz ve veri giren ve sorgulayan kodları yazdınız, bu aşamadan sonra veri tabanında yapacağınız tasarım değişiklikeri PHP kodlarını da değiştirmenizi gerektirecektir. Bu yüzden veritabanı tasarımı aşamasında çok dikkatli olun. Ben bu aşamada tüm sistemin algoritmasını kafamda kuruyorum. Bol bol not alıyorum. Kağıt üzerinde veri sorgulama senaryolarımı sınıyorum. Bu aşamanın önemini vurguluyorum ama öğrenilmesi güç bir şey değil. Basit veritabanlarından karmaşığa doğru ilerledikçe tasarım becerisi artıyor.

Veritabanından PHP ile sorgu yapma ve bunu HTML ile formatlamayı öğrenin. Zaten tablolara ve PHP ile döngü kurmaya hakim olduğunuz için bu sizin için kolay olacaktır.

İşin teorik kısmını burada noktalıyorum. Bu konularda sorularınız olursa bildiğim kadarıyla yardımcı olmaya çalışırım.

Pazar, Temmuz 20, 2008

KTM 450EXC




Bir süredir harddiskte beklemekte olan KTM 450EXC modelimi gün ışığına çıkarmaya karar verdim. Birkaç foruma ve galeriye gönderdim, birkaç yere daha göndermeyi düşünüyorum.

DeviantArt
CGTalk 3D WIP
IndoCG 3D WIP
3Dİmparatorluğu

Yorum ve eleştirilerinizi bekliyorum.

Salı, Temmuz 15, 2008

Işık hızı = 0 m/s

Harvard Üniversitesinden Prof. Lene Hau'un ışık üzerine çalışmalarına bir gözatın. Kendisi ışığı bir noktada durdurup tekrar harekete geçirebilen ilk kişi.

-273°C'ta aşırı yoğunlaştırılmış sodyum bulutu (Bose-Einstein yoğuşkusu) içine gönderilen ışık yavaşlatılıp durduralabiliyormuş.

Çalışmanın makalelerini okumak isterseniz onlar da Hau Lab sayfalarında.

Şu iki videoyu da tavsiye ederim... Light and Matter ve Light-stopper.

tureng.com Online Türkçe<>İnglizce Sözlük

Tureng Online sözlüğü çok kullanışlı buldum, tavsiye ederim.

tureng.com sitesindeki kaynaklar kısmında çok sayıda online sözlüğün bağlantıları da derlenmiş.

Ayrıca mobile.tureng.com m.tureng.com pocket.tureng.com pda.tureng.com adreslerinden sözlüğün taşınabilir bilgisayarlar ve cep telefonlarına uygun sayfasına ulaşabilirsiniz.

Cumartesi, Temmuz 12, 2008

PHP üzerine yüzeysel bir yazı

muziktek.net forumlarında PHP üzerine yazdığım bir yazı... Biraz değiştirip, düzenleyip buraya da ekliyorum.


İlk olarak hatırlatmam gereken şey, bir web uygulaması geliştirken grafik tasarımı ve programlama aşamalarının ayrı olduğudur. Yani PHP, SQL, JavaScript vs. bilmeniz size grafik tasarım konusunda pek yardımcı olmayacaktır.

Benim önerdiğim PHP öğrenme yöntemi işin en temelinden başlamaktır. Biraz C ve biraz Java biliyorsanız C dilinden fonksiyon kullanımıda ve Java'dan nesnelere zaten alışık olduğunuz için PHP öğrenmek sizin için çok kolay olacaktır. Hiç programlama bilmeyen biri için bile PHP oldukça iyi bir başlangıç noktasıdır.

PHP konusunda bilmeniz gereken ilk şey PHP'nin C gibi derlenen (compiled) bir dil değil, yorumlanan (interpreted) bir dil olduğudur. PHP ile yazılan web uygulamalarında ikili (binary) yani çalıştırılabilir (executable) bir dosya oluşturmayız. Betik (script) her defasında yeniden yorumlanır.

PHP'nin temel çalışma prensibini canlı bir örnek ile -yüzeysel olarak- anlatmaya çalışayım.

Önce sadece bir HTTP server ile çalıştığımızı düşünelim. Sunucu uygulaması olarak Apache kullandığımızı varsayalım. Önermesem de IIS gibi şeyler de var.

Eğer özel bir ayar yapmadıysanız Apache sunucuya gelen HTTP isteklerine htdocs dizini altındaki dosyaları gönderek cevap verir. Örneğin, dosya bir html dosyasıysa dosyayı olduğu gibi aktarır, ve istemci bu dosyayı bir ağ tarayısıyla (Firefox, IE, Safari, Opera vs.) istemişse bu tarayıcı gelen html dosyasını önce parse eder, yani okur, sonra render eder, yani tarayıcı sayfasına çizer. Eğer sayfa içinde grafik gibi elemanlar varsa bunlar için de sunucuya istek gönderir ve sunucudan gelen grafiği (jpeg, png, bmp, svg vs.) gerekli yere yerleştirir. Eğer tarayıcıda Flash, Quicktime gibi eklentiler yüklü ise bunları yorumlaması için ilgili eklentiyi çağırır.

Yani; tarayıcının adres satırına adresi (URL) yazıp gönder tuşuna basmamızla birlikte tarayıcı bir HTTP istemi (HTTP request) oluşturur, bunu TCP/IP paket yönetimine uygun kapıyı (port) kullanarak bildirir, istem Internet'e çıkar ve sunucuya ulaşır, sunucu (1) istemin yapıldığı portu dinliyorsa (2) o isteme cevap verecek uygulamaya sahipse (ve düzgün ayarlanmışsa) istemi dikkate alır ve ilgili uygulamayı haber verir, bizim örneğimizde Apache devreye girer, eğer istenilen dosya mevcutsa o dosyayı sunucu üzerindeki TCP/IP yöneticisine iletir, dosya paketlenir ve istemciye doğru yola çıkar. Aslına arada çalışan başka programlar var, ben özetliyorum, tam isabetli bir anlatım olmuyor.

Şimdi bu sunucuya bir de PHP sunucusu ekleyelim. Bu kez Apache kendine gelen isteği değerlendirirken, istek yapılan dosya içinde PHP betiği var mı diye bakar. Eğer PHP betiği varsa bu kez dosyayı istemciye olduğu gibi göndermez. Dosya PHP uygulaması tarafından değerlendirilir ve Apache'ye geri gönderilir. Apache, PHP'den geri gelen dosyayı istemciye yollar.

Şimdi bir html dosyasının içinden PHP'yi nasıl harekete geçirebileceğimize ve neler yapabileceğimize bakalım. PHP'yi göreve çağırmak için normalde HTML içinde bulunmayan etiketleri (tag) kullanırız, "<?PHP" ile başlayıp "?>" ile biten blok PHP'nin işleyeceği bloktur.

Peki PHP'ye neden ihtiyaç duyarız? PHP kullanarak statik HTML ile yapamayacağımız şeyler yapabiliriz. PHP bize sunucu tarafında çalışan bir programlama ortamı sunar. Matematiksel işlemlerden, veritabanı erişimine, grafik işlemlerinden, veri madenciliğine kadar pek çok şeyi mümkün kılar.

Eğer sunucu ile istemci arasında hızlı bir bağlantı varsa bilgisayarımızdan yerel olarak kullandığımız pekçok program tamamen sunucu üzerinde çalışacak şekilde yeniden tasarlanabilir. AJAX kullanımıyla da program oldukça akıcı hale gelir. Bunun pek çok örneği de var.

Bu arada bu işler için tek yol PHP değildir, başka yollar da var. PHP'nin yetersiz, yavaş kaldığı yerlerde, örneğin C ile hatta Assembly dili ile sunucu tarafı uygulamaları geliştirilebilir. Perl, Python, Ruby gibi diller de bu işler için yaygın olarak kullanılır.

PHP'ye alternatif bir de Coldfusion var. Hakkında çok fazla bilgim yok.

Veritabanı erişiminde de durum Apache ile PHP'nin iletişimine benzer. Apache PHP etiketini gördüğünde dosyanın işlenmesi için PHP'ye başvuruyordu. PHP de veritabanı işlemleri için veritabanı sunucusuna başvurur, üretilen sonucu alır, işler, ve Apache'ye aktarır.

Bu arada belirtmem gereken bir nokta var, Apache en sade kurulumda PHP'yi tanımaz. PHP ile iletişimini sağlamak için çeşitli ayarlar yapmak gereklidir. PHP de benzer şekilde en sade kurulumunda hiç bir veritabanı sunucusunu tanımaz, tanıştırmak için ayar yapmak gerekir.

Bu ayarlar özel yazılımlarla otomatik olarak yapılabilir. Apache+PHP+MySQL gibi paketler var. Tek kurulumla tüm ilişkilendirmeyi yapıp sistemi çalışır halde teslim ediyorlar. Ama ben teker teker kendim kurup elle ayarlamayı tercih ediyorum.

Örneği iyice pratiğe dökelim....

PHP ile veritabanı işlemi yapan bir web uygulaması geliştirmek istersek ilk olarak sunucuları yüklemememiz gerekecek. Önce Apache kurup, sonra PostgreSQL'i yüklerip en son PHP kurulumu ile sunucu tarafını hazır hale getiririz. Sunucu çalıştığımız bilgisayarın kendisi de olabilir. Yani aynı makine hem sunucu hem istemci olabilir. Eğer yerel ağda bulunan başka bir bilgisayarı sunucu yapmak istersek, bu sunucuya bir de FTP sunucusu kurmamız gerekecek.

Ben örneğimde istemci ve sunucunun aynı bilgisayar olduğunu varsayacağım.

Sunucu kurulumu tamamlandıktan sonra bir metin düzenleyicisine ihtiyacımız olacak. Aslında Windows üzerinde notepad bu iş için yeterli. Ama notepad'den daha iyi imkanlar sunan programcılara özel metin düzenleyicileri var. Bu programlar bize bazı kolaylıklar sağlarlar;

- Sözdizim yardımı yani syntax high-lighting; yazdığımız metni her an inceleyip komutları ayrı renk, parantezleri yarı renk, yorum satırlarını yarı renkte gösteriler. Bu bize çok büyük bir kolaylık sağlar.
- Bazı programların komutları tamamlama özelliği vardır, leb deyince leblebeyi anlarlar yani.
- If-Else, Switch-Case gibi sık kullanılan program bloklarını kolayca koda ekleyebilirler.
- Bütünleşik yardım sistemi sunarlar. İmleç bir komutun üzerindeyken yardım istendiğinde o komutun manuel sayfasını açarlar.
- Bütünleşik FTP istemcisi barındırırlar, sunucuya başlanıp bir php dosyasını çekerler, istediğiniz düzenlemeyi yaparsınız, dosyayı FTP'ye koyarlar.

Daha pek çok kolaylık sayılabilir. Bunlar aklıma ilk anda gelenler. Tüm özelliklerden vazgeçebilirim ama sözdizimi yardımı olmadan çok fazla hata yapıyorum ben.

DZSoft PHP Editor, PHP Expert Editor gibi programlar var Windows için. Ben iki örnek verdim ama onlarca var piyasada, bazıları ücretsiz ve gayet iyi programlar. Mac için ne var bilmiyorum. GNU'da ise yüzlerce editör var, hepsi özgür yazılım, hepsi ücretsiz.

Metin düzenleyicimizi seçtikten sonra PHP ile programlamaya başlayabiliriz. Benim genelde kurulumdan sonra ilk yaptığım şey phpinfo() komutu ile sistemi test etmek...

Yani önce metin düzenleyicisinde şöyle bir program yazıyorum;

<?PHP
phpinfo();
?>


Sonra bunu Apache kurulumunu nereye yaptıysam oradaki htdocs dizini altına info.php olarak kaydediyorum* ve Firefox'u açıp localhost yada 127.0.0.1 yada bilgisayarın IP adresini giriyorum. (Sunucu başka bir bilgisayarsa IP adresini girmek gerekir)

Karşıma PHP bilgi sayfası çıkıyor ve isteğim tüm bileşenlerin yüklü olduğunu görüyorsam (veritabanı bağlantısı gibi) yoluma devam ediyorum. Sorun varsa gidermeye çalışıyorum.

Bu aşamada en yaygın sorunlar, Apache'nin HTTP kök dizini ayarlarındaki hatalar, Apache ayar dosyasında PHP ile ilgili ayarlardaki hatalar, PHP'nin veritabanı sunucusu ayarları ve yerelleştirme (localization) hatalarıdır.

PHP ve Apache ikilisi sağlıklı çalışıyorsa ikinci basamak PHP ile PostreSQL bağlantısını sınamaktır. Veri tabanı sunucusu ilk kurulumda örnek bir veritabanı ile gelir. Bu veritabanına bağlantı yaparak bağlantımızı sınayabiliriz. Ben genelde sisteme bir de veritabanı sorgu sistemi kuruyorum. Bu sistemler iki çeşit olabilir, (1) PGAdmin, SQLMaestro gibi çalıştırabilir (exe) programlar (normal yükleme yapılan programlar) (2) PHPMyAdmin gibi PHP tabanlı, Apcahe htdocs altına kopyalanıp, tarayıcı üzerinden çalışan sistemler. Bu sistemler PHP kullandıkları için eğer veritabanına bağlanabiliyorlarsa PHP+SQL sistemi çalışıyor demektir.

Böyle bir programı kurduktan sonra o program içinden önce bir veritabanı sonra bu veritabanı için bir tablo oluşturarak devam ediyorum.

PostgreSQL için;

<?PHP
$dbconn = pg_connect("host=localhost port=5432 dbname=mary")
or die("Could not connect");
echo "Connected successfully";
pg_close($dbconn);
?>

MySQL için;

<?PHP
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
or die('Could not connect: ' . mysql_error());
echo 'Connected successfully';
mysql_select_db('my_database') or die('Could not select database');
?>


Eğer bağlantı başarılıysa veritabanı oluşturaya ve sorgulamaya geçiyorum.

PHP hakkında çok sayıda kaynak var.

Benim ilk önereceğim kaynak ise www.php.net sitesindeki PHP belgeleri; http://id2.php.net/docs.php

İster bilgisayarına indirin, ister siteden okuyun... Ben Extended HTML sürümünü öneririm. Ben ne öğrendiysem oradan öğrendim. Belgelerde bahsedilmeyen çok az şey var, onlar da ilk günlerde çok gerekli değil... Hatta belki yeni manuel sürümlerine dahil edilmişlerdir.

Bir de phpfreaks.com var. Uzun zamandır bakmıyordum, formatı değişmiş. Buradan da faydalanabilirsiniz.

....

Neyse... Özetle ben herşeyin önce manuel yolunu öğrenmek gerek diyorum... Şuradan template, oradan kod parçası aşırıp web uygulaması geliştirdim diye gezen vatandaşlardan olmamak lazım.


* Böyle bir dosyayı, halka açık bir sunucu üzerinde asla bırakmamak gerekir. phpinfo() komutu kötü niyetli kişiler için sistem hakkında çok güzel bilgiler sağlar.

Gitar çalışırken yaptığım hatalar

Sol elimi sakatlayıp uzun süre ara vermiştim gitara. Yaklaşık bir ay önce tekrar başladım ve tekniğimi yeniden gözden geçirerek daha bilinçli çalışmaya başladım. Gerçi işten güçten fazla çalışamıyorum ama...

Hatalarımın benzer hataları yapanlara ve yeni başlayan arkadaşlara örnek olabileceğini düşünüyorum.

Önce hatalarımı sıralayayım;

- İlk hatamın gereğinden fazla güç uygulamak olduğunu farkettim.

- İkinci hatamın metronomu hızlandırmaya çalışırken o anki kapasitemin üzerinde hızlarda çalmaya çalışmak olduğunu farkettim. Özellikle metromonla çalışırken bir süre sonra çalış kalitesi değil, metromonun üzerinde yazan rakam önemli oluyor. Ayrıca; örneğin solo partisyonunu çalışırken elimin alışık olduğu kısımlarda biraz hızlanma, zor kısımlarda biraz yavaşlama olduğunu farkettim.

- Üçüncü hatam oturma pozisyonumun kolumda ve bileğimde fazla gerilmeye neden olmasıydı.

- Dördüncü hatam tonu isteğim sertlikte olsa da klayvesi rahat olmayan bir gitarla çalışmaktı.

Bu hataları düzeltmek için şöyle yöntemler kullandım;

Aslında bunlar temel bilgiler, yeni hiç birşey yok, ama bazen gözardı ediyoruz.

- Yıllardır çalmadığım için parmak uçlarımda nasır kalmamıştı ve tellere fazla güç uygulayamıyordum. Bu yanlışlarımdan birini düzeltmeme yardımcı oldu; tele gereğinden fazla güç uygulamadan çalmaya çalıştım. Çok yavaş egzersizlerle kas belleğimi en az güç uygulayıp doğru sesi alacak şekilde geliştirmeye çalışıyorum. Şimdi parmak uclarımdaki deri kalınlaşması çok az, çok çalışsam bile aşırı sertleşmiyor.

- Hız problemlerini çözmek için, ilk önce metronomsuz olarak çalışıyorum, ve reaksiyonu yavaş basamaktan yürütüyorum. Yani bir partisyonun yavaş çaldığım yerine göre hızımı ayarlıyorum. Partisyonun bazı yerlerini ayırıp çalışıyorum, adım adım diğerler kısımlara bağlıyorum.

- Normalde çalmadığım, hiç bilmediğim akorlar öğrendim. Örneğin, jazz'da sıkca kullanılan 7'li akorların bazılarını öğrendim. Bunları ilk defa çalmaya çalışırken duruşumu düzeltmek zorunda kalıyorum. Yıllardır çaldığım akorları, dizileri çalarken duruşuma fazla dikkat etmeden çalabiliyorum ama yeni bir akor yada tuhaf yürüyüşlü bir dizi özen istiyor. İşte bu özeni her ne çalarsam çalayım göstermeye başladım. Yeni akorlar öğrenirken kas belleğimin yanlış gelişmemesi için her defasında aynı şekilde basmaya ve fazla güç uygulamamaya çalışıyorum. Eskiden bildiklerimi ise çok yavaş bir şekilde çalıp nerede fazla güç uyguluyorum belirlemeye ve düzeltmeye çalışıyorum.

- Klavyesi rahat bir gitar aldım, E bemol akortladım ve telleri de çarpma yapmayacak en düşük konuma getirdim. Hammer-on, pull-off ve sweeplerde ve tremololarda alıştığım performansı göstermiyor, ama ellerim biraz daha alıştığında telleri aşamalı olarak yükseltmeyi planlıyorum.

- Metronomu düzeltmek için bir partisyonu önce; 10 dakika kadar her vuruş bir nota -örneğin- 180 bpm çalışıyorum, sonra 10 dakika her vuruş iki nota 90 bpm, sonra çeyrek notalarla 45 bpm'de uzun süre çalışıyorum. Arada bir metromonu durdurup yeniden başlatıyor ve vuruşları hatasız yakalayabildiğimi duyduktan sonra 8'li notalara geçip, bu kez metromonu 45, 50, 60, 70 şeklinde hızlandırmaya çalışıyorum (Bu forumda HititGunesi yazmıştı daha önce bunu).

Bu çalışmayı yaparaken uyguladığım başka birşey var, eğer yanlış birşeyse düzeltin; ilk başta bastığım her notayı görerek bir sonraki basamağı planlayarak basıyorum, çaldığımı çok iyi dinliyorum. Çalışım akıcı bir hale geldikten sonra sanki başka biri çalıyormuş gibi kendimi dinlemeye çalışıyorum. Yani basacağım yerleri hiç düşünmeden bir sonraki notanın sesini düşünmeden... Bir süre sonra çaldığım dizi içinde kalıplar (paternler) oluşmaya başlıyor. Sanki çaldığım parçadan loop almışım, defalarca dinliyormuşum gibi. Bu aşamada ara sıra kendime gelip duruşumu, tellere uyguladığım gücü kontrol ediyorum. Kollarımda, sırtımda gereksiz bir gerilme var mı diye kontrol ediyorum. Eğer varsa en başa dönüp daha yavaş bir tempo ile daha kontrollü olarak yeniden başlıyorum.

Asla uykusuzken, yorgunken, kafam başka şeylerle meşgülken çalışmıyorum. Çalışırken, örneğin MSN'den biri ile yazışmıyorum, çünkü karşıdan yanıt beklerken farkında olmadan dikkatim sürekli mönitöre kayıyor. Kendimi dış dünyadan ne kadar soyutlarsam o kadar verimli bir çalışma oluyor. Şu günlerde verimli bir çalışma yapacak fırsatı fazlaca bulamasam da bu yöntemler ile iyi bir gelişme kaydedilebileceğini düşünüyorum.

Enstrüman konusunda tecrübeli arkadaşların yazdıklarım hakkında yorumlarını ve eleştirilerini duymak isterim.

(
Bu yazıyı 6 Tem 2008 tarihinde muziktek.net forumuna yazmıştım.)

Vikipedi V-Ray maddesi ve Türkçe 3D render kavramları

Vikipedi'ye yeni bir madde yazdım; V-Ray

Elimden geldiğince Türkçe terimler kullanmaya çalıştım; Indirect Illumination, Irradiance Map, Light Cache, Photo Map, Progressive Path Tracing, Subsurface Scaterring gibi terimlere yakışır Türkçe karşılıklar bulmaya çalıştım.

Render sözcüğüne bile Türkçe karşılık bulamazken render kavramlarını Türkçeleştirmek gerçekten güç.

Türkçeleştirdiğim kavramlar şunlar;
  • Işıklanım Haritalama (Irradiance Map)
  • Işık Önbelleği (Light Cache)
  • Foton Haritalama (Photon Mapping)
  • Doğrudan Hesaplama (Direct Computation)
  • Dolaylı Işıklanma (Indirect Illumunation)
  • İlerlemeli Yol İzleme (Progressive Path Tracing)
  • Yüzey altı ışık dağılımı/saçılımı (Subsurface scattering)
  • Malzeme (Material)
  • Yordamsal güneş ve gökyüzü (Procedural sun and sky)
  • Işık sıçraması (Light bounce)
  • Schlick Örnekleme (Schlick Sampling)
  • Resim Örnekleme (Image Sampling)
  • Kırık giderme (Antialiasing)
  • Görüntü Tabanlı Işıklandırma (Image Based Ligthing)
Maddeye bir göz atarsanız ve yorumlarınızı bana iletirseniz sevinirim.