MySQL’de SOUNDS LIKE ve SOUNDEX

Merhaba arkadaşlar, bu yazımda ve videomda sizlere LIKE dışında kullanabileceğiniz 2 alternatifi göstermek istiyorum. Öncelikle neden ne için kullanmamız gerek onu bir açıklayayım.

Örnek vermek gerekirse sizin bir e-ticaret siteniz olsun. Ve kullanıcı ürün aramak için arama input’une iphone yazıp arattı. Ama oda ne? Bir başka kullanıcı iphone yazmayı beceremedi ve “iphon” ya da “iphom” gibi kelimeler yazdı. Bu durumda sizin şu basit mysql sorgunuz ne döndürecektir sizce?
Okumaya devam et MySQL’de SOUNDS LIKE ve SOUNDEX

MySQL’de JSON Verileriyle Çalışmak

Bu yazımda sizlere mysql’de json olarak depoladığımız veriler üzerinde listeleme, arama, düzenleme gibi işlemler nasıl yapılır bunlardan bahsetmek istiyorum. Eğer JSON ile uğraşıyorken aklınıza NoSQL veritabanları geliyorsa haklısınız, ancak mysql’de de bir takım işlemler yapabildiğimizi unutmamak lazım 🙂

Öncelikle neden JSON olarak veri depolarız? Ben kendi adıma konuşacak olursam, örneğin seo bilgilerini json formatında tutuyorum. Yani title, description, keywords ama yarın öbürgün ekstra bir bilgi daha ekleyebilirim örneğin noindex, canonical vb. Bunun için sürekli gidip kolon oluşturmak tamamen saçmalık olurdu. Bu yüzden tüm bu değerleri tek bir kolon altında json formatında tutuyorum. Ve yeri geldiğinde bunları filtrelemek, bunlar içinde arama yapmak gerekirse değiştirmek, listelerken ayrı ayrı göstermek isteyebilirim.
Okumaya devam et MySQL’de JSON Verileriyle Çalışmak

OS X Terminal “invalid active developer” Hatası

Eğer terminalde işlem yaparken şöyle bir hata alıyorsanız;

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun


Terminalde şu komutu çalıştırırsanız;

xcode-select --install

Bu komut xcode geliştirici aracını indirip problemi çözecek. İşlemi tekrar yaptığınızda hatanın gittiğini göreceksiniz.

Kolay gelsin 🙂

Visual Studio Code’da Otomatik Kaydetme

Normalde bir şeyler yazdıktan sonra kayıt için ctrl + s kullanıyoruz ya da üst menüden kaydet’i seçiyoruz. phpStorm gibi kullanışlı IDE’lerde ise bu işlem otomatik oluyor. VSCodu’nda bu özelliğini, ayarlara yazacağımız değer ile yapmamız mümkün. Bunun için editörün sol altındaki ayarlar simgesine tıklayıp ayarları açın. Ya da mac kullanıcısı iseniz, command + , (virgül) kısayolunu kullanabilirsiniz.
Okumaya devam et Visual Studio Code’da Otomatik Kaydetme

PHP ile Hook (Kanca) Plugin Sistemi

Merhaba arkadaşlar, bu yazıda sizlere PHP’de kullanabileceğimiz kanca sisteminin mantığını anlatmak istiyorum.

Öncelikle eğer wordpress ile çalıştıysanız, eklenti yazarken wordpress’in bir çok kısmına müdahale ettiğinizi görmüşsünüzdür. Örneğin yeni bir plugin yazdığınızda admin panelinde sol menüye plugin linkinizi ekletebilirsiniz, ya da title’lara müdahale edebilirsiniz plugin’de vs. Yani wordpress’in sistemde belirlediği kısımlara, siz bu kanca sistemini kullanarak ilgili fonksiyonlarınızı çalıştırabiliyorsunuz.

PHP’de bu sistem doğrudan bulunmuyor, ancak PHP’nin özelliklerini kullanarak bunu yapmak mümkün. Bu sistemi sınıf ya da fonksiyon olarak tanımlamak mümkün. Şimdi sizlere video’da yazdığım fonksiyonların kodlarını veriyorum;

<?php

function hook($name, $callback = null, $value = null, $priority = 10){
    static $events = [];
    if ($callback !== null){
        if ($callback){
            $events[$name][$callback] = $priority;
        } else {
            unset($events[$name]);
        }
    } elseif (isset($events[$name])){
        arsort($events[$name]);
        foreach ($events[$name] as $callback => $priority){
            $value = call_user_func($callback, $value);
        }
        return $value;
    }
    return $value;
}

function add_action($name, $callback, $priority = 10){
    return hook($name, $callback, null, $priority);
}

function do_action($name, $value = null){
    return hook($name, null, $value);
}

function remove_action($name){
    hook($name, false);
}

Ve artık bu sistemi kullanarak aşağıdaki gibi örnekler yapabilirsiniz.

<?php

// a plugin
add_action('title', 'yeni_baslik');
function yeni_baslik(){
    return 'tayfun erbilen bu dersi çekti.';
}

// b plugin
add_action('title', 'yeni_baslik2');
function yeni_baslik2($text){
    return $text . ' Ve youtube kanalında yayınladı!';
}

// c plugin
add_action('menu', 'c_plugin_menu', 12);
function c_plugin_menu($menu){
    $menu[] = [
        'title' => 'C Plugin',
        'url' => 'c-plugin.php'
    ];
    return $menu;
}

// d plugin
add_action('menu', 'd_plugin_menu', 11);
function d_plugin_menu($menu){
    $menu[] = [
        'title' => 'D Plugin',
        'url' => 'd-plugin.php'
    ];
    return $menu;
}

echo do_action('title');

print_r(do_action('menu', []));

Daha iyi anlamak için videoyu izlemeyi unutmayın

Ve eğer hala satın almadıysanız, Udemy için hazırladığım PHP Eğitim Setime aşağıdaki linkten ulaşabilirsiniz <3
https://www.udemy.com/php-egitim-seti/?couponCode=PHPWEB

JavaScript localeCompare()

Merhaba, bu yazıda sizlere JavaScript’te bulunan localeCompare() metotundan bahsedeceğim. Öncelikle neden ihtiyaç duyup kullandım;

Bir objemi isme göre sıralamak istedim. Bu obje içerisinde türkçe karakterlerde vardı ve sıralama düzgün şekilde gerçekleşmiyordu. Hemen bir örnek verelim;

var data = [
  {
    'id': 1,
    'name': 'İstanbul'
  },
  {
    'id': 2,
    'name': 'Çanakkale'
  },
  {
    'id': 4,
    'name': 'Ümraniye'
  },
  {
    'id': 3,
    'name': 'Ankara'
  },
  {
    'id': 5,
    'name': 'Van'
  }
];

data = data.sort(function(a,b){
  if(a.name < b.name) return -1;
  if(a.name > b.name) return 1;
  return 0;
});

data.forEach(function(key){
  var node = document.createElement("LI"),
      textnode = document.createTextNode(key.name);
  node.appendChild(textnode);
  document.getElementById('test').appendChild(node);
});

Bu kodların çıktısı şu şekilde oluyordu;

See the Pen JavaScript Array Sort -1 by Tayfun Erbilen (@tayfunerbilen) on CodePen.

Yukarıdaki kodlarımda, sort fonksiyonu içerisindeki kodumu şu şekilde değiştirirsem;

return a.name.localeCompare(b.name);

O zaman sorunumuz çözülüyor ve aşağıdaki gibi başarılı bir sıralama oluşuyor 🙂

See the Pen JavaScript Array Sort -2 by Tayfun Erbilen (@tayfunerbilen) on CodePen.

ARtık birgün bir yerde işinize yararsa ne ala, benim bugün ihtiyacım oldu yarında sizin olabilir 🙂

PHP ile Excel Dosyalarını Okumak

Şu yazımda php ile nasıl excel dosyası oluşturulacağını göstermiştim. Bu yazımda ise, daha elzem bir konuya değineceğiz. Geçenlerde bir excel dosyasının içinden verileri almam gerekti, araştırırken baktım ki çok kalabalık kodlar var, benim amacım alt tarafı satır satır okuyup verileri almak o kadar. Sonra bir repo’ya denk geldim, Sergey Shuchkin abimiz bir sınıf yazmış bu işlemler için. Basit, kullanışlı, amaca hitap ediyor.

Öncelikle dosyaları şuradan temin edin;
https://github.com/shuchkin/simplexlsx (not: adama star atmayı unutmayın :D)

Kullanımı ise çok basit;

if ( $xlsx = SimpleXLSX::parse('test.xlsx') ) {
    print_r( $xlsx->rows() );
} else {
    echo SimpleXLSX::parse_error();
}

excel’deki satırları dizi halinde size verecek, seçip istediğinizi kullanabilirsiniz.

Kolay gelsin.

Mac’de MAMP Mysql Başlamıyor Hatası ve Çözümü

Özellikle aniden bilgisayar kapandığında vs. mamp’ı tekrar çalıştırdığınızda sadece apache’nin çalıştığını fark ediyorsunuz. mysql server bir türlü aktif olmuyor. Böyle bir durumla karşılaşırsanız terminal’i açıp şu komutu çalıştırın;

rm /Applications/MAMP/db/mysql56/ib_logfile*

burada mysql56 sürüme göre farklılık gösterebilir, eğer uyuşmuyor ise MAMP klasörünüz içindeki sürümü kontrol ederek komutu çalıştırın. Daha sonra MAMP’dan tekrar start servers derseniz sorunsuz çalışacaktır.

Her seferinde bu sorunla karşılaşıp internetten çözüp aratıp yapmaktan bıktım, o yüzden bloğada ekleyeyim dedim 😀

Earn.com ile Anketlere Cevap Vererek 1$ Kazanın

Merhaba arkadaşlar, eski adıyla 21.co şimdiki adıyla earn.com’dan bahsetmek istiyorum. Ben sisteme ilk bana gelen soruları 1$ karşılığında sorsunlar diye kayıt olmuştum, ancak sonra listelere girip anketlere cevap verdikçe para kazandığımı fark ettim. Bu proje ile sizde gelen anketleri cevaplayarak 1$ ile 5$ arasında hiçbir şey yapmadan para kazanabilirsiniz.

Ayrıca referans getirdiğiniz her kişi için profili onaylandıktan sonra sizlere 1$ hesabınıza eklemektedir.

Tek yapmanız gereken, listelere girmek. Listelere gitmekte çok zor değil, istedikleri basit şeyler. Örneğin instagram kullanıcıları listesine girmek için, instagram hesabınızı gönderiyorsunuz 1-2 gün içinde onaylanıyor.

Ben şu an 2 listedeyim, 24 şubat’tan 7 mart’a kadar anketleri cevaplayarak 20.95 $ kazandım.

3 kişi de referansım ile kayıt olmuş, onlardan da 3$ geldi hesabıma.

İnternette biraz araştırdım, yazılanları okudum. Herhangi bir dolandırma vs. söz konusu değil, aslında amaç farklı projede ama bizim için önemli olan anketlere cevap vererek para kazanmamız 🙂

Anladığım kadarıyla 0.0100 BTC olana kadar ödeme çekemiyorsunuz. Çünkü bende çekemiyordum daha sonra, hesabımda bakiye yeterli olduğunda çekim işlemini gerçekleştirdim. Hiçbir şey yapmadan 350 ₺ kazanmış oldum (:

Kayıt olup hemen sorulara cevap vermeye başlayarak bakiyenizi yükseltebilirsiniz. Hiçbir şey yapmadan kim kime 1$ veriyor 😀

KAYIT OLMAK İÇİN TIKLAYIN!

Erbilen.net 6 Yaşında!

Daha dün gibi hatırlıyorum, Erbilen.net 5. yılına giriyor yazımı 🙂 Bu zaman denen kavram, nasıl hızlı bir şeydir ya. Geçen seneki konumda, temamı değiştireceğimi söylemiştim. Ancak 1 sene geçmiş tabi ki hala değiştiremedim 🙂 Bu senenin başında da, kendi kendime 5 Mart’a kadar mutlaka bir şeyler yapacağım diyordum tam bir şeyler yapayım dedim 5 Mart gelmiş onu fark ettim 😀 Aslında hatırlamam ama domain süresi dolunca ister istemez hatırlıyor insan.

Gel gelelim, 6 sene olmuş arkadaşlar. Eminim 6 senedir bu bloğu takip edenler hala buralarda bir yerlerde. Çok yorumlarınızı göremiyorum artık, gerçi sizde haklısınız bir şey paylaşıp etmiyorum ki çok fazla 🙂

Erbilen.net’i, css-tricks gibi bir site haline getirmeye uğraşıyorum. Muhtemelen bu sene bu dediğimi yapacağım, şimdi işleri düzene koydum, yeni bir ofiste tuttuk, taşınma işleri vs. halledelim, elimdeki projeleri allahın izniyle bir teslim edeyim, sonra burayı da çok güzel bir yer haline getireceğim. Şu an işe yaramıyor mu derseniz, bence yarıyor. Ben bile bir çok konuyu kendi sitemdeki notlardan bakıyorum, çünkü zamanında kilit konular hakkında makaleler hazırlamışım, ezberlemeden buradan alıp kullanıyorum hoşuma gidiyor. Ulan diyorum, ben bile kullanıyorsam, eminim başkaları da yararlanıyordur.

O yüzden gücüm ve param yettiği sürece 😀 bu bloğu açık tutmaya ve bilgilerimi sizlerle paylaşmaya devam edeceğim. Benimle birlikte olan herkese çok teşekkür ederim, aramıza yeni katılanlara ise hoşgeldin diyor, 6. yaşına özel pasta falan olmasa da bi kek yiyerek kutluyorum.

Hepinize selamlar, sevgiler,
Tayfun Erbilen