HTML5, CSS3, Javascript, jQuery, Wordpress, UI, UX, Front-end Development, – Volkan Altınbaş

Seboreik Dermatit Doğal Tedavi

Lise yıllarımın bitişi ve iş hayatına atıldıktan bir kaç sene sonra burun kenarlarımda hafif döküntüler ile karşılaşmaya başlamıştım. İlk zamanlarda çok dikkatimi çekmeyen bu döküntüler ilerleyen zamanlarda kaşıntı ve kızarıklığın dahada artması ile birlikte daha çok dikkatimi çekmeye başlamıştı. Bunun üzerine bir cilt doktoruna görünmeye karar verdim.

Yapılan kontrol sonrasında yaşamış olduğum bu belirtilere Seboreik Dermatit adında bir hastalığın sebebiyet verdiğini ve bu hastalığı tetikleyen en büyük etkenin ise STRES olduğunu öğrendim. Doktorum ayrıca şu anda yaşamış olduğum ve stresi tetikleyen faktörlerin çözümü için bir psikolog ile görüşmemin doğru olacağını söylediğinde hastalık önemi benim için dahada fazla artmıştı. Tedavi için nasıl bir yol seçmeliyiz konusunda yaptığımız konuşma sonrasında bu hastalık için kesin bir tedavi bulunamadığını mümkün olduğunca stresten uzak durmam gerektiğini söyledi. Hem saçımdaki hemde suratımdaki döküntüler için bana bir şampuan ve şu anda adını hatırlayamadığım kortizon içerikli bir krem verdi. Bahsetmiş olduğum yıllardan bu yana o kadar zaman geçtiki şu anda tedavinin ilk etkilerinin ne olduğu konusunu hatırlamıyorum fakat ilerleyen sürelerde çok daha kötü hale geldiğini söyleyebilirim.

İlerleyen yıllar içinde bu hastalık konusunda bir ilerleme varmı araştırmaya devam ettim ve başka doktorlarlada görüşmelerim oldu. Fakat sonuç hiç bir zaman değişmedi. Görüşmelerde sonunda aynı sonuçlar ve birbirinin benzeri kortizon içerikli kremler. O zamanlar kimden duyduğumu hatırlamıyorum fakat uygulanan tedavi ve ilaç içeriği konusunda yaptığım konuşmalarda kortizonun cilde inceltme etkisi olduğunu ve sadece belli bir süre hastalığımı baskılamak dışında birşey yapamadığını öğrendiğimde bu hastalık için doğal tedavi yöntemleri aramaya başladım. Yine bir doktorun tavsiyesi ile kayısı yağı kullanarak hastalığın seyrettiği bölgelere sürerek bir süre bu tedaviyi uyguladım. Diğer tedavi yöntemlerine nazaran daha iyi sonuç veriyordu fakat ilerleyen senelerde kayısı yağındanda aynı etkiyi görmemeye başlayarak yine bir doktor arayışına ve yine aynı sonuçlara duymaya başlamıştım. Artık hiç bir doktorun vericeği tavsiyeyi dinlemek istemiyordum çünkü o kadar uzun zamandır bu hastalık ile başbaşaydımki doktorlardan bile daha bilgili hale gelmiştim.

Çaresizlik içinde yabancı dilimin gelişmesi ile birlikte yurt dışındaki sitelerde benimle aynı hastalığı paylaşan insanların neler yaptığını araştırken şu anda aslında bu makaleyi yazmamın ve uzun zamandır kullandığım tedaviyi sizlerle paylaşmaya karar verdim.

Öncelikle şunu söylemem gerekiyor. Bu hastalığın şu anda bulunabilmiş kalıcı bir tedavisi bulunmuyor. Doktorların söylediğine görede hayatımızın sonuna kadar beraber yaşamamız gereken bir hastalık bu. Madem bu hastalığı ömrümüz boyunca yaşıyacaz o zaman günlük rutinimiz içinde yapıcağımız bir kaç ufak uygulama ile bu süreci en rahat şekilde neden geçirmeyelim. Lafı daha fazla uzatmadan şu anda kullanmış olduğum tedaviyi, ayrıca bu hastalığın seyri sırasında dikkat etmeniz ve uygulamanız gereken püf noktalardanda bahsedicem.

Benim bir doktor olmadığımı ve vermiş olduğum bilgiler dahilinde başınıza gelecek herhangi bir kötü olaydan durumdan sorumlu olmayacağımıda belirtmek istiyorum. Tek amacım uzun zamandır çaresizce bu hastalık için tedavi arayan kişilere küçükte olsa bir yardımda bulunmak.

Doğal Tedavi Yöntemi

Tedaviye geçmeden önce hastalığın detayları merak edenler http://en.wikipedia.org/wiki/Seborrhoeic_dermatitis altından bu bilgiye ulaşabilirler.

Tedavinin adı “Seb derm – Treating seborrheic dermatitis with raw honey and virgin coconut oil” olarak geçiyor ve orjinal makaleye http://www.rosaceagroup.org/The_Rosacea_Forum/showthread.php?20789-Seb-derm-Treating-seborrheic-dermatitis-with-raw-honey-and-virgin-coconut-oil ve http://rosacea-support.org/community/blog/Auburn/how_i_successfully_treated_my_seb_derm_b-6.html altından ulaşabilirsiniz.

Tedaviyi türkçeye çevirisini ise “Hisdistancevisi yağı ve saf bal ile Seboreik Dermatit tedavisi” olarak yapabiliriz. Tarif tamamen 3 adet doğal malzemelerden oluşmakta ve bu malzemelerin kullanımında ölçeklerin ve verilen zamana sıkı şekilde bağlı kalmanız önem arzediyor.

Tedavi iki ana kısımdan oluşmakta. İlk kısım 1 ay sürecek bir kür iken, ikinci kısım ise günlük yaşantınız içinde sürdürmeniz gereken daha kısa bir tedaviden oluşuyor.

4 hafta sürecek tedavi süreci 2 günde bir üç saat kullanılacak bir maskeden oluşuyor.

Malzemeler

Hazırlanış ve Uygulanması

Boş bir kaseye 2 çay kaşığını tam olarak dolucak şekilde bal ekliyorsunuz. Daha sonra yarım çay kaşığı içme suyunu ki buradaki oran çok önemli aksi takdirde hazırlayacağınız maskenin kıvamını tutturamazsınız. 10 sn kadar kase içinde bal ve suyu karıştırıyor ve balı sürülebilecek bir kıvama getiriyorsunuz. Hazırlanan karışımı suratınız ve saçlarınız olmak üzere tüm baş kısmınıza elinizle çokda bastırmadan yedirerek sürüyorsunuz. Buradaki püf nokta başınızda mümkün olan heryere bu karışımı sürüyor olmanız. Karışım 3 saat boyunca suratınız ve saçınızda kalıyor ve sürenin sonunda ılık bir su ile hem suratınızı hemde saçınızı duruluyorsunuz. Duruladıktan sonra suratınızın nemi kaybolmadanki burası çok önemli hisdistan cevisi yağınızdan bir damla parmağınıza damlatıp parmağınızla damlattığınız bu yağı hafif ezdikten sonra suratınızda aktif olarak seyreden bölgelerin üzerine nokta nokta sürüyorsunuz.

Ertesi gün aslında bu tedavi sonrasında her gün uygulayacağınız rutin olan sabah ve akşam suratınızı öncesinde içme suyu ile nemlendirip arkasından çeyrek kaşık balı suratınızda yaklaşık 20 – 25 saniye sürüp duruladıktan sonra yine hindistan yağını sürdüğünüz rutinden oluşmakta.

3 saatlik olan tedavi süresi olan 4 hafta bittiğinde yukarıda yazdığım günlük rutine devam etmeniz gerekiyor. Aksi takdirde kısa süre herşey yolunda giderken bir anda yine eski sıkıntılı günlerinize tabi daha seyrek yaşayarak dönüyorsunuz.

Burada eğer yine ciddi sıkıntılar yaşamaya başladıysanız 1 aylık kürü terkardan uygulamanızda bir sakıncada yok. Yada yine haftada bir kere günlük rutin dışında 3 saatlik tedaviyide eğer vaktiniz uygunsa uygulayabilirsiniz.

Bundan sonrası tamamen size kalmış durumda. Ayrıca hastalığın aktif olduğu süreç içinde mümkün olduğunca yağlı yiyecek, kuruyemiş, çay, kahve, domates gibi asitli yiyeceklerden uzak kalmakta bu süreci azaltmakta. Ayrıca 2 günde bir duş almanız ve eğer erkek iseniz düzgün aralıklarla traş olmanızda bu süreçte etkili oluyor. Yaz aylarında ise güneş ve deniz bizim en büyük dostumuz.

Sağlıcakla kalın

Self Invoking Anonymous Function Bölüm 2

Makalemin ikinci bölümünde Self Invoking Fonksiyon tanımlamaları için kullanılan ve Douglas Crockford tarafından önerilen popüler bir pattern’den bahsetmek istiyorum. Eğer Self Invoking Fonksiyonları hakkında bilgi sahibi değilseniz konu ile ilgili olan bir önceki makalemi okumanızı tavsiye ederim.

;(function(window, document, undefined){
  ...
})(window, document)

İlk başta bakıldığında fonksiyon bloğundan önce tanımlanan ; işaretinin ne işe yaradığını, fonksiyon’a atanan window, document, undefined gibi global değişkenlerin neden tekrardan tanımlama ihtiyacı duyulduğu düşünebilirsiniz. Düşünüldüğünde garip gelebilecek bu tanımlamaları bu kadar popüler hale getiren sebepler nelerdir? Hadi gelin beraberce inceleyelim.

self-invoking fonksiyonu tanımı öncesinde “;” kullanımının önemi

Eğer bir self-invoking fonksiyonu ile çalışacaksanız bu fonksiyonu çağırmadan önce, daha önce eklemiş olan kod bloklarının düzgün şekilde kapatılıyor olmasına dikkat etmemiz gerekmektedir. Aksi durumda fonksiyonumuz çalışmayacaktır. Bu problemin oluşmamasını garantileyebilmek için fonksiyon tanımlamamız yapılmadan hemen önce ; işareti eklenilmiştir.

var x = 42
(function () { alert("Foo")})();​ // Fonksiyonumuz çalışmayacaktır

http://jsfiddle.net/PWZu6/

var x = 42
;(function () { alert("Foo")})();​ // Fonksiyonumuz çalışacaktır

http://jsfiddle.net/sVmqz/

window ve document parametreleri

Fonksiyon içinde çağrılan local değişkenler global değişkenlere oranla biraz daha hızlı işletilirler. Bir çok script bloğumuzun içinde kullandığımız window, document global objelerinin isimlerini kısaltarak referans değişkenler oluşturmak bize birazda olsa byte kazanımı sağlayarak dosya boyutlarını düşürmemizde fayda sağlayacaktır. Ayrıca kullanılan global objeler üzerinde bir başka script tarafından yapılan değişikliklerden etkilenmediğimiz gibi bizim yaptığımız değişikliklerdende diğer scriptler etkilenmiyecektir.

// Normal
(function(window,document,undefined){ ... })(this,this.document);
// Küçültülmüş
(function(b,a,c){ ... })(this,this.document);

“undefined” parametresi

ECMAScript3 kurallarına göre undefined global objesinin değerini herhangi bir kişi tarafından rahatlıkla değiştirilebilir. Böyle bir durumda kod içinde yaptığımız undefined karşılaştırmaları doğru sonucu vermeyecek ve kod akışımızın yanlış ilerlemesini sağlıyacaktır. Bu problemin önüne geçmek için fonksiyonumuzun son parametresi olarak undefined global değişkenini eklemimiz bu problemin önüne geçicektir. Bu sorun ECMAScript5 içinde düzeltilmiştir.

undefined = true; // true
(function (undefined) {
  alert(typeof undefined); // "undefined",
})();

İlgili Makaleler

Self Invoking Anonymous Function Bölüm 1

Bu makalemde javascript içinde bence önemli bir yere sahip olan self-invoking anonymous function olarak bilinen fonksiyon tipinden ve yaygın olarak tercih edilen kullanım şekillerinden bahsediyor olucam.

Self-Invoking Anonymous Function

Self-invoking anonymous diğer fonksiyon tanımlamalarının aksine kendine ait bir ismi olmayan ve oluşturulduğu anda otomatik olarak çalışmaya başlayan fonksiyon tipidir.

// Self-Invoking Anonymous Fonksiyon Tanımı
(function(){
 // code…
})();

// Normal bir fonksiyon tanımı
function foo() {
 // code…
}

Yukarıdaki kod bloklarını dikkatli incelediğinizde ilk fonksiyonun kendine ait bir ismi olmadığı gibi alışık olduğumuzdan farklı bir syntax’a sahip olduğunu farkediceksiniz. Bildiğiniz gibi javascript içinde bir fonksiyonun çalışabilmesi için fonksiyon isminden sonra () işaretlerinin eklenmiş olması yeterlidir. Yukarıdaki örneği göz önüne aldığımızda foo isimli fonksiyonun çalışabilmesi için fonksiyon tanımı yapıldıktan sonra aşağıdaki şekilde çağırılması gerekmektedir.

function foo() {
 // code…
}
foo();

Aynı sıralama self-invoking fonksiyon tipi için geçerli değildir. Çünkü fonksiyon tanımlanması yapılır yapılmaz otomatik olarak kendiliğinden çalışmaya başlayacaktır. Aşağıdaki örnekte bunu rahatlıkla görebilirsiniz.

(function(isim, soyad) {
 alert(isim +" "+ soyad); // Volkan Altınbaş
})("Volkan", "Altınbaş");

http://jsfiddle.net/9wCx6/

Self-Invoking Fonksiyon tipini nerede kullanabilirim?

En çok tercih edilen kullanım şekli bir Scoping oluşturarak içinde yazılmış olan script tanımlarının diğer global ortamda daha önceden tanımlanmış olabilecek diğer scriptler tarafından etkilenmeyeceği bir koruma duvarı oluşturmaktır. Bir plugin yazdığınızı hayal edin. Plugininiz içinde foo() adında bir fonksiyonumuz bulunuyor. Fakat siz daha önce bu isimde bir fonksiyonun başka bir plugin tarafından kullanılıp kullanılmadığından haberdar değilsiniz. Eğer foo() isimli fonksiyonu bir self-invoking function içinde değilde gelişi güzel şekilde global bir fonksiyon olarak tanımlarsanız en son tanımlanan fonksiyon bir öncekini yok edicek ve yerini kendisi alacaktır. Bu bir fonksiyon için olabildiği gibi global olarak kullanılan bir değişken içinde aynı şekilde işleyecektir. Bu durumdan kurtulmanın en kolay ve basit yolu self-invoking fonksiyon kullanımıdır. Aşağıdaki örneklerle konunun daha iyi anlaşılacağını düşünüyorum;


// x.js
function foo() {
 alert("Volkan")
}

// y.js
function foo() {
 alert("Hakan")
}

foo(); // Hakan

http://jsfiddle.net/nHKta/

y.js dosyasının x.js dosyasından sonra sayfaya yüklendiğini hayel edin. Sonuç x.js içinde tanımlanmış olan foo() fonksiyonunun y.js içinde tanımlanan foo() fonksiyonu tarafından ezilerek yerine geçmesi sonucunun “Hakan” olması ile sonuçlanacaktır. Aynı işlemi self-invoking fonksiyonu içinde tanımlayarak denediğinizde konuyu daha net anlıyacağınızı umuyorum.


// x.js

function foo() {
 alert("Volkan")
}

// y.js
(function() {
 function foo() {
   alert("Hakan")
 }

 foo(); // Hakan

})()

foo(); // Volkan

http://jsfiddle.net/hyGa9/

İlgili Makaleler

IE6 içinde yaşanan iframe horizontal scrollbar problemi

Günümüzde ajax kullanımı ile birlikte iframe kullanımı azımsanmayacak şekilde azaltılmış olsada, bazı durumlarda iframe kullanmamız gerekiyor.

Iframe varsayılan olarak atamış olduğumuz yükseklik ve genişlik değerinden daha yüksek yada geniş bir içerik ile karşılaştığında scroll çıkartarak bize içeriği gezme imkanı sunar. Fakat IE6 burada bize yine bir oyun oynuyor ve içeriğin yüksekliği iframe için atamış olduğumuz yüksekliği aştığı anda iframe’in genişliği iframe için atamış olduğumuz içerikten daha düşük olduğu halde yatayda scroll çıkartıyor. Karışık bir tanımlama oldu ama umarım hatanın ne olduğunu anlatabilmişimdir.

Çözüm ise basit. Iframe içinde açılacak olan sayfamızın <head> tagları içinde aşağıdaki style tanımlamasını eklememiz sorunun çözülmesi için yeterli olacaktır.

<!--[if IE 6]>
<style type="text/css">
  html {overflow-x:hidden}
  body {overflow-y:hidden}
</style>
<![endif]-->

Yukarıdaki style tanımını incelerseniz başında ve sonunda <!–[if IE 6]>…<![endif]–> benzer bir tanım olduğunu görüceksiniz. Bu tanımlamayı kullanmamın nedeni eklemiş olduğum kuralın sadece IE6 için işletildiğine emin olmak ve bu hataya rastlanmayan diğer tarayıcıları etkilememesini sağlamaktır.

Opera tarayıcısı üzerinde jquery & prototype kütüphanelerinin kullanımı sırasında yükseklik ve genişlik değerlerinin yanlış hesaplanması

Bir projemizde jquery 1.4.2 ve prototype 1.6.2 sürümlerini bir ara kullanmak zorunda kalabiliriz. İki kütüphaneyi bir arada kullandığımızda Opera içinde bir elemanın yükseklik yada genişlik değerini öğrenmeye çalıştığımızda almış olduğumuz değerin yanlış hesaplandığını görüceksiniz. Eğer her iki kütüphanenin daha eski sürümlerini kullanıyorsanz bu problem ile karşılaşmamanız normal.

Problemin çözümü için kütüphane dosyalarında ufak değişiklikler yapmamız gerekiyor. Problemler kütüphane sahiplerine bildirilmiş ve sanırım bir sonraki sürümlerinde çözülmüş olacaktır.

Gelelim bu problemi nasıl çözüceğimize;

Bu problemi iki farklı yöntem kullanarak çözebiliyoruz. Fakat yöntemlerden biri başka problemleride meydana getirebileceğini düşündüğümden en sağlam çözüm olacağını düşündüğüm yöntemden bahsediyor olucam.

Jquery kütüphanemizin developer’lar için hazırlanmış olan versiyonunu indiriyoruz. Daha sonra return (“scrollTo” in elem && elem.document) ? // does it walk and quack like a window? kod bloğunu bularak bu kod bloğunu return (“scrollTo” in elem && elem.document && !elem.parentNode) ? // does it walk and quack like a window? ile değiştiriyoruz. Tabiki developer sürümünün boyutu yüksek olduğundan bu sürümünü sıkıştırarak kullanmak isteyebilirsiniz. Burada yardımınıza Closure Compiler yetişiyor. Yapmanız gereken tek şey http://closure-compiler.appspot.com/home sitesine girmek ve sol taraftaki alana kod bloğunu yapıştırıp Compile düğmesine basmak. Daha sonra sağ taraftaki sonucu kopyalayarak yolumuza devam edebiliriz.

İlgili makaleler

sonraki postalar »