Fedora XRDP Bağlantısında Klavyenin Sadece İngizce Olarak Kullanılabilmesi Sorununa Çözüm

Kullandığım tüm RedHot tabanlı sistemlerde karşılaştığım bir durum. RDP bağlantıda türkçe klavye kullanmak için aşağıdaki çözümü uygulayabilirsiniz.

yum install xorgxrdp

vi /etc/xrdp/xrdp.ini

xrdp.ini içinde aşağıdaki bloğu bulup yorum satırlarını kaldırın.
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20

[Xvnc] bloğa dokunmayalım.

systemctl restart xrdp

setxkbmap tr

PHP Null Coalescing Operator

?? (null coalescing operator), Bir değerin null olup olmadığını kontrol etmek için kullanılır. Eğer operatörün sol tarafındaki ifade null ise, sağ tarafındaki değeri döndürür. Eğer sol tarafındaki ifade null değilse, bu değeri döndürür.

?? Operatörünün Temel Kullanımı:

$value = $var ?? ‘default value’;

  • Eğer $var tanımlı ve null değilse, $value değeri $var olur.
  • Eğer $var tanımlı değilse ya da null ise, $value değeri ‘default value’ olur.

?? Operatörünün Amacı:

  • isset() fonksiyonuna bir alternatif sağlar. Daha kısa ve daha okunabilir bir yazım sunar.
  • ?? operatörü, isset() gibi sadece değişkenin var olup olmadığını kontrol etmekle kalmaz, aynı zamanda null olup olmadığını da kontrol eder.

Örnekler:

1. Temel Kullanım:

$username = $_POST[‘username’] ?? ‘Guest’;

// Eğer $_POST[‘username’] tanımlıysa ve null değilse onu döndürür, aksi halde ‘Guest’ döner.

2. Daha Önceki isset() Kullanımına Alternatif:

PHP 7.0’dan önce, bu tür kontroller genellikle isset() fonksiyonu ile yapılırdı:

$username = isset($_POST[‘username’]) ? $_POST[‘username’] : ‘Guest’;

// Eğer $_POST[‘username’] tanımlıysa onu döndürür, aksi halde ‘Guest’ döner.

?? operatörü, bu ifadeyi daha kısaltılmış ve okunabilir hale getirir:

$username = $_POST[‘username’] ?? ‘Guest’;

3. Birden Fazla Değişkeni Kontrol Etme:

?? operatörü ile birden fazla değeri kontrol edebilirsin. Sol taraftaki değer null ise, bir sonraki değere geçilir:

$username = $input[‘username’] ?? $input[‘default_username’] ?? ‘Guest’;

Bu ifade şu anlama gelir:

  • Eğer $input[‘username’] tanımlı ve null değilse, onu kullan.
  • Eğer $input[‘username’] null ise, $input[‘default_username’] kontrol edilir.
  • Eğer her iki değer de null ise, ‘Guest’ değeri kullanılır.

Avantajları:

  1. Kod Kısaltması:
    • ?? operatörü, isset() ve ternary (üçlü) operatör kullanımını daha kısa ve okunabilir bir hale getirir.
  2. Null Değerlerini Hızlıca Kontrol Etme:
    • Bir değerin tanımlı olup olmadığını ve null olup olmadığını hızlıca kontrol etme imkanı sağlar.
  3. Zincirleme Kullanımı:
    • Birden fazla değeri kontrol etmek ve ilk geçerli değeri almak için zincirleme kullanılabilir.

?? (null coalescing operator), güçlü bir operatördür ve bir değerin null olup olmadığını kontrol etmek için basit ve okunabilir bir çözüm sunar. Bu operatör, eski yöntemlere kıyasla daha kısa ve temiz bir yazım sağlar ve null kontrolü için ideal bir yaklaşımdır.

CentosOs / RHEL Linux’a CD / DVD ROM Nasıl Bağlanır

  1. Sistemdeki CD / DVD Cihazı Bulmak

Linux terminalinizden root kullanıcısı olarak blkid komutunu çalıştırın.

# blkid
/dev/sr0: UUID="2021-01-07-16-35-54-70" LABEL="VBox_GAs_6.1.18" TYPE="iso9660" 
/dev/sda1: UUID="76b3b4f0-cefd-4aa4-91a7-91f0f196eb0f" TYPE="xfs" 
/dev/sda2: UUID="8DSt2s-wzNP-xxP2-mxLe-DANd-W7QX-nHAwkJ" TYPE="LVM2_member" 
/dev/mapper/centos-root: UUID="5de4634f-896e-414f-9550-a49632cee92a" TYPE="xfs" 
/dev/mapper/centos-swap: UUID="74f4e421-ce61-4dfa-91f1-2267f568876b" TYPE="swap"

2. Cihazın Bağlanacağı Dizini Oluşturmak

Oluşturulan dizin, CD / DVD sürücüsündeki dosyalara ulaşabileceğimiz klasördür. Çoğu zaman /media klasörü içinde oluşturulur.

# mkdir /media/iso

3. CD / DVD Cihaza Bağlanmak

Artık mount komutunu kullanarak cihazı Linux’a tanıtmaya hazırız.

# mount /dev/sr0 /media/iso/
Ya da
# mount /dev/cdrom /media/iso/
//yazma korumalı olarak bağlanır.

Bu aşamada ls komutuyla CD / DVD sürücüsündeki tüm dosyalara erişebilmelisiniz

$ ls /media/iso/ 
AUTORUN.INF  cert  OS2           TRANS.TBL                VBoxDarwinAdditionsUninstall.tool  VBoxSolarisAdditions.pkg        VBoxWindowsAdditions.exe
autorun.sh   NT3x  runasroot.sh  VBoxDarwinAdditions.pkg  VBoxLinuxAdditions.run             VBoxWindowsAdditions-amd64.exe  VBoxWindowsAdditions-x86.exe

# mount /media/iso/

http_build_query Fonksyonu Nedir Nasıl Kullanılır? (PHP)

http_build_query bir PHP dizisinden URL üretir. Bu dizi basit, tek boyutlu olabileceği gibi çok boyutlu, iç içe karmaşık bir dizi de olabilir.

Örnek Kod:
<?php
$data = array('kullanici_adi'=>'Cylon',
              'sifre'=>'Lni2ndt',
              'token'=>'4iamkia9328924hk234k342m2mia');

echo http_build_query($data); 
   //kullanici_adi=Cylon&sifre=Lni2ndt&token=4iamkia9328924hk234k342m2mia
echo http_build_query($data, '', '&amp;'); 
   //kullanici_adi=Cylon&amp;sifre=Lni2ndt&amp;token=4iamkia9328924hk234k342m2mia
?>

Google-Chrome’da Form İçi Otomatik Tamamlama Off Özelliği Artık Desteklenmiyor (HTML)

Chrome <input autocomplete="off"></input> özelliği artık çalışmıyor.

Çözüm:

Otomatik tamamlanmasını istemediğimiz form alanlarının default olarak “disabled” işaretliyoruz. Sayfa yüklendikten çok kısa bir süre sonra Javascript ile bu disabled özelliğini kaldırıyoruz.

<form method="post">
  <input disabled="disabled" autocomplete="off" type="text" class="name" name="isim">
  <input disabled="disabled" autocomplete="off" type="text" class="age" name="soyad">
  <input type="submit" >
</form>
<script>
function otomatikTamamlamaKapat(){               
    var timer = window.setTimeout( function(){
        $('.isim, .soyad').prop('disabled',false);
            clearTimeout(timer);
        }, 800);
    }
otomatikTamamlamaKapat();
<script>

“Doesn’t have a default value” hatası (MySQL)

Yeni MySQL sürümlerinde default olarak hücre satırlarına NULL olarak data insert edilemiyor. Sunucu üzerinde MySQL yapılandırma dosyasında değişiklik yaparak bu default ayarı kaldırabilirsiniz

my.cnf dosyası içinde; sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES satırını aşağıdaki satırla değiştiriniz.

sql_mode=””

Web Sayfasında Kullanılan Delete Tuşunu Tespit Etmek (JavaScript)

 inputType özelliiyle sil tuşunu yakalayabiliriz.

/*html*/
<input id="tesInput" name="giris" type="text">

/*js*/
document.getElementsByTagName('input')["tesInput"].addEventListener('input', function(e) {
    if (e.inputType == "deleteContentBackward") {
        // your code here
    }
});

/*document.getElementsByTagName('input')[0]*/

Java: Ekran Boyutunu Bulan Program

Java’da getDefaultToolkit() fonksyonundan yararlanarak kullanıcının ekran boyutlarını öğrenebiliriz.

Bu hazır fonksiyon eski bir library olan AWT (Abstract Windows Toolkit) içinde bulunuyor.

Örnek kodlar aşağıda;

import java.awt.Dimension;
import java.awt.Toolkit;

public class araclar{
     public static void main(String [] args){
        Dimension ekranBoyutu = Toolkit.getDefaultToolkit().getScreenSize();
        System.out.println(ekranBoyutu);
    }

}