Sayfalar

18 Haziran 2019 Salı

Acıyı damardan mı yoksa ağızdan mı?

Acıyı nasıl istersin?
Damardan mı yoksa ağızdan mı?
Acı acıdır aslında, başka bir manası yoktur, tanımı yoktur, herkesin acısı tanımı farklıdır ama nasıl alırsan al acıyı öyle yada böyle çekeceksin onun sonucuna katlanacaksın.

Burda asıl önemli olan acıyı yaşarken kimlerle olduğun.

Peki acıyı tek mi istersin başkalarıyla mı?
Tek yaşarsan kolay mı atlatırsın zor mu yada başkalarıyla paylaşırsan daha mı kolay olur yoksa daha mı zor?
Yazı mı tura mı? seçimlerden ibaret her şey.

Peki bizi şekillendiren yaşadıklarımız mı yoksa acılarımız mı?

Acılarımızı gerçekten paylaşıyor muyuz yoksa paylaştığımızı mı sanıyoruz.
Yaşadığımız şeyi başkasına anlatırken o kişi o acıyı yada anı yaşamamışsa bizi nasıl anlayabilir?

"Seni anlıyorum" yalanına mı inanıyoruz hepimiz yoksa inanmak mı istiyoruz?
İnanınca acılar geçiyor mu nasıl aldığına/yaşadığına bakmaksızın.

Yaşarken mutlu olmak istiyoruz, peki acıya alıştıysak, mutlu dediğimiz anlar gerçekten bizim acılarımızsa ne olacak?
Yada mutlu olurken biraz biraz acı biriktiriyorsak, bu biriktirdiklerimiz sonradan topluca çıkıyorsa bizden acıtarak?

Yaşamanın manası nedir o zaman? Yaşamak acıtır mı gerçekten.

Yada şunu diyebilir miyiz, mutluluklarımızı acılar ile takas mı ediyoruz?
Hayatta bir denge varsa biri varken öteki kayboluyorsa yada terazinin bir tarafı inerken öteki tarafı kalkıyorsa diyebilir miyiz acaba mutlu olurken aslında acılarımızda artıyor?

Yada bizim mutluluklarımız hafif ise biz o hafif anlarda mutlu olmaya çalışırken acı kefesinin ağır basmasını sağlıyorsak bundan sonra mutlu olabilir miyiz?

Peki mutluymuş gibi davransak bir şey değişir mi?

Acılarımızı başkalarıyla paylaşmak yerine tek yaşamak daha mantıklıysa neden insanlar beraber yaşıyor, zaten acıyı getiren de diğer insanlar değil mi?

İnsan gerçekten sosyal mi, bir sürü canlısı mı? Sürüden birisi ayrılınca neden bizi çok etkiler?

İnsan yaşamının sonuna kadar acılarıyla tek başına mücadele edebilir mi?

Mutlu anımızda yanımızda bir çok kişi varken kötü zamanımızda yanımızda pek az yada hiç kimsenin olmaması nasıl bir şey? Demek ki insan tek başına daha güçlü diyebilir miyiz.

İnsan tek başına daha güçlüyse başkalarına neden bel bağlar, bir süreden sonra aileler çocuklarını neden azat etmez?
İnsan yaşlandıktan sonra neden çocukları tarafından bakılmak ister?
Ölüm kaçınılmazsa neden bunca tedavi, bunca ilaç var?

Ne yaparsak yapalım hepimizin yeri toprağın altıysa doktorlar insanları neden daha çok yaşatmak için çaba sarf eder.

Daha çok acı çekelim diye mi? Damardan yada ağızdan ne fark eder. Acı her türlü acıdır.

Bizi şekillendiren yaşadıklarımızsa ve yaşadıklarımız acıysa nerede o zaman bardağın dolu tarafı.

Ben size söyleyeyim bardak istediği kadar dolu olsun, bardağın boş tarafı taşıyor onu biz sadece tanımlamıyoruz. Çünkü onu görmek işimize gelmiyor, hayatımız boyunca 1 adet dolu bardak ile mutlu oluyoruz, bardağın taşan boş tarafınaysa sadece bakma diyoruz.






12 Mayıs 2017 Cuma

Docker Node.js Kurulumu

Arkadaşlar hepinize merhaba, sizlere dilimin döndüğünce docker kullanarak Node.js kurmasını ve bu sisteme nasıl erişebiliriz onu göstereceğim.
Öncelikle Docker nedir, ne değildir diyen arkadaşları şöyle alalım.
Linkten detaylı bilgiye ulaşabilirsiniz.

Öncelikle ben neden docker kullanıyorum ondan bahsedeyim.
Bilgisayarıma sürekli projelerimde kullanmam gereken veritabanı sistemlerini (Mysql, Postgres, MongoDb) bilgisayarıma kurmak istemiyorum çünkü belli bir süre sonra bu uygulamalar birikip bilgisayarı yavaşlatıyor.
Bunların yanında sterilize ortam oluşturması yani uygulamam yanlış kodlamadan dolayı RAM miktarının tamamını sömürüp beni kitleyemiyor çünkü docker ile buna sınır koyabiliyorum.

Peki neden docker ? Vagrant değil ? benim linux işletim sistemi kullanıyorum dockerda linux tabanlı bir sistem (LXC) daha stabil çalışıyor, vagrant kurup işletim sistemi replace etmeme gerek kalmıyor.

Peki neden Docker ve Node.js ? Hemen onuda açıklıyorum.
Node.js ve Docker ile alakalı birçok döküman var fakat bide benim olsun istedim, bende bir nefes bir soluk katayım dedim.

İlerleyen zamanlarda Docker kullanarak Php, Mysql, Apache kurarak kendimize test ortamı nasıl kurulur onu anlatmayı planlıyorum bu sayede lab ortamında gerçek bir sunucuya root olabilmek için uğraşır izinleri geçmek için çabalayabiliriz vs vs..

Şimdi şöyle olmalı böyle olmalı falan diye konuyu baymak istemiyorum verdiğim linkte ve forumdaki aramalarda gerekli açıklamaları görebilirsiniz.

-) Node.js projemizde nodemon modülünü kullanıcaz, node.js dosyalarımızda yaptıgımız herhangi bir değişikliği anlayıp otomatik sunucumuzu baştan başlatacak.

-) Dosyalarımızı docker içerisine atmıcaz, kendi bilgisayarımızda barındırıcaz ki sürekli değişiklik yapabilelim bunuda Volume kullanarak halledicez.

-) docker-compose dosyamızı kullanarak imajımıza ne kadar ram kullanması gerektiğini söyleyeceğiz gibi gibi gibi şeyler öğrenme fırsatınız olabilir.


Öncelikle hemen Dockerfile dosyamıza göz atalım nasıl hazırlamalıyız içindekiler ne işe yarar.

FROM node bize node.js paketini yükleyeceğimizi bildiriyor.


Daha sonra docker-compose adında bir dosya oluşturuyoruz ve içeriğini aşağıdaki gibi yapıyoruz.

Şimdi yukarda version diye birşey var bu docker-compose versiyonu, versiyondan versiyona aşağısında bulunan komutlar değişiklik gösterebiliyor.

Hemen altında services, buda bunun bir servis olduğunu ve servis isminin web olduğunu belirtiyor. web yerine istediğinizi yazabilirsiniz siz.

build: . komutu ise bize diyorki - Kardeşim docker-compose dosyasının yanında Dockerfile var git orada tüm komutlar oradan sistemi build et.

volumes: ise -Benim kendi ./app diye bir dizinim var bu gerçek makinada, sen bunu al kendi /home dizininde göster kendi dosyanmış gibide kullan.

Yani biz gitcez app klasöründe değişiklik yapcaz onlar docker içerisinde /home klasöründe değişiklik olmuş gibi olacak.

ports: ise Benim bilgisayarımdaki 8080 portundan gelen tüm istekleri dockerda 8080 portuna yönlendir.

mem_limit: Tahmin edeceğiniz üzere bu docker en fazla 512 MB ram tüketsin diyoruz ve hemen ardından konsolu acıyoruz docker-compose dosyamızın yanına geliyoruz ve
docker-compose up komutunu veriyoruz.

Bu komut gidiyor bizi Dockerfile içerisinde indirilmesi yüklenilmesi gereken herşeyi yapıyor ve bize sistemi çalıştırıp veriyor.


Artık size localhost:8080 portundan projenize erişmek kalıyor.

9 Ocak 2017 Pazartesi

Hoax Nedir ? Spam mail, sahte mesajlar

Elektronik posta adresi toplamak veya markaları karalamak için oluşturulan yalan haber (asparagas) içeren e-postalardır. 
İnanılırlığı artırmak için imza kısmına çoğunlukla resmi kurum adları, profesör veya mühendis ünvanları eklenir.
Bu tür e-postalar, genellikle ilgi çekici içeriklere sahip olduğu için çabuk yayılır ve herkes birbirine doğruluğunu araştırmadan iletir (forward eder).
Bu gibi emailler herkesin hem vaktini alır, hem de lüzumsuz yere sistem kaynaklarını israf ederler. (Hatta tehlikeli bile olabilirler — KFC hakkındaki uydurma hikaye yüzünden insanlar KFC’nin önünde gösteri yapmışlar.
Hoax (sahte) mesajları anlamanın birkaç yolu “İstanbul‘da Falancanın başına gelmiş” türünden kontrolü yapılamayacak isimler, “Sahte otoritenin sesi: “CNN de yayınlandı” yada ” Microsoft uyarıyor” türünden normalde virüs uyarısı yapmayan şirketlerin sözlerini içermesi.

28 Aralık 2016 Çarşamba

Ayıkamıyoruz

Uyutulduğumuzu ayıkamıyoruz, dolandırıldığımızı ayıkamıyoruz, aptal yerine koyulduğumuzu ayıkamıyoruz.
Öğretmenler ezberletiyor, güçlüler sindiriyor, kendini zeki zanneden çakallar sömürüyor elinde güç bulunduran bir darbede o indiriyor kafandan aşağı.
Düşünmene fırsat bırakmıyorlar, hemen gündem belirliyorlar TT yapıyorlar 2-3 şey söylüyorsun vatan kurtarıyorsun. Elindeki telefonda anca bir aşağı bir yukarı yapıyorsun.
Çarka çomak sokmaya çalışsan bir o kadar yardımcı oluyorsun, ayıkmaya çalıştıkça seni dışlıyorlar özgün olan her şeyi itekliyorlar popülerliği bol olan yanlışları benimsiyorlar sonrada diyorlar ki yeni nesil çok fena.

Sal bakalım sen çocuğunu oynasın, bırak öğrencini bir hayal etsin, ver bakalım formülü öğrencinin ihtiyacı olduğu için, ön ayak ol, gerçekten öğreten ol sonra gezin ben öğretmenim diye.
Çıkar şu gözlükleri gözünden, çık şu kalıbın içinden, senden farklıları da olabilir bunu da kabullen, dünya küçük ettiğini bulursun bunu da bilsen insanlar daha kaliteli olur sanki.

Bunları ben yapsam nolcak herkes aynı mı diyorsun ? işte sıkıntı burada başlıyor, kendimize değil herkese bakıyoruz onlara göre hareket ediyoruz, onlara göre konuşup onlara göre susuyoruz.

Bunları yaparken teknolojiden kopalım demiyorum, bırakalım telefonu bilgisayarı organik tarıma geçelim demiyorum, istiyorsak tarımda yapalım ammaa bunların köleleri olmayalım.
Tabakhaneye b!k yetişmiyoruz, birazcık rutinden sapalım mesela yürüyen merdivenden değilde normal merdivenden çıkalım, masamızın yönünü çevirelim ama rutinden sapalım bazı şeylere alışmayalım.

6 Kasım 2016 Pazar

zxcvbn Realistic Password Strength Estimation / zxcvbn Parola Kırılma Tahmin Class

Hemen hepimiz uygulama yapıyoruz, bu uygulamalarımızın çoğunda şifreler kullanırız fakat çoğu bilgisayar korsanı en basit yöntem olarak şifrelerimizi sistemimizi hackleyip şifrelerimizi almaktan ziyade öncelik olarak kaba kuvvet yani brute force saldırısı yapar, bu saldırı sayesinde şifrelerimizi elde etmeye çalışır.

Peki nedir bu brute force ?
Google amcaya sorduğumuzda bize aşağıdaki sonucu veriyor.

Kısacası brute force saldırısı kullanıcıların giriş yapmak istediği yere bazı programlar kullanarak şifreleri tahmin etmeye çalışır, bizim el ile yapacağımız işi onlar kısa sürede otomatik şekilde yaparlar.

Peki bu saldırılardan korunmak için neler yapılabilir ?

En basit yöntemlerden bir tanesi bir kullanıcı doğrulama sistemi koymak, kısaca captcha ekleyebiliriz sisteme.

Fakat biz bugün bunu nasıl önleyeceğimizden ziyade kullanıcılarımızı yönlendirmek olacak.
Yani kullanıcılarımızdan en çok kullanılan yada kırılması, tahmin edilmesi kolay şifreleri almamalarını sağlayacağız.

Peki bunu nasıl yapıcaz ?
Bunun için zxcvbn Classını kullanıcaz.

Bu class ne işe yarıyor, nasıl tahmin ediyor ?
İçerisinde yaklaşık 30k veri var, bu verileri Amerika son nüfus sayımında elde ettiği en çok kullanılan isim ve soy isimler, Wikipedia, diziler yada filmlerdeki en popüler kelimeleri, belli tarih ve zamanları aynı zamanda belli bir düzen içinde devam eden basit şifreleri mesela (abcd), (qwertyuiopgibi şifreleri içinde barındırıyor. Aynı zamanda bizim yazmış olduğumuz kendi şifrelerimizi içerisindeki bir mantık algoritması ile bize kırılması zorluğu hakkında tahminlerde bulunuyor bu sayede bizde kullanıcılarımıza bu tahminleri gösterip diyoruz ki şifreniz çok basit, yada şifrenizde bazı harf ve rakamlar olsun gibi önerilerde bulunup kaba kuvvet saldırılarından bir nebze korunmuş oluyoruz.

Peki bu classı nasıl kullanıcaz ?

Bower ile kullanabiliriz.

cd /path/to/project/root
bower install zxcvbn
Daha sonra sayfamıza aşağıdaki kodları ekledik mi tamamdır.
<script src="bower_components/zxcvbn/dist/zxcvbn.js">
</script>

NodeJs ile yükleyebiliriz.

$ npm install zxcvbn
$ node
> var zxcvbn = require('zxcvbn');
> zxcvbn('Tr0ub4dour&3');

Composer kullanarak sisteme dahil edebiliriz.

{
    "require": {
        "bjeavons/zxcvbn-php": "^0.2"
    }
}

use ZxcvbnPhp\Zxcvbn;

$userData = array(
  'Adnan',
  'test@example.com'
);

$zxcvbn = new Zxcvbn();
$strength = $zxcvbn->passwordStrength('password', $userData);
echo $strength['score'];
// Sonuç: 0

$strength = $zxcvbn->passwordStrength('Test ediyorum burada!!');
echo $strength['score'];
// Sonuç: 4


Yada direkt olarak js olarak indirip sisteme dahil edebiliriz.

Download zxcvbn.js.

<script type="text/javascript" src="path/to/zxcvbn.js"></script>
Bir sonraki yazımızda bu classı php bir proje üstünde asenkron bir şekilde nasıl kullanırız ona değinicez.

Classın github linki:
https://github.com/dropbox/zxcvbn

10 Eylül 2016 Cumartesi

Laravel dışında Eloquent Kullanımı

Merhaba gençler, bugün Laravel'de veritabanı işlerimizi yapmamıza olanak sağlayan Eloquent'i kendi şahsi projelerimizde nasıl kullanırız, Eloquent'i nasıl dahil ederiz onu öğrenicez.

Kullanımı, sistemimize eklemesi composer ile gayet basit. Zaten bu yazıyı okuyorsanız composer kullanacağımızı tahmin etmişsinizdir.

Hemen çalıştığımız dizine gidiyoruz, konsolumuzu açıyoruz ve başlangıç kodumuzu yapıştırıyoruz.

composer require illuminate/database
Bizim için gerekli dosyaların indirilmesini sağlıcak aynı zamanda composer dosyamızı oluşturacak.

























Daha sonrasında, Class'larımızın eklenmesi ve config ayarlarımızı yapabilmemiz için init.php adında bir sayfa oluşturuyoruz.
Bu sayfa içerisine autoload.php ve veritabanı bilgilerini giriyoruz.

init.php içeriği aşağıdaki gibi olmalı.






















use Illuminate\Database\Capsule\Manager as Capsule: Veritabanı bağlantısı için gerekli dosyaları use ediyoruz.

5. Satırda autoload.php sayfamızı çağırıyoruz.

9. satırdan başlayan ve 18. satırda biten kodlar ise sırasıyla
driver: kullanacağımız veritabanı türü,
host: veritabanımızın bulunduğu host,
database: veritabanı ismi,
username: bağlanmak için kullanacağımız kullanıcı ismi,
password: veritabanı şifremiz

Yukarda belirttiklerim en çok kullandıklarımız.

21 ve 23. satırlarda ise Eloquent'imizi artık kullanmak için gerekli fonksiyonlarımızı çağırıyoruz.

Sırada ise model dosyalarımızı barındırmak için models adında bir klasör oluşturuyoruz.
Daha sonra composer dosyasımızı açarak aşağıdaki gibi düzenliyoruz.
















Yukarıda models klasörü içinde oluşturduğumuz model dosyalarını otomatik olarak dahil etmek için composer içerisine autoload komutunu girdik.

Daha sonra models klasörünün içerisine User.php adında bir php dosyası açıyoruz ardından User adında bir Class oluşturuyoruz, hemen sonrasında sayfamızın en üstüne aşağıdaki kodu yazıp Class'ımıza extends ediyoruz.

use Illuminate\Database\Eloquent\Model as Eloquent;

Composer'da o kadar işlem yaptık, fakat konsolda composer ile oynamadık, composer'imizi konsolda dump ediyoruz bunu da composer dump-autoload komutu ile yapıyoruz.

User.php için son birkaç düzenleme kaldı ve aşağıdaki gibi yapıp User.php mizi tamamlıyoruz.















Ve artık son. index.php oluşturuyoruz, içerisine init.php dosyamızı require ediyoruz ve Eloquent kodlarımızı yazmaya başlayabiliriz.


İndex dosyamızın son hali soldaki gibidir.










Elimden geldiğince anlatmaya çalıştım, yanlışım hatam olduysa uygun dille belirtirseniz sevinirim.

31 Temmuz 2016 Pazar

Bir hafiflik var..

Bir hafiflik var üstümde sanki, böyle biraz ferahlamış gibi üzerimden yük kalkmış gibi.
Sanki zaman genişlemiş, elimi uzatsam bir sonraki güne ulaşacak kadar geniş, arkama dönsem geçmişteki hatalarımı düzeltecek asil(imsi) bir rahatlık.

Bilim kurgu filmlerinden fırlamış canavarlar gibi, Doctor Who dizisindeki doktorun zaman makinesi gibi.
Aklımda bir soru ? nereye kadar böyle yada neden şimdiye kadar böyle bir şey yoktu ?
70 milyon tek yürek bunların cevabını beklemiyor aslında ben bilsem yeterli.
Soruyorum kendime neden diyorum yok diyo bilmiyom diyo, saçmalıyorum aslında bazen çoğunlukla yazarken aslında her zaman.
Karambole mi yaşıyorum, tesadüfen mi yoksa ? Uçsuz bucaksız karanlık gibi bir delik,yine zamanın genişliğinde kayboluyorum. Kafamdaki sorular ile dalıyorum derine, karanlığa bir bilinmeze.

Sorgulamaya kalksam kime sorayım. Sussam içimde mi patlasın. Yazayım bende, belki bir faydası olur.