TCMB Kurlar

Class

 

Kullanımı

SnapCrab_No-0005

WordPress Bakım Hatası ve Çözümü

Eklenti veya WordPress programını güncellerken, işlem sona ermeden sayfa kapandığında sitenin anasayfasına veya admin sayfasına girdiğimiz zaman; ekranda “Zamanlanmış bakım dolayısıyla site uygun değil. Bir kaç dakika içinde tekrar kontrol edin.” yazısını görürüz. Güncelleştirme işlemi yarım kaldığı için bakım modundan çıkılamamıştır.

Çözüm: FTP’den WordPress dosyalarının bulunduğu klasöre girin. Oradan .maintenance dosyasını bulun ve silin. Sonra WordPress yönetim paneline girip güncelleme işlemlerini tekrardan yapabilirsiniz.

SingleTon Pattern Design (Tek Görüntülü Nesneler)

SingleTon bir nesnenin tek bir görüntüsünün (instance) oluşturulup public olarak kullanılmasıdır.

Örneğin bir db adında sınıfımız (class) olsun. Bunu program başında bir kere türetip kullanmamız performans bakımından yararlıdır.

Bunu statik (static) metodlarla yapabiliriz. Sınıfımızı tutabilmek için statik bir değişken tanımlayalım.

Şimdi de bir statik metod tanımlayalım. Geriye nesnenin görüntüsü (instance) oluşmuşsa nesneyi, oluşmamışsa oluşturup nesneyi gönderelim.

Bunun testini göstermek içinde yapıcı (construct) bir metod yazalım. Rasgele bir sayı üretip değişkende tutalım.

Şimdi de iki ayrı değişkende nesnenin tek bir kere görüntüsünün oluştuğunu test edelim. Normal olarak görüntüsünü alalım.

Farklı iki sayı üretilecektir.

Şimdi de tek görüntüsünü alalım.

Üretilen sayı aynı olacaktır. Çünkü nesnenin bir kere görüntüsü oluşacaktır.

Projeyi Buradan İndirebilirsiniz.

 

Hayırlı Günler. Sağlıcakla kalın.

Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.

CSS ile Kalp Çizmek

Arkadaşlar sizinle bugün CSS3 ile bir kalp çizelim.

İlk önce html dosyamızı oluşturup Body nin içine bir div etiketi oluşturalım. Classı kalp olsun. Sonra css dosyamızı oluşturup html dosyasına çağıralım.

 

Şimdi css dosyamızı kodlamaya başlayalım. Div etiketini bulunduğu pozisyona göre değiştirmek için position: relative yapalım.

Yüksekliği 170px yapalım.

Genişliği 200px yapalım.

Dışarıdan 20px boşluk verelim.

div etiketinden önce ve sonra işlem yapabilmek için before, after tanımlayalım.

Pozisyonunu absolute yapalım. Diğer nesnelerden bağımsız olsun.

Yükseliği 160px, Genişliği 100px olan iki nesne oluşturalım.

Arkaplanını kırmızı yapalım.

İki şekil arka arkaya olduğu için birmiş gibi görünüyor.

SnapCrab_No-0087

Birinci şekli sola yaslayalım. Diğer şekli soldan 100px genişlik kadar boşluk bırakalım.

SnapCrab_No-0088

Birinci şekli döndürmek için başlangıç noktasını alt, sağ noktayı referans olarak alalım ve sağa 45 derece açıyla döndürelim. İkinci şekli döndürmek için ise alt sol noktayı referans alalım ve sola doğru 45 derece açıyla döndürelim. Net görebilmek için border verelim.

SnapCrab_No-0089

Üst köşe kenarlarını yuvarlak yapalım ve kenarlığı kaldıralım.

SnapCrab_No-0090

 

Sağlıcakla kalın, Hayırlı günler…

Big-Endian ve Little-Endian Nedir?

İşlemcilerin byte’ları saklarken kullandığı sıralamadır. Büyük Sonlu (Big-Endian) ve Küçük Sonlu (Little-Endian) olmak üzere ikiye ayrılır.

 

Little-Endian (Küçük Sonlu)

i386 ve devamı olan işlemciler Little-Endian kullanır.

Elimizde 0x34E2561A 4 Byte’lık Integer verimiz olsun. Sağdan itibaren başlanarak 0x1A 0x56 0xE2 0x34 olarak saklanır.

 

Big-Endian (Büyük Sonlu)

Sun Sparc, Motorola 68K, PowerPC ve Java Sanal İşlemcisi (Java VM) Big-Endian kullanır.

0x7654139A verisi soldan itibaren başlanarak 0x76 0x54 0x13 0x9A olarak saklanır.

BMP Resim Dosya Yapısı

BM – Windows 3.1x, 95, NT, … Yapısı anlatılmıştır.

BMP dosyası 3 kısımdan oluşur:

1. Dosya Header (Başlık) Kısmı

2. Header (Başlık) Bilgisi Kısmı

3. Veri (Data) Kısmı

SnapCrab_No-0081

Dosya Başlığı (Header)

Toplam 14 Byte’tan oluşur.

İlk 2 Byte dosya imzasını temsil eder.

Sonraki 4 Byte dosyanın boyutunu verir.

Sonraki 2 Byte Uygulamalara özgü ayrılmıştır.

Sonraki 2 Byte Uygulamalara özgü ayrılmıştır.

Sonraki 4 Byte Veri (Data) başlangıç adresini verir.

 

Adres (Offset) Uzunluk Açıklama
0 2 Byte – ASCII Dosya İmzası
BM – Windows 3.1x, 95, NT, …
BA – OS/2 struct Bitmap Array
CI – OS/2 struct Color Icon
CP – OS/2 const Color Pointer
IC – OS/2 struct Icon
PT – OS/2 Pointer
2 4 Byte – uint Dosya Boyutu
6 2 Byte Uygulamalara özgü ayrılmıştır.
8 2 Byte Uygulamalara özgü ayrılmıştır.
10 4 Byte – uint Veri (Data) başlangıç adresi

 

Header (Başlık) Bilgisi

BMP-BM dosyası başlık bilgisi boyutu 40 Byte’tır.

4 Byte Başlık Bilgisi uzunluğunu verir.

4 Byte Resim genişliğini verir. Piksel cinsinden.

4 Byte Resim yüksekliğini verir. Piksel cinsinden.

2 Byte Color Planes (Renk düzlemini verir) Değeri 1’dir.

2 Byte Renk derinliğini verir. 24, 32

4 Byte Sıkıştırma metodunu verir.

4 Byte Resim Boyutunu verir. Raw Bitmap veri boyutudur.

4 Byte Resmin yatay çözünürlüğü.

4 Byte Resmin dikey çözünürlüğü.

4 Byte Renk Sayısı.

4 Byte Kullanılan önemli renklerin sayısı. Genellikle göz ardı edilir.

 

Adres (Offset) Uzunluk Açıklama
14 4 Byte – uint Başlık (Header) Bilgisi Uzunluğu
18 4 Byte – int Resim Genişliği
22 4 Byte – int Resim Yüksekliği
26 2 Byte – ushort Color Planes (Renk düzlemini verir) Değeri 1
28 2 Byte – ushort Renk Derinliği
1-Bit
4-Bit
8-Bit
16-Bit
24-Bit
32-Bit
30 4 Byte – uint Sıkıştırma Metodu
0 – Sıkıştırma Yok
1 – 8-Bit RLE (Run Length Encoding) Sıkışrması
2 – 4-Bit RLE (Run Length Encoding) Sıkışrması
34 4 Byte – uint Raw Bitmap veri boyutu
38 4 Byte – int Yatay Çözünürlük
42 4 Byte – int Dikey Çözünürlük
46 4 Byte – uint Renk Sayısı
50 4 Byte – uint Kullanılan önemli renklerin sayısı.

 

Veri (Data)

1-Bit için 2 renk vardır. Bunlar Siyah ve Beyazdır.

2-Bit için 4 renk vardır. 1 Byte’ta 4 piksel saklanır.

4-Bit için 16 renk vardır. 1 Byte’ta 2 piksel saklanır.

8-bit için 255 renk vardır. 1 Byte’ta 1 piksel saklanır.

16-bit için 65536 renk vardır. 2 Byte’ta 1 piksel saklanır.

24-bit için 16,777,216 renk vardır. 3 Byte’ta 1 piksel saklanır.

32-Bit için 4,294,967,296 renk vardır. 4 Byte’ta 1 piksel saklanır.

 

Renk paleti için RGB kullanılır. Kırmızı, Yeşil ve Mavi ana renk karışımlarından oluşur.

 

8-Bit için;

İlk 3 bit Kırmızı renk değerini, sonraki 3 bit yeşil renk değerini, kalan 2 bit ise mavi renk değerini tutar.

KKKYYYMM

 

24-Bit için;

1. Byte Mavi değerini tutar.

2. Byte Yeşil değerini tutar.

3. Byte Kırmızı değerini tutar.

 

32-Bit için;

1. Byte Mavi değerini tutar.

2. Byte Yeşil değerini tutar.

3. Byte Kırmızı değerini tutar.

4. Byte Alpha değerini tutar.

 

İlk veri pikseli en sondan (Y-1) ve soldan (0) başlar. Sağa doğru genişlik kadar (G-1), sonra bir yukarı (Y-2), sonra genişlik kadar (G-1) sağa devam eder.

SnapCrab_No-0082

 

Kaynak
http://en.wikipedia.org/wiki/BMP_file_format

 

Hayırlı günler, sağlıcakla kalın.

Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.

ID3 Etiketi

MPEG katman (layer) I, II, III ses dosyalarında yer alır ve başlık, artist vb. bilgileri tutar.

ID3v1

Dosyanın sonunda bulunur. Ses verisinden sonra gelir.

Toplam 128 byte yer tutar.

İlk 3 byte verisi ASCII karakter olarak TAG ile başlar.

Sonraki 30 byte’lık veri başlık bilgisini tutar.

Sonraki 30 byte’lık veri artist bilgisini tutar.

Sonraki 30 byte’lık veri albüm bilgisini tutar.

Sonraki 4 byte’lık veri yıl bilgisini tutar.

Sonraki 30 byte’lık veri yorum-açıklama bilgisini tutar.

Sonraki 1 byte’lık veri tür-tarz ID bilgisini tutar.

Toplamda 30+30+30+4+30+1 = 125 byte ve 3 byte’lık TAG verisiyle beraber 128 byte eder.

 

Alan Uzunluk
TAG 3 Karakter
Başlık 30 Karakter
Artist 30 Karakter
Albüm 30 Karakter
Yıl 4 Karakter
Yorum-Açıklama 30 Karakter
Tür-Tarz ID 1 Byte – 0-255
1 Byte = 1 Karakter, 1 Byte = 0-255

Tür-Tarz Tablosu

ID Hex Tür-Tarz ID Hex Tür-Tarz ID Hex Tür-Tarz ID Hex Tür-Tarz
0 00 Blues 20 14 Alternative 40 28 Alternative Rock 60 3C Top 40
1 01 Classic Rock 21 15 Ska 41 29 Bass 61 3D Christian Rap
2 02 Country 22 16 Death Metal 42 2A Soul 62 3E Pop/Funk
3 03 Dance 23 17 Pranks 43 2B Punk 63 3F Jungle
4 04 Disco 24 18 Soundtrack 44 2C Space 64 40 Native American
5 05 Funk 25 19 Euro-Techno 45 2D Meditative 65 41 Cabaret
6 06 Grunge 26 1A Ambient 46 2E Instrumental Pop 66 42 New Wave
7 07 Hip-Hop 27 1B Trip-Hop 47 2F Instrumental Rock 67 43 Psychedelic
8 08 Jazz 28 1C Vocal 48 30 Ethnic 68 44 Rave
9 09 Metal 29 1D Jazz & Funk 49 31 Gothic 69 45 Showtunes
10 0A New Age 30 1E Fusion 50 32 Darkwave 70 46 Trailer
11 0B Oldies 31 1F Trance 51 33 Techno-Industrial 71 47 Lo-Fi
12 0C Other 32 20 Classical 52 34 Electronic 72 48 Tribal
13 0D Pop 33 21 Instrumental 53 35 Pop-Folk 73 49 Acid Punk
14 0E Rhythm and Blues 34 22 Acid 54 36 Eurodance 74 4A Acid Jazz
15 0F Rap 35 23 House 55 37 Dream 75 4B Polka
16 10 Reggae 36 24 Game 56 38 Southern Rock 76 4C Retro
17 11 Rock 37 25 Sound Clip 57 39 Comedy 77 4D Musical
18 12 Techno 38 26 Gospel 58 3A Cult 78 4E Rock & Roll
19 13 Industrial 39 27 Noise 59 3B Gangsta 79 4F Hard Rock

 

ID3v1.1

ID3v1 deki yorum-açıklama kısmı 28 byte veriye indirilip kalan 2 byte’lık veriye albüm track alanı eklenmiştir.

 

Alan Uzunluk
TAG 3 Karakter
Başlık 30 Karakter
Artist 30 Karakter
Albüm 30 Karakter
Yıl 4 Karakter
Yorum-Açıklama 28 Karakter
Albüm Track 2 Byte (İlk Byte her zaman 0 ikinci Byte 1-255 Albüm Track)
Tür-Tarz ID 1 Byte – 0-255
1 Byte = 1 Karakter, 1 Byte = 0-255

 

Genişletilmiş ID3v1

ID3v1 etiketinden önce yerleştirilir.

227 Byte yer tutar.

İlk 4 Byte verisi ASCII karakter olarak TAG+ ile başlar.

Sonraki 60 Byte’lık veri başlık bilgisini tutar.

Sonraki 60 Byte’lık veri artist bilgisini tutar.

Sonraki 60 Byte’lık veri albüm bilgisini tutar.

Sonraki 1 Byte’lık veri hız bilgisini tutar.

Sonraki 30 Byte’lık veri tür-tarz bilgisini tutar.

Sonraki 6 Byte’lık veri başlangıç zamanını tutar. (mmm:ss)

Sonraki 6 Byte’lık veri bitiş zamanını tutar. (mmm:ss)

 

Alan Uzunluk
TAG+ 4 Karakter
Başlık 60 Karakter
Artist 60 Karakter
Albüm 60 Karakter
Hız 1 Byte (0 – Tanımsız, 1 – Yavaş, 2 – Orta, 3 – Hızlı, 4 – Çok Hızlı)
Tür-Tarz 30 Karakter
Başlangıç-Zaman 6 Karakter (mmm:ss)
Bitiş-Zaman 6 Karakter (mmm:ss)
1 Byte = 1 Karakter, 1 Byte = 0-255, m = dakika, s = saniye

 

 ID3v2

Dosyanın ilk başında yer alır. İlk 10 Byte ID3 bilgisidir.

ASCII karakter ID3 ile başlar.

Sonraki 2 byte’ın birinci byte versiyonu verir. İkinci byte 0’dır.

Sonraki 1 byte bayrağı temsil eder.

Sonraki 4 byte verinin boyutunu verir.* (4 x 0xxxxxxx – 7. bit alınmaz.)

 

Etiket Uzunluk Açıklama
ID3 3 Karakter ASCII Karakter
Versiyon 2 Byte Birinci Byte versiyon, İkinci Byte 0
Bayrak 1 Byte Versiyon 2 – ab000000
Versiyon 3 – abc00000
Versiyon 4 – abcd0000
Boyut 4 Byte 4 * 0xxxxxxx (Bit) 7. Bit Yok sayılır.
1 Byte = 1 Karakter, 1 Byte = 0-255

ID3v2 boyutu : 10 + (4 byte verinin boyutu)

Sonra Frame etiketleri gelir.

 

Versiyon 2’de Frame Etiketi: İlk 3 byte Frame Etiketi, Sonraki 3 byte uzunluk. Toplam 6 Byte + uzunluktan oluşur.

Versiyon 3 ve 4′ te ise İlk 4 Byte Frame Etiketi, Sonraki 4 Byte uzunluk, Sonraki 2 Byte bayraktan oluşur. Toplam 10 Byte + uzunluktan oluşur.

 

Versiyon 2 Versiyon 3 Versiyon 4 Açıklama
BUF RBUF RBUF Önerilen Tampon Boyutu
Tampon Boyutu      xx xx xx xx (4 Byte)
Embedded info flag 0000000x (Bit)
Offset to next tag    xx xx xx xx (4 Byte)
CNT PCNT PCNT Play counter
xx xx xx … (Frame Boyutu kadar)
COM COMM COMM Yorum-Açıklama
Metin Kodlaması  xx (1 Byte)
Dil                     xx xx xx (3 Byte)
Kısa Açıklama     <metin> (0 Byte’a kadar)
Açıklama            <metin>
CRA AENC AENC Ses Şifrelemesi
Sahip Kimliği           <metin> (0 Byte’a kadar)
Önizleme Başlangıcı xx xx (2 Byte)
Önizleme Uzunluğu  xx xx (2 Byte)
Şifreleme Bilgisi      <İkili (Binary) Veri>
CRM Encrypted Meta Frame
Sahip Kimliği      <metin> (0 Byte’a kadar)
İçerik/Açıklama  <metin> (0 Byte’a kadar)
Şifreli Veri Bloğu <İkili (Binary) Veri>
ETC ETCO ETCO Olay Zamanlama Kodları
EQU EQUA EQU2 Equalization
GEO GEOB GEOB Genel Kapsüllü Nesne
Metin Kodlaması   xx (1 Byte)
MIME tipi             <metin> (0 Byte’a kadar)
Dosya Adı           <metin> (0 Byte’a kadar)
İçerik Açıklaması <metin> (0 Byte’a kadar)
Kapsüllü Nesne    <İkili (Binary) Veri>
IPL IPLS Involved People List
Metin Kodlaması xx (1 Byte)
İçerik                <metin>
LNK LINK LINK Bağlantı Bilgileri
Frame Kimliği     xx xx xx (3 Byte)
URL                   <metin> (0 Byte’a kadar)
Ek Kimlik Verisi   <metin>
MCI MCDI MCDI Müzik CD Kimliği
CD TOC     <İkili (Binary) Veri>
MLL MLLT MLLT MPEG Konum Arama Tablosu
MPEG frames between reference xx xx (2 Byte)
Bytes between reference            xx xx xx (3 Byte)
Milliseconds between reference   xx xx xx (3 Byte)
Bits for bytes deviation               xx (1 Byte)
Bits for milliseconds dev.            xx (1 Byte)
PIC APIC APIC Ekli Resim
Metin Kodlaması xx (1 Byte)
Resim Format     xx xx xx (3 Byte – V2) – MIME Tipi metin (0 Byte’a kadar – V3-V4)
Resim Tipi          xx (1 Byte)
Açıklama            <metin> (0 Byte’a kadar)
Resim Veri          <İkili (Binary) Veri>
POP POPM POPM Popülerlik Sayacı
Kullanıcı E-postası <metin> (0 Byte’a kadar)
Reyting                xx (1 Byte)
Sayaç                  xx xx xx … (Frame uzunluğuna kadar)
REV RVRB RVRB Reverb
Reverb left (ms)                     xx xx (2 Byte)
Reverb right (ms)                   xx xx (2 Byte)
Reverb bounces, left               xx (1 Byte)
Reverb bounces, right             xx (1 Byte)
Reverb feedback, left to left     xx (1 Byte)
Reverb feedback, left to right   xx (1 Byte)
Reverb feedback, right to right xx (1 Byte)
Reverb feedback, right to left   xx (1 Byte)
Premix left to right                  xx (1 Byte)
Premix right to left                  xx (1 Byte)
TAL TALB TALB Albüm/Film/Show Başlık
Metin Kodlaması xx (1 Byte)
İçerik                <metin>
TBP TBPM TBPM BPM (Beats Per Minute)
TAL – TALB Bakınız.
TCM TCOM TCOM Composer
TAL – TALB Bakınız.
TCO TCON TCON İçerik Tipi
TAL – TALB Bakınız.
TCR TCOP TCOP Telif Hakkı Mesajı
TAL – TALB Bakınız.
TDA TDAT Tarih
TAL – TALB Bakınız.
TT1 TIT1 TIT1 İçerik Grup Açıklaması
TAL – TALB Bakınız.
TT2 TIT2 TIT2 Başlık/Şarkı Adı/İçerik Açıklaması
TAL – TALB Bakınız.
TT3 TIT3 TIT3 Altyazı
TAL – TALB Bakınız.
TXT TEXT TEXT Söz Yazarı/Metin Yazarı
TAL – TALB Bakınız.

 

Devamı en kısa zamanda yazılacak Allah’ın izniyle.

 

Kaynaklar

http://id3.org/ID3v1

http://id3.org/id3v2-00

http://id3.org/d3v2.3.0

http://id3.org/id3v2.4.0-frames

 

Hayırlı günler, sağlıcakla kalın.

Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.

 

Quick Sort (Hızlı Sıralama) Algoritması

Selamün Aleyküm Arkadaşlar;

Hızlı sıralama algoritması adından da anlaşıldığı üzere hızlı sıralama algoritmalarından birisidir. Çalışma mantığı; herhangi bir sayı seçilir. Buna Pivot denir. Ortadaki, sondaki, baştaki veya rastgele bir sayı da olabilir. Küçük olan sayılar; seçilen sayının soluna, büyük olan sayılar sağına yazılır. Küçük olan ve büyük olan sayılarda aynı şekilde sıralanır. Bir örnekle açıklayalım.

Şöyle bir dizimiz olsun.

SnapCrab_No-0073

Sondaki elemanı pivot olarak seçelim ve küçük olanları sola, büyük olanları sağa yazalım.

SnapCrab_No-0075

Sonra sağ ve sol kısımda aynı şekilde sıralanır. Tek eleman kalana kadar bu işlem devam eder. İşlemin sonunda dizi sıralanmış olur.

SnapCrab_No-0076

 

C#

Proje dosyasını buradan indirebilirsiniz.

 

PHP

 

Hayırlı günler, sağlıcakla kalın.

Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.