Ağu 082016
 

Bu yazımda sizlere temel stack işlemlerini C dili ile yazmayı anlatacağım. Stack (yığın) yapısı anlatımını internetten kolayca bulabilirsiniz. Ya da hazırlamış olduğum videodan bu anlatıma ulaşabilirsiniz. Bu yazıda Stack yapısını bildiğiniz varsayılacaktır. Bilmiyorsanız en aşağıdaki videomu incelemenizi tavsiye ediyorum.

 

Anlatacağım C kodu yapısında veri tutmak için dizi yapısı kullanılacaktır. Linked List yani bağlı liste uygulaması kullanılmamıştır. İsterseniz kodlarımızı yazmaya başlamadan önde bu projede hangi fonksiyonları yazacağız onlara bir göz atalım.

 

Temel Stack (Yığın) İşlemleri

1- Push Fonksiyonu: Bu fonksiyon Stack yapımıza eleman ekleyecektir.

2- Pop Fonksiyonu: Pop fonksiyonu çalıştırıldığında Stack yapımızdan eleman siler. Tabii Stack yapısı gereği en üstteki elemanı silecektir.

3- Peek Fonksiyonu: Stack üzerinde işlem yapmaz. Ancak çalıştırıldığında Stack yapısında en son eklenen elemanı size geri döndürür.

 

Yardımcı Stack Fonksiyonları

1- isEmpty Fonksiyonu: Bu fonksiyon stack yapımız boş mu diye kontrol edecektir. Pop fonksiyonunun yardımcısıdır çünkü stack'te eleman yoksa eleman silinemez

2- isFull Fonksiyonu: Fonksiyonumuz Stack yapımızın kapasitesinin dolu olup olmadığını kontrol eder.  Push fonksiyonun yardımcısıdır çünkü Stack dolu ise eleman eklenemez.

3- Display fonksiyonu: Olmazsa olmaz bir fonksiyon değildir, ancak bize stack'teki elemanları görmemiz açısından yardımcı olacaktır.

 

Şimdi temel kütüphanelerimizi ekliyoruz;

#include <stdio.h>
#include <stdbool.h>

Burada ilginizi çekecek temel nokta stdbool.h ifadesidir. Stdio.h'i zaten herzaman ekleriz. Stdbool, bool fonksiyonlarını kullanabilmemizi sağlamaktadır. Biz isFull() ve isEmpty() fonksiyonlarını bool fonksiyonu olarak yazacağımız için bu ifadeyi ekledik.

Şimdi Dizi oluşturmadan önce dizi boyutumuzu belirlemek için bir ifade yazıyoruz.

#define MAX 5

Bu ifade elbette ki dizimizin boyutunu falan belirlemiyor. Ama kabaca anlatmak gerekirse biz "5" yazmak yerine MAX yazdığımız zaman kod içerisinde 5 yazmış oluyoruz. Bu ifadeyi dizimizin köşeli parantezlerinin arasına yerleştireceğiz.

Şimdi kritik noktaya geldik. Bizim stack yapımızda tutacağımız 2 değişkenimiz var. Stack yapısı gereği sürekli olarak en son elemanı tutar. Biz buna top elemanı adını vereceğiz. Her eleman stack'e eklendikten sonra, sonraki eleman ekleninceye kadar top elemanı olur. Yani son eklenen eleman her zaman top elemanıdır. Tabii bir de dizimiz olmalı. Biz elemanları dizi içerisinde kullanacağız. iki değişkenim olacağından struct yapısını kullanacağım.

 

struct stack{
int dizi[MAX];
int top;
}bs;

Eğer struct yapısını bilmiyorsanız bu konuya dönüp öğrenmenizi tavsiye ederim. Tahmini 10 dakikanızı alacak bir emek istecektir. Ama burada yaptığımı anlatmam gerekirse, stack isminde bir struct yapısı oluşturdum. İçerisine dizi ve top isminde 2 değişken yerleştirdim. en sonda yazan bs ise stack yapımıza bir isimle ulaşmamızı istediğim için yazdığım bir "alias. yani ben bs.top dediğim zaman struct içerisindeki top değerini düzenleyebileceğim. Bu şekilde bir kullanımımız olacak.

Şimdi ise temel fonksiyonları değil!, yardımcı fonksiyonları yazacağız.

İlk olarak isFull() Fonksiyonumu yazıyorum.

 bool isFull()
 {
     if(bs.top == MAX-1)
        return true;
    else
        return false;
 }

bs.top değeri aslında dizinin indisini kontrol eder. Yani 4 elemanlı bir dizinin top değeri 4'tür. Bu değer MAX-1'e eşitse stack dolu demektir.
O noktada return true döndürür. Fonksiyon kendi içindeki mantığa göre olumlu sonuç verir. Biz buradan Stack yapımızın dolu olduğunu anlarız. Yok eğer false
veriyorsa stack dolu değil yani eleman eklenebilir demektir.

Şimdi isEmpty() fonksiyonumuz ile stack yapımızın boş olup olmadığını kontrol ederim. Bu yapı pop() fonksiyonu için yazılmaktadır. Eleman yoksa yani stack
boşsa bize işlem yapmasın diyedir.

 bool isEmpty()
 {
     if(bs.top == -1)
        return true;
     else
        return false;
 }

Burada bs.top değeri -1 ise Stack yapımız boş demektir. Aklınıza şu soru gelecektir. bs.top değerimiz -1 değil ki? hah işte onu main fonksiyonu içerisinde halledeceğiz. ve bs.top = -1 diyerek konutu kapatacağız :)

 void peek()
 {
     printf("\nTop Elemani %d\n", bs.dizi[bs.top]);
 }

peek foksiyonu bize en tepedeki değerin ne olduğunu belirtir. Bunu çalıştırdığımızda Stack'in en son elemanını bize söyleyecek. Stack'in en son elemanını bize söyleyen ifade bs.dizi[bs.top] ifadesidir.

Şimdi esas işlemlere geçebiliriz. Push fonksiyonu ile başlayalım. Bu fonksiyonun işlevi Stack yapısına eleman eklemek olacak. Algoritmasının mantığı ise çok basit. Her eleman eklendiğinde top değeri 1 artacak. Ve mevcut dizinin top indisine yeni datamız atanacak. unutmayın, Stack yapısında eklenen her eleman en az 1 kere top elemanı olmuştur. Bu Stack veri yapısının mantıksal yapısı ile alakalıdır.

 void push(int data)
 {
     if(!isFull())
     {
         bs.top = bs.top+1;
         bs.dizi[bs.top] = data;
     }
     else
     {
         printf("\nStack Dolu!!!\n");
     }
 }

void push diye fonksiyon oluşturduk. Ancak dikkat ederseniz bir tane parametre girdik ve int data diye bir tane değişken tanımladık. Bu değişken bizim atayacağımız sayıyı belirtiyor. yani push(10) dersek, 10 sayısı kodlar çevresinde eklenecektir.

Kodumuzun içeriğine bakacak olursak ilkin bir if bloğuna girmişiz ve kontrol yapmışız. Yaptığımız kontrol şu !isFull() . Yani Stack eğer dolu değilse işlem yap, eğer doluysa "Stack dolu" şeklinde bir uyarı verdirmişiz. Tabii önemli kısım eğer stack dolu değilse yapacağımız işlem. Biz burada eleman ekliyoruz.

bs.top değerini bs.top+1'e atamamız top değerini 1 artırdığımız anlamına geliyor. Yani artık stack yapımızda bir adet daha fazla eleman var diyoruz. Böylece dizimizin indisi de 1 artacak, çünkü bs.top ifadesini dizi içerisindeki köşeli parantezlerimizin içine atıyoruz. Zaten bu işlemi bs.dizi[bs.top] = data; satırında görüyoruz. diziye atanan değer fonksiyonumuza parametre olarak girdiğimiz int data değeri. Bu işlem, Stack yapımıza belirtilen elemanı ekliyor.

Şimdi Pop() fonksiyonuna geçebiliriz.

 void pop()
 {
     if(!isEmpty())
     {
         int x;
         x = bs.dizi[bs.top];
         bs.top = bs.top-1;
         printf("\n cikartilan eleman .... %d", x);
     }
     else
     {
         printf("\nStack Zaten Bos....\n");
     }
 }

burada da aynı şekilde if bloğu var. Bu blok stack yapımızın boş olup olmadığını kontrol ediyor. Daha önceden de dediğim gibi, isEmpty() fonksiyonu pop fonksiyonunun yardımcısıdır. Eğer Stack doluysa eleman çıkarılmaz. Bu durumda hata mesajı verir.

Peki biz burada ne yapıyoruz? Aslında işin özü tek satır kod. biz sırf şu kod ile bs.top = bs.top-1; stack'ten eleman çıkarabiliyoruz. yani biz top değerini 1 azaltırsak tepedeki eleman kayboluyor. Peki diğer satırlar ne? O satırları çıkartılan elemanı bize göstersin diye yazdım. İlk olarak int x diye bir değişken oluşturdum. Daha sonra bu değişkene en üstteki elemanı x=bs.dizi[bs.top] ifadesi ile atadım. Yani elimde tuttum bunu, bs.top = bs.top-1 komutunu çalıştırdığımız zaman top değeri değiştirileceği için önceden bu değeri sakladık ki çıkartılan elemanı geri döndürebilelim. printf("\n cikartilan eleman .... %d", x); satırında ise x değerini yazdırdık. Yani çıkartılan elemanı bize bildirmiş oldu. Pop fonksiyonunun aslı bs.top = bs.top-1; ifadesidir. Diğer 3 satır kodu ben çıkartılan elemanı bize göstersin diye yazdım.

Şimdi en son fonsiyonumuzu yazıyoruz. Yani display() fonksiyonu. Bu fonksiyon bize stack'teki elemanları gösterecek.

 void display()
 {
     int i;
     for(i = bs.top; i>=0; i--)
     {
         printf("\n%d\n", bs.dizi[i]);
     }
 }

dikkat etmeniz gereken temel nokta i=0 yerine i = bs.top demem. Bunun tek bir amacı var, yukarıdan aşağıya sıralama yapmak. Eğer böyle yaparsak stack yapısına uygun bir görünüm yapmış oluruz. Zaten for döngüsünü anlatmama gerek yok, bunu biliyorsunuz. Temel olarak dizideki elemanları tek tek ekrana bastırıyoruz, tüm olayı bu.

İşte şimdi geldik main fonksiyonumuza, tabii burası artık en basit yer. Çünkü tüm fonksiyonlarımızı yazdık. Burada yapacağımız işlem tabii ki "menü" oluşturmak. Menü oluşturalım ki kullanıclarla kolayca interaksiyona girebilelim.

int main()
 {
     int secim, secim1;
     bs.top = -1;
     while(1==1){
     printf(" \n 1- Eleman Ekle\n");
     printf(" \n 2- Eleman Cikar\n");
     printf(" \n 3- Top Elemanini Goster\n");
     printf(" \n 4- Stack Elemanlarini Goster\n");
     scanf("%d", &secim);

     switch(secim)
     {
     case 1:
        printf("\n Hangi elemani eklemek istiyorsunuz? ....\n");
        scanf("%d", &secim1);
        push(secim1);
        break;
     case 2:
        pop();
        break;
     case 3:
        peek();
        break;
     case 4:
        display();
        break;
     }
     }
 }
burayı uzun uzun anlatmıyorum. Menü oluşturuyoruz, switch case ile gerekli fonksiyonlarımızı çağırıyoruz. Tek dikkat etmeniz gereken yer bs.top=-1 satırı. Bu satırı unutmayalım unutturmayalım. Tüm kodları ve videoyu aşağıda paylaşıyorum. 

 #include 
 #include 

 #define MAX 5

 struct stack{
    int dizi[MAX];
    int top;
 }bs;

 bool isFull()
 {
     if(bs.top == MAX-1)
        return true;
    else
        return false;
 }

 bool isEmpty()
 {
     if(bs.top == -1)
        return true;
     else
        return false;
 }

 void peek()
 {
     printf("\nTop Elemani %d\n", bs.dizi[bs.top]);
 }

 void push(int data)
 {
     if(!isFull())
     {
         bs.top = bs.top+1;
         bs.dizi[bs.top] = data;
     }
     else
     {
         printf("\nStack Dolu!!!\n");
     }
 }

 void pop()
 {
     if(!isEmpty())
     {
         int x;
         x = bs.dizi[bs.top];
         bs.top = bs.top-1;
         printf("\n cikartilan eleman .... %d", x);
     }
     else
     {
         printf("\nStack Zaten Bos....\n");
     }
 }

 void display()
 {
     int i;
     for(i = bs.top; i>=0; i--)
     {
         printf("\n%d\n", bs.dizi[i]);
     }
 }

 int main()
 {
     int secim, secim1;
     bs.top = -1;
     while(1==1){
     printf(" \n 1- Eleman Ekle\n");
     printf(" \n 2- Eleman Cikar\n");
     printf(" \n 3- Top Elemanini Goster\n");
     printf(" \n 4- Stack Elemanlarini Goster\n");
     scanf("%d", &secim);

     switch(secim)
     {
     case 1:
        printf("\n Hangi elemani eklemek istiyorsunuz? ....\n");
        scanf("%d", &secim1);
        push(secim1);
        break;
     case 2:
        pop();
        break;
     case 3:
        peek();
        break;
     case 4:
        display();
        break;
     }
     }
 }

Tem 032016
 

Sıkça Kullanılan SEO Terimleri

 

Eğer Seo öğrenmeye yeni başladıysanız birçok terim size yabancı gelecektir. Bu gayet normal bir olaydır, yeni öğrenmeye başladığınız pek çok şeyde böyle problemlerle karşılaşabilirsiniz. Bilmediğiniz terimlerin çok sayıda olması gözünüzü korkutmasın. Bu hızla üstesinden gelebileceğiniz bir problemdir. Sizler için SEO hakkında sıkça kullanılan terimlerin anlamlarını açıklıyoruz.

 

H1, H2, H3,…. : Eğer bu tip bir terim gördüyseniz bu başlık anlamına gelir. H harfi, İngilizce Heading, yani “başlık” kelimesinin kısaltmasınız. Yanındaki rakamlar ise büyüklüğü belirtir. Kafanız şu konuda karışmasın en küçük rakam olan 1, aslında en büyük başlığı açıklar. Rakam sayısı arttıkça başlıkların büyüklüğü küçülür.

 

Black Hat SEO: Kötü niyetli olarak SEO yapma eylemine bu ad verilir. Pek tasvip edilmeyen yöntemler kullanılır. Kullanılan yöntemler legal değildir. Bu işlemleri yapanlar genellikle Google vb. Arama motorları tarafından cezalandırılır.

 

White Hat SEO: İyi niyetli olarak yapılan legal SEO işlemleridir. SEO işlemlerinin önerilen yolları bunlardır. Bu şekilde yaptığınız SEO işlemleri sırasında hiçbir yaptırım görmezsiniz.

 

PR (Pagerank): Genellikle “sitelerin pr değeri” gibi ifadelerde karşımıza çıkar. Page Rank’ın kısaltmasıdır. Bir sitenin değerinin Google nezdindeki puanıdır. 0-10 arasında değişir. Yeni açılmış bir sitenin puanı 0’dır. Ama mesela Facebook’un değeri ise 10’dur.

 

Spam: Spam kirlilik anlamına gelir. Sizin uyguladığınız bir SEO yöntemini, abartarak uygulamanız sonucu ortaya çıkan duruma verilen addır. Mesela bir yazınızda çok sayıda link vermenize spam denir.

 

NoFollow: Eğer bu terimi duyarsanız bilin ki orada link verme sisteminden bahsediliyordur. Link verirken rel parametresi içerisinde kullanılan mikroformattır. Amacı, verdiğiniz linkin Google tarafından hesaba katılmamasıdır. Bol link kullanmanız gerektiğinde bu mikroformatı kullanabilirsiniz.

 

Index-Indexlenme: SEO ile uğraşırken en sık duyacağınız terimdir. Anlamı ise çok basittir. Sizin hazırlamış olduğunuz bir web sitesinin Google aramalarında görülebilirliğini temsil eder. Eğer birisi “Sitem indexlenmiş” diyorsa bunun manası o kişinin web sitesinin Google aramalarında görüldüğüdür.

 

Tem 032016
 

Güncel SEO Teknikleri

 

Web Sitelerimizi internet dünyasında tanıtmanın en iyi yollarından bir tanesi olan SEO her geçen gün çok daha önemli bir hal almaktadır. Doğal olarak da SEO teknikleri ve algoritmaları her geçen gün değişmektedir. Bu yüzden web sitesi sahipleri sürekli olarak güncel SEO tekniklerini takip etmeli, sitelerini bu yeni tekniklere göre düzenlemelilerdir. Tabii bunları uygularken eski içeriklerini revize etmeyi de unutmamalılar.

 

Bizler sizlere, 2016 yılında geçerli olan ve tamamen dürüstlük içeren, Google tarafından hiçbir ceza almamanızı sağlayacak yöntemleri size bu yazıda aktaracağız.

 

Eski İçeriğinizi Revize Edin

Bir web sitesine yeni eklenen verilerin SEO uyumlu olması kadar, eski içeriğinde düzeltilmesi oldukça önemlidir. Bu biraz zaman alabilir ancak emekleriniz asla boşa gitmeyecektir. Bilgi içeren yazılarınızı görsellerle desteklemelisiniz. Ancak unutmayın, eklediğiniz görseller yazıyla uyumlu olmalı, boyutları büyük olmamalı ve gerekli “alt” bilgileri girilmiş olmalıdır.

 

Web Sitenizin Açılış Süresini kısaltın

Özellikle Google gibi arama motorları için hızlı açılan siteler önceliklidir. Bu yüzden sitenizin hızlı açılması için her türlü eylemi yapın. Sitenize Cache sistemi kurun. Sitenizin bulunduğu Host’u kendi ülkenize taşıyın.

 

Link Satın Almayın Satın Aldıysanız Bunları Temizleyin

Eski SEO tekniklerinde işe yarayan ancak yeni Algoritmalarla birlikte işe yaramamaya başlayan link satın alma uygulaması artık web sitenize iyilik değil tam aksine kötülük yapmakta. Eğer satın aldıysanız eski linkleri kaldırtmaya çalışabilirsiniz. Ve asla yeni link satın almamalısınız.

 

Web Siteniz Mutlaka Mobil Uyumlu Olsun

Google özellikle mobil aramalarda mobil uyumsuz olan web sitelerini arka sıralara atmaktadır. Bu da web sitenize gelen ziyaretçileri önemli ölçüde etkileyecektir. Bu yüzden web sitenizi mutlaka mobil uyumlu yapmalısınız. Gelecekte mobil kullanımının artacağı düşünülürse bunun önemini elbette ki tahmin edebilirsiniz.

Tem 022016
 

Sistem değişiyor, insan değişiyor. Ancak malesef içgüdülerimiz sabit kalıyor. Hayvanlardan evrimleşip geldik, ancak erkekler olarak bir kümesteki horoz gibi davranmaktan kendimizi alamıyoruz. Sosyal medyada bile, anormal şekilde kadınlara yardım etme gerekliliği hissediyor, koruma içgüdüsüne giriyoruz. Ben mesela hafiften hoşlandığım hatun twitter'da biriyle kavga edince onu koruyasım geliyor. İçgüdü bu abi, evet size hayvanca gelecek ama, ben içten içe ondan muhtemelen çocuk sahibi olmak istiyorum, bu yüzden onu koruma gereksinimi duyuyorum. Yani bir nevi horozluk yapıyorum.

 

Bir horoz neden horozluk yapar? Kümesindeki diğer tavukları neden korur? Çünkü horoz bunlara spermlerini aktarır, bir nevi seks yapar, onlar sayesinde neslini sürdürür. Bu yüzden kendi koruma alanındaki tavuklara dışarıdan gelecek bir saldırı onun neslini kurutma manası taşır. Muhtemelen geçmiş çağlarda insanlar da bu şekilde bir yapı içindelerdi. Kendi kabileleri içerisindeki kadınları sürekli olarak korurlar, onlarla sevişerek çocuk sahibi olurlardı. Bu elbette ilkel, bugünkü manasıyla kadın haklarına aykırı bir durumdu. İnsan geliştikçe kadın hakları arttı ve kümesler dağıldı. Biz horozlar artık hiçbir kümesin efendisi değiliz. Bu durumdan ötürü üzgün de değilim bir erkek olarak açıkçası. Kadınlar çiftleşecekleri erkekleri kendi özgür iradeleriyle seçebiliyorlar. Bu büyük bir kazanım herkes için. Artık kümes beyliği kalmadığına göre, bizim de horoz gibi davranmamıza, çevremizdeki kadınları kendi üreme araçları olarak görmek gibi ilkel triplere girmemize gerek yok! Evet gerek yok!

 

Üniversitedeki erkeklerde bu horozluk psikolojisi sık görülür. Mesela bir kız taşınacak değil mi? Normalde kıçını kaldırmaya tamah etmeyen erkekler gruplar halinde gider ve o kıza yardımcı olur. Bir kızı birisi rahatsız mı etti? Hemen erkekler kendilerine görev edinip horozluk yaparak içgüdüsel olarak onu korumaya çalışır. Abi pardon ama o kız sizinle sevişmeyecek ki :D o kızdan üremeyeceksin, o kız senin soyunu devam ettirmeyecek. "ne kadar ilkel konuşuyorsun sen ya!" diyorsanız, sizin horozluk taslayarak bir kıza toplu halde yardımcı olmanızın da ilkel bir hareket olduğunu vurgulamak zorundayım. Bu evrende herkes çıkarı için hareket eder. Sen kız kardeşini bile koruyup kolluyorken, içten içe çevreye güçlü ve kollayıcı erkek imajı vermek istersin. "bak benim kadınım olacak kadını da böyle kollarım" mesajı, sen fark etmesen de içinde vardır. Ama artık devir değişti. Ortada kümes yoksa, biz o kümesteki dişilerle üreyemiyorsak, çevremizdeki kadınları koruyup kollamamızın faydası yok. İlkel güdülerimiz yüzünden hayatımızı tehlikeye atmamıza gerek yok. Bir kadın yolun ortasında sevgilisi tarafından bıçaklanıyor mu? Bizim tek yapmamız gereken böyle bir olaya şahit olmamız sonucu üzerimize düşen yasal sorumluluğu yerine getirmemiz. Yani polise haber veririz ve o iş biter. Neden horozluk içgüdülerimizin bizim canımızı tehlikeye atacak bir eyleme yol açmasına izin verelim ki? Let her Die! Evet, çok net söylüyorum, sevişmediğimiz ve çocuk yapmadığımız kadınları korumak zorunda değiliz. Yasal sorumluluklarımızı yerine getiririz o ayrı bir mesele.

Paramız yoksa ve yakışıklı değilsek, selamımızı bile almayan kadınları neden koruyalım diye çıldırıyoruz ki? Adamlık için mi? Bırakalım bunları, hepimiz biliyoruz, kadınlar da biliyor. Bizler kadınlara tüm iyiliği içten içe seks yapmak için yapıyoruz. Spermlerimizi onlara aktarmak için yapıyoruz. Ama şunu unutuyorsunuz, bu ilkel hisler, kadınların pek haklarının olmadığı, güçlü erkeğin zaten istediği kadına adeta el koyduğu çağlardan kalan hisler. Evet, bir kız taşınırken bavullarını taşımak için köpek gibi koşturuyorsun ya, bu eski çağlardaki atalarımızın kendi kabilesindeki kadınlarını korumak için ortaya koyduğu endişe ile aynı. Ama fark var, o kabilenin kadınları, o kabiledeki kadınlarda seks yapıyor, çocukları oluyordu. Sen ise şu an bir hiçsin. Anlıyor musun beni? Hiçsin. Bavul taşıyan adamsın. Arkadaş olduğu kızın yemek hesaplarını ödeyen arkadaşım kızın telefonunda "bedava yemek" olarak kayıtlıydı. Sen bunu kendine yediriyor musun? Erkek olmak gibi bir kavrama inanıyorsan, bu kavramın esas ana konusu o kızın hesabını ödemek değil, kendini böyle komik duruma düşürmemek olmalı.

 

Kadın hakları arttıkça, buna bağlı olarak kadınların kendi eşlerini seçme özgürlüğü ortaya çıkınca bizim de görevimiz bitmiş oldu. Evet abi bitti.

 

Hiçbir kadının eşyasını taşımak zorunda değiliz

Hiçbir kadının yediği yemeğin hesabını ödemek zorunda değiliz.

Hiçbir kadın hayati tehlike altındayken onu korumak zorunda değiliz. (yasal sorumluluklar gereği güvenlik güçlerine haber vermeyi unutmayalım. Aksi taktirde suçlu duruma düşeriz. Bunu kadınlar için değil, kendimiz için yapmalıyız)

Hiçbir kadına taciz ettiler diye ortamlara koşa koşa gidip onların yanlarında yer almak zorunda değiliz.

 

Artık kümesler yok, biz horoz değiliz. İlkel dürtülere gerek kalmadı. Artık kendi kabilen diye bir mevzu yok. Çorum'un bir mahallesindeki bir kız isterse gider bir ermeni erkekle sevişebilir. Ondan çocuk yapabilir. Ortam böylesine özgür bir hale gelmişken sen neden "mahallemizin kızı" diye triplere giriyorsun? Kızın zaten böyle bir talebi yok. Kızın senle seviştiği yok, sevişeceği yok. Senden çocuk yapacağı hiç yok. Tribin neye horoz? Derdin ne horoz? Otur oturduğun yerde, keyfine bak, siktir et.

Tem 022016
 

Twitter toplu kullanıcı takip etme işleminin pek çok yolu bulunmakta. Bu yolların programlı olanları zaten satın alınıp basit şekilde kullanılabiliyor. Eğer para harcamadan Twitter'da toplu takip yapmak isterseniz bu iş için çok kolay bir javascript kodu bulunuyor.

 

Kod deyince gözünüz korkmasın, çok ama çok basit bir kullanımı var.  Öncelikli olarak yapmanız gereken neredeki kullanıcıları takip edeceğinizi tayin etmek. mesela onedio'yu takip edenleri takip etmek istiyorsunuz. Hedef kitleniz bunlar. (günde en fazla 1000 kullanıcı takip edebileceğinizi unutmayın!). Twitter sayfasına gelin, followers sayfası açık olsun. Burası çok önemli. Followers sayfası açık olmazsa kod çalışmaz. https://twitter.com/onediocom/followers vermiş olduğum linke gidin.

 

Eğer Chrome kullanıyorsanız sayfa üzerinde sağ tıklayın ve "öğeyi denetle" ya da "incele" yazan yere gelin. Eğer Firefox kullanıyorsanız ctrl+shift+k'ya basmanız yeterli. Bu işlemlerin ardından geliştirici sayfası açılacaktır. iki browserda da açtığınız sekmeden console yazan bölümü açmanız gerekmektedir. Bu bölüm boş bir alandır. Bu boşluğa aşağıda size verdiğim kodu yapıştırıp enter'a tıklamanız yeterlidir. Tabii takip sürecinde birazcık beklemeniz gerekecek. Takip limiti dolunca console üzerinde hata almaya başlayacaksınız. Ama her defasında kodu yine çalıştırmaya çalışacaktır. Bu durumda browser'ınızı kapatın, işleminiz tamamlanmış olacaktır.

not: Bu işlemi Chrome üzerinde yapmanızı tavsiye ediyorum, daha az kasma yapıyor.

 

 

var say = 0;
var limit = 1000
var takipyap = setInterval(function() {
$(".ProfileCard-bio.u-dir:empty").each(function(){
$(this).parents(".Grid-cell.u-size1of2.u-lg-size1of3.u-mb10").remove();
});
$('div.not-following:not(.protected) > button.js-follow-btn').each(function(){
$(this).click();
if(say++ >= limit){
clearInterval(takipyap);
window.alert(limit+' kisi basariyla takip edildi.')
return false;
}
$(".message-text > a").each(function(){
if ($('.alert-messages').css('top') === '46px') {
clearInterval(takipyap);
clearInterval(asagi);
clearInterval(yukari);
}
})
});
}, 1000);
setInterval(function() {
$(".Grid-cell.u-size1of2.u-lg-size1of3.u-mb10").remove();
}, 60000);
var asagi = setInterval(function() {
$(window).scrollTop(0,document.body.scrollBottom);
},10009);
var yukari = setInterval(function() {
window.scrollTo(0,document.body.scrollHeight);
},1000);
Visit Us On TwitterVisit Us On FacebookVisit Us On Google PlusVisit Us On YoutubeVisit Us On Linkedin