Erbilen.net 5. yılını dolduruyor!

13 yorum

Bundan seneler önce ilk kişisel blog tutmaya karar verdiğimde soyadımı içeren erbilen.com adresini almıştım. Uzun bir sürede orada blog tuttuktan sonra hatırlayamadığım sebeplerden domain değiştirdim ve sanırım tayfunerbilen.com domainine geçmiştim.
Bunlardan sonra ise yani yaklaşık 5 sene önce erbilen.net adresini aldım. Mart’ın 5’inde 5. yılını dolduracak olan kişisel bloğum için uzun zamandır yapmadığım değişiklikleri yapmak ve yetiştirmek istiyorum.

Öncelikle şunu belirteyim, prototurk.com domainini uzatıp elimde tutacağım çünkü bir mazimiz var. Ancak artık bu girişime devam etmeyeceğim, onun yerine bloğuma ağırlık vererek gerek kişisel, gerek eğitim ile ilgili içerikleri bu blogta toplayacağım. Biraz daha blog havasından çıkarıp css-tricks tarzında bir şey yapmaya çalışacağım. Bu süreçte zaten sizde değişiklikleri yakından takip edebilirsiniz, gizlimiz saklımız yok 🙂

Evvela yıllar önce responsive kodlamayı öğrenip yıllardır kendi siteme neden uygulamadığımı düşünüyorum. Biliyorum mobilden girince o rezalet görüntüyü bana yakıştırmıyorsunuz, bende kendime yakıştıramıyorum.
Bu yüzden yeni tasarımda mobil ve tablete de çok önem vereceğim. Okunabilirliği en üst düzeyde tutacak ve mümkün olan en sade ve kullanışlı arayüzü bulmaya çalışacağım.

Muhtemelen yine ben tasarlayacağım, biraz daha farklı olması için elimden geleni yapacağım. Ama şuda bir gerçek ki, terzi kendi söküğünü dikemiyor arkadaşlar 🙂

Yine de büyük değişiklikler 5 mart 2017 günü hazır olacak, olmalı! O gün yeni temam, yeni felsefem ve düşüncelerimle tekrar burada görüşmek üzere, beni takip eden herkese çok teşekkür ederim, adamın dibisiniz!

Konuyu görmek için tıklayın

Windows’da SSH Key Oluşturmak

1 yorum

Eğer sizin içinde SSH Key oluşturma zamanı geldiyse ama bu işlemi ilk kez yapacaksanız ve ne yazık ki bir windows kullanıcısı iseniz, bu yazımda sizlere Windows’da kolayca nasıl SSH Key oluşturabileceğinizi göstereceğim.

Öncelikle bu işlem için aşağıdaki linkten PuTTYgen programını indirin.
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Programı çalıştırıp Generate dedikten sonra yüklenen barın yavaş olduğunu fark edeceksiniz, çünkü şifreleme için sizin fare kombinasyonlarınızı kullanıyor. Program üzerinde farenizi rasgele hareket ettirerek işlemi tamamlayın.

Sonuç olarak herşey yolunda gittiyse aşağıdaki ekranla karşılaşacaksınız.

Kırmızı olarak işaretlediğim yeri alıp SSH Key kodunu yazmanız gereken yerde kullanabilirsiniz.
Sarı alanda yazacağınız şifreyi SSH Key i kullandığınız yerde şifre olarak kullanacaksınız.
Mavi alanlarda ise oluşturduğunuz SSH Key dosyalarınızı kaydedeceksiniz. Zira onlara ihtiyacınız olacak!

Konuyu görmek için tıklayın

Yeni eve taşındık!

14 yorum

Bildiğiniz gibi Malta’ya gelirken darkod ofisini kapatmıştım, ancak gelişimin 10. ayına girerken nihayet kardeşlerim de benimle aynı şirkete çalışmaya geldiler. Yeniden bir ekip, bir aile olduk. Eskiden 1 + 1 kendimi idare edeceğim bir yerde oturuyordum, o ortamı falan çok güzelleştirmiş aslında baya da sevmiştim ama işte evin rutubetli olması, karanlık olması, havasız olması gibi etkenler beni bir süre hastalıklarla boğuşmamı sağladı. Bundan dolayı da artık 3 kişi olunca yeni bir eve geçme kararı aldık.

Ve ne şans ki, malta şartlarında uygun fiyata güzel bir ev bulabildik. 3 odası olan, büyük bir salona sahip ki bizim için önemli, sonuçta odalar sadece yatmak için, asıl yer iş sonrası çalışma ortamıydı 🙂

Şimdilik benim evdeki malzemelerle kurmaya başladık ortamı, güzelde oldu aslında. İçime baya sindi ev, arkada koca bir terası var en çok onu sevdim. Yazın gelsin barbeküler gelsin nargile keyifleri 🙂

Bakınız şu samimi ortamda kim çalışmak istemez, yeni projeler geliştirmek istemez efenim? 🙂

Konuyu görmek için tıklayın

Iframe ve parent ilişkisi

3 yorum

Günün birinde iframe içerisindeki fonksiyona erişmeniz ya da iframe’den parent’a değer göndermeniz gerekirse bu videoyu hatırlayınız efendim 🙂 İyi seyirler.

Ek bilgi;
Eğer iframe’de parent’da oluşturduğunuz bir fonksiyonu çalıştırmak isterseniz. Örneğin test() fonksiyonunu parent’da oluşturduğunuzu varsayalım, iframe’de şu şekilde çağırabilirsiniz;

parent.test();
Konuyu görmek için tıklayın

“Başka Bir Şey” Videoları

6 yorum

2016 yılının şüphesiz en güzel şeyi “başka bir şey” adında bir kanalın açılıp bizlere ilham vermesiydi. Ancak sebebini bilmediğim bir şekilde kanaldaki tüm videolar silindi ve ilginç bir açıklamayla bizlere veda ettiler. Yine de youtube’da başkaları tarafından videolar tekrar yüklendi, bende bu ilham verici 12 bölümlük video serisin kaybetmemek adına Drive’ım da arşivlemeye karar verdim.

Kadir Köymen ve Edelkrone’un bu güzel ve ilham verici hikayesini sizde mutlaka arşivlerinizde saklayın.

Tekrardan “başka bir şey” kanalını açtıkları için Edelkrone ekibine çok teşekkür ederim. Ayrıca ürünlerini de çok beğenerek takip ediyorum, fotoğrafçılık ya da video çekimleriyle ilgilienen herkesin bakmasını tavsiye ederim.

Videolara şuradan ulaşabilirsiniz;
https://drive.google.com/drive/folders/0BxX-AwfGLF5vTjEydHItdktGWlU

Konuyu görmek için tıklayın

Youtuber olmak için adım adım!

7 yorum

Geçen sene bir çok kez video çekip youtuber’lığa adım atmak istedim. Yani içinde benim olduğum, beni göreceğiniz türden videolardan bahsediyorum. Eğitim videolarımı zaten çekiyorum, onunla karıştırmayın.

2016’da bu iş için baya bir yatırım yaptım, nedense ben bir şeyi yapmadan önce onla ilgili malzemeler alırım. Hani her şeyim olur o işle ilgili, ama işle ilgili bir fikrim olmaz sonrada çoğu zaman o işi yapmam 😀 İşte bu durum yine kendini tekrar etmesin diye yeni yıla girerken kendime bu sene youtuber olacağım diye söz verdim.

Eğer bu sene ben güzel bir şeyler yapamazsam, uzun bir süre bu fikri aklıma getirmem 😀

GoPro’nun 5. versiyonunu aldım, bende daha önce 3. versiyonun session modeli vardı, oda su geçirmiyordu ama bu yeni modeli baya bi sevdim. Ayrıca sesli komut verip işlem yapma özelliği falanda var, bide ona uygun bir tripod buldum ki tadından yenmiyor, her yere koyabiliyorum artık çekim yapmak için. Peki ben bu kadar şeyi çekiyorum da ne yapıyorum o videoları, hani nerede? Kendime saklıyorum, mükemmeli arıyorum 😀

Bir gün gerçekten güzel bir video çektim dediğimde, burada gururla tanıtacağım o videomu 🙂 Şimdilik hoşçakalın.

Konuyu görmek için tıklayın

Benim için 2016 nasıl geçti?

14 yorum

Her sene böyle bir yazı hazırlıyorum, bu sene de yılımı değerlendirmek için bu yazıyı yazıyorum 🙂

Bu yıl içerisinde çok büyük 2 olay yaşadım.
1- Darkod ofisini kapattım.
2- Türkiye’den Malta‘ya taşındım.

Evet, Malta’ya geldiğim için ofisimizi kapatmak zorunda kaldım, arkamda bir çok sevdiğimi bırakarak Malta’ya yerleştim. Burada bir hayat kurmaya, düzen oluşturmaya çalıştım. Elbette fırsatım oldukça gidip ailemi ve sevdiklerimi ziyaret ediyorum ancak artık burada bir düzen kurup yaşamaya çalışıyorum.

Bu aldığım kararın Türkiye’de olan olaylarla çok bir alakası yok, Türkiye son günlerini bile yaşayacak olsa vatanımı terk etmem. Bu aldığım kararlar tamaman kendimle alakalı, yani geçen yıldan kendime verdiğim sözler vardı. Yeni bir dil öğrenmek, gelirimi artırmak gibi. Sonuçta nerede doğduğun değil nerede doyduğun önemli demişler.

Burada ki şartlar ve bana katacakları daha iyi olduğunu düşündüğüm için ciddi bir karar vererek Malta’ya taşındım.

Geçen yıllarda aldığım şeyleri de söylüyordum, ancak daha sonra biraz düşününce bunun görgüsüzlük olarak algılanabileceğini fark ettim. Bu yüzden kayda değer bir şey almadığım sürece şunu bunu aldım demeyeceğim. Belki aldıklarımın ne üzerine olduğundan bahsederim 🙂

Ancak bu yıl kayda değer aldığım bir şey var. Oda arabam! Evet, o kadar güzel bir duygu ki 🙂 Sonunda kendime ait güzel bir şeyim var. Bu yıl kendime güzel bir araba aldım, gerçi aldıktan 1 ay sonra babama bırakıp Malta’ya yerleştim ama olsun sonuçta aldım 😀

Babam içinde çok güzel bir haber oldu, onu öyle duygulu gördüm gururlu gördüm ya, bu saatten sonra ölsem de gam yemem. Bir şeyleri başardım!

Onun dışında bu yıl sürekli youtuber olmak istedim, hep bunun üzerine ürünler aldım. Kameralar, teknik ekipmanlar, ışıklar vs. Ama bir türlü youtuber olamadım, çünkü öyle kamerayı açıp sadece kendimi ve günlük rutinlerimi çekmek bana mantıklı gelmedi. Ben kimim aq? Öyle düşününce bir çok kez çektiklerimi koymaktan vazgeçtim 😀 Ama bir gün doğru konsepti bulup youtuber olacağım, şimdilik eğitim videolarıyla devam!!

Bu yıl beni üzen tek şey aslında hazırladığım eğitim videoları. Koca bir yılda sadece 9 tane eğitim videosu hazırlamışım, şaka mı lan bu? Şaka değil, gerçek 🙁 Ama bunun sebepleri belli, yine de bahaneler ardına saklanmak istemiyorum o yüzden yeni yılda hedeflerimi çok daha büyük tutacağım.

Bu yıl içinde en çok hissettiğim duygu ise özlem oldu, sevdiğim insanların yanımda olmasına, yanımda olmasa bile en fazla yarım saatte gidip yanlarında olabileceğimi bilmeye alışmıştım. Şimdi böyle uzun zaman sonra görmek bir garip oluyor, ama sanırım bununla baş edebilirim. Sonuçta bunu tek yapan ben değilim değil mi?

Bu yıl Jonathan’ı göstermiştim sizlere, burada aldığım papağanım. Ne yazık ki gözlerimde ki rahatsızlıktan dolayı vermek zorunda kaldım, artık benimle değil. Asla bir hayvanın günahına bu şekilde girmek istemem, ancak sağlık devreye girdiği için böyle bir karar aldım. Yoksa benim yanımda olan, ölene kadar benimle kalır. Bunun en büyük örneği 4 senedir yanımda olan Sultan ve Süleyman kuşlarım gibi.

Bu yılın garip olanı ise 3 telefon kaybetmem oldu. Yani yat durunda cebimde telefonla atlamak, 2. aldığımı düşürüp parçalamak, 3. aldığımı 7 çıkacak diye satıp 7’yi alamamak gibi 😀 Çokta uğraşmamak lazım, şu an 7 var ama bilin bakalım o nerede? Apple teknik servisinde, oda düştü ve kırıldı. Allah’ım çekilecek günahım mı var nedir?

Bu yılın en güzel gelişmesi ise Malta’ya taşındıktan sonra edindiğim farklı ülkelerden, farklı kültürleri olan arkadaşlarım. Gianfranco örneğin, italyan sosyal medya uzmanı. Mindaugas örneğin, litvanyalı ve front-end developer. Rachel örneğin, malta’lı ve marketing’ci. Helen mesela, ingiliz ve customer support. Ve daha niceleri, arap nargileciden tutunda, italyan dövmecisine kadar bir çok tanıdığım farklı insan var ve bu beni çok mutlu ediyor. Çünkü onlarla oturup konuşmak bile, aslında dünyada milyarlarca farklı fikrin olduğunu ortaya çıkarıyor.

Ön yargılı mı yaklaşıyorum yoksa benim çevrem mi bu şekildeydi bilmiyorum, ancak eskişehir’de sıradan insanlarla bile konuştuğunuzda duyduğunuz tek şey çoğunlukla geçim zorluğu, devlet düşmanlığı ve aşk acıları oluyor. Ancak burada bunun aksine herkesin çok farklı fikirleri var, öğrendiğim en önemli şey ise, bu adamlar kendilerini çok önemsiyorlar. Bu kadar yıl yaşadım, kendimi hiç önemsediğimi hatırlamam. Ama belki de önemsemek gerekir, önce kendimizi iyi hissetmek için bir şeyler yapmamız gerekir. Geçim derdine düşmeden cebinde paran azsa bile eğlenmesini bilmek gerekir.

“Mutluluğun parayla orantılı olmadığını anlamak için hala çok geç değil..”

Ayrıca bu yıl geçen yıl ki hedeflerimden 2’sini gerçekleştirdim. Geçen yıl yeni bir dil demiştim, ingilizce’yi öğrenmeye başladım ve ana dili ingilizce olan bir ülkede yaşıyorum. Bir diğeride 2015 kazancımı artırmaktı, geçen yıl 200+ bin üzeri kazanmıştım bu yıl bunu 400+ bin üzerine çıkardım. Ama önemli olan ne kadar kazandığın değil, kazandığınla neler yaptığındır. Bu yıl öyle zamanlar oldu ki birkaç tl’yi arar olduğum zamanlar yaşadım. Ama sonuç olarak buradayız, ve ölmedik 🙂

Yeni yıldan beklentim, ingilizcemi daha iyi geliştirmek. Bu yıl kazandığımdan çok daha fazlasını kazanmak. En az 70 eğitim videosu hazırlamak. En az 3 geçerli proje hazırlamak. Ve artı kendim için bir şeyler yapmaya başlamak.

Gelenekleri yerine getirip yeni yıl şarkımı şuraya bırakıyorum;

Ayrıca bkz:
Benim için 2015 nasıl geçti?
Benim için 2014 nasıl geçti?
Benim için 2013 nasıl geçti?
Benim için 2012 nasıl geçti?

Konuyu görmek için tıklayın

PHP ile Sıfırdan Proje Oluşturmak

51 yorum

Bugün bir seriye başlamaya karar verdim. Aslında ilk bölümü çektiğimde bunun bir seri olmasını beklemiyordum ancak zaten eski PHP derslerim eskidiği için yenisini bunun ile çekebilirim.

İlk ders bir projenin altyapısı nasıl olmalı onunla ilgili. Yaklaşık 1 saatten uzun ve bir çok aksiliklerle dolu videoya aşağıdan ulaşabilirsiniz;

Güncelleme: .htaccess dosyanızda RewriteRule kuralının sonuna [QSA] ekleyin. Aksi taktirde $_GET parametrelerini çalıştıramazsınız. Örnek dosyalarda ben değişikliği yaptım, seviliyorsunuz.

Veritabanı sınıfı: https://github.com/tayfunerbilen/BasicDB
Permalink fonksiyonu: http://www.erbilen.net/php-sef-link-fonksiyonu
BasicDB Kullanımı: https://www.youtube.com/watch?v=RX7YxiMYzfA
Örnek dosyalar: https://yadi.sk/d/tt86xMDcxPYFc

Konuyu görmek için tıklayın

Tasarımlarda Standart Sistem Fontunu Kullanmak

1 yorum

Kodladığımız tasarımlarda farklı işletim sistemlerinde farklı font görüntüleri alıyoruz. Çünkü ne olursa olsun hepsinin kendine göre kriterleri var ve aynı sonucu göstermiyor. Ancak sistemlerin kendi standart fontları yeterince tutarlı öyle değil mi? O halde bootstrap 4’ün yaptığı gibi bizde hangi işletim sisteminden girildiyse o işletim sistemine ait standart fontu gösterebiliriz.

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

Bunu kullandıktan sonra farklı işletim sistemlerinden deneyerek sonuca ulaşabilirsiniz.

Konuyu görmek için tıklayın

Zincirleme (Chain) Metodu

3 yorum

Bir çoğunuz yazılmış sınıfları incelediğinizde şu şekilde bir yazım tarzıyla karşılaşmış olabilirsiniz.

$text = new Text();
echo $text->write('Tayfun Erbilen')->color('red')->fontSize('20px')->show();

Bu örneğe ait sınıfımızı oluşturalım hemen.

class Text {
	
	private $text;
	private $style;

	public function write($text)
	{
		$this->text = $text;
	}

	public function color($color)
	{
		$this->style .= 'color: ' . $color . ';';
	}

	public function fontSize($size)
	{
		$this->style .= 'font-size: ' . $size . ';';
	}

	public function show()
	{
		return '<div style="' . $this->style . '">' . $this->text . '</div>';
	}

}

Ancak bu örnek hata verecektir. Çünkü bu şekilde bir yazım tarzı için yapmanız gereken $this objenizi geriye döndürmek. Yani sınıfımızı şu şekilde düzenlersek eğer;

class Text {
	
	private $text;
	private $style;

	public function write($text)
	{
		$this->text = $text;
		return $this;
	}

	public function color($color)
	{
		$this->style .= 'color: ' . $color . ';';
		return $this;
	}

	public function fontSize($size)
	{
		$this->style .= 'font-size: ' . $size . ';';
		return $this;
	}

	public function show()
	{
		return '<div style="' . $this->style . '">' . $this->text . '</div>';
	}

}

Artık bu şekilde bir kullanımı yapmaya hazırız.

Chain (zincirleme) metodu aynı zamanda jQuery içinde aynı mantıkta çalışır. Muhtemelen her dil için bu mantıktadır. Örneğin jQuery’de bir örnek vermem gerekirse, basit bir eklenti hazırlayalım.

$.fn.Text = function(text){
  $(this).html(text);
};

$('body').Text('Tayfun Erbilen').css({
    'color': 'red',
    'font-size': '20px'
  });

Bu şekilde bir zincirleme kullanımda çalışmayacaktır. Çünkü bir this objesi döndürmedik eklentimizde geriye. Eğer geriye this’i döndürürsek geriye kalan jQuery metodlarını da zincirleme olarak kullanabilirsiniz. O halde buna göre düzelttiğimizde son kod parçamız şöyle olacak;

$.fn.Text = function(text){
  $(this).html(text);
  return this;
};

$('body').Text('Tayfun Erbilen').css({
    'color': 'red',
    'font-size': '20px'
  });
Konuyu görmek için tıklayın