HTML Responsive Slider Yapımı
Bu yazımızda web projelerinizde responsive slider eklemeniz için gerekli kodları paylaşacağız.
Slider, web tasarım terminolojisinde kullanılan bir terim olup, web sayfasına eklenen slayt ve sunular olarak kullanılır. Slider’ın kullanım amacı her internet sitesine göre farklılık gösterebilir ancak genellikle öne çıkan içerikler, en önemli içerikleri yada en son eklenen güncel içeriklerin gösterildiği görsel bölümler olarak kullanılırlar. Yapısına göre Slider’daki slayt şovlar otomatik olabileceği gibi kullanıcının geçiş yaparak kullanabileceği slayt şovlar da olabilir.
Slider önceden tanımlanmış zaman aralığında slaytları kaydırarak, kullanıcı girişi olmadan otomatik olarak slayt gösterileri çalıştırabilir. Slider, sonraki veya önceki slaytları görüntülemek için tıklama veya hızlıca kaydırma gibi kullanıcı etkileşimlerine de yanıt verebilir. Ayrıca, slider,
kullanıcıların sliderlardaki belirli bir slaydı görüntülemek için tıklayabilecekleri düğmeleri veya küçük resimleri de olabilir.
HTML Responsive Slider Kodları:
Sliderı HTML sayfamıza eklemek için etiketleri arasına js ve css dosyalarını yükleyin.
<script type="text/javascript" src="jquery-1.9.1.js"></script>
<script src="jquery.bxslider.js"></script>
<link href="jquery.bxslider.css" rel="stylesheet" />
Web sayfamıza aşağıdaki gibi kodları ekleyelim
<div class="bxslider">
<div><img src="images/coffee1.jpg" title="Funky roots"></div>
<div><img src="images/coffee2.jpg" title="The long and winding road"></div>
<div><img src="images/coffee3.jpg" title="Happy trees"></div>
</div>
Javascript ayar kodlarımız
$(function(){
$('.bxslider').bxSlider({
auto: true,
autoControls: true,
stopAutoOnClick: true,
slideWidth:300,
minSlides:5,
maxSlides:5,
slideMargin: 10
});
});
Yukardaki kodlar ile slider oluşturabilir ve web sayfanıza kolaylıkla entegre edebilirsiniz.
Kodların tümüni indirmek için aşağıdaki bağlantıyı kullanabilirsiniz. Aşağıdaki bağlantı slider dökümanının bütün halidir.
Php ile 1 gün Öncesi veya Sonrasının tarihini alma
Merhabalar arkadaşlar bu gün sizlerle php ile bir gün öncesi veya sonrası veya isteğe bağlı bir kaç gün öncesinin nasıl öğrenebilceğimize bakacağız. Bu işlem için strtotime(); fonksiyonu ile yapacağız.
Bir gün öncesini yani dünün tarihi için :
<?php
$bugun = date("d.m.Y");
$ara = strtotime('-1 day',strtotime($bugun));
echo date("d.m.Y",$ara); // dünün tarihi
?>
Yukarıdaki kod bloğu sayesinde dünün tarihini ekrana yazdırabilirsiniz.
Şimdi fonksiyonun diğer kullanımlarına bakalım
<?php
$bugun = date("d.m.Y");
$dun = strtotime('-1 day',strtotime($bugun));
$yarin = strtotime('+1 day',strtotime($bugun)); // birgün sonra yarın
$hafta = strtotime('+1 week',strtotime($bugun)); //Bir hafta sonra
$geri = strtotime('-1 week',strtotime($bugun)); //Bir hafta önce
?>
Yukarıdaki kodlar sayesinde hafta veya günleri istediğiniz kadar artırarak kullanabilirsiniz.
Arduino ile Buzz Wire Oyunu Yapımı
Arduino hobi projeleri ve oyunları oluşturmak çok popilerdir. Sizlerle bu yazımızda Buzz Wire Oyunu Yapımına değineceğiz.
Bu proje için Arduino Uno, Buzzer ve iki Alüminyum tel kullanacağız. Oyun durumunu görüntülemek için 16×2 LCD kullanılacaktır. Labirent telin her iki ucu Arduino’nun dijital pim 2 ve 3’üne bağlanacak ve tutamak teli Arduino’nun Toprak pimine bağlanacaktır. Dijital pinler INPUT_PULLUP pinleri olarak tanımlanır. Böylece tutma teli labirent teline dokunduğunda, dijital pim durumunu düşük olarak değiştirir ve zil sesi çalacaktır.
Labirent telinin sonuna bir diyot bağlanır, bu yüzden bu diyotun yanından geçtiğinizde ve labirent teline yuvarlak saplı tel ile dokunduğunuzda, sadece bir pim (Pin 3) alçalır. Bu durumda, LCD’de bir tebrik metni (Kazandınız) görüntülenir.
Gerekli Bileşenler
Arduino Uno
Alüminyum Tel
16×2 LCD
I2C Modülü
Breadboard
Buzzer
Diyot

Arduino Buzz Tel Oyunu için devre şeması yukarıda verilmiştir. I2C modülünün SCL ve SDA pinleri Arduino’nun A5 ve A4 pinlerine, I2C modülünün VCC ve GND pinleri Arduino’nun 5V ve GND pinlerine bağlanır. Buzzer’ın pozitif rayı Arduino’nun dijital pimi 4’e ve negatif rayı GND’ye bağlıdır. Bir alüminyum tel kesin ve Zig-Zag şeklinde bükün. Telin bir ucuna bir diyot lehimleyin. Daha sonra bir tutamak yapmak için bir tel daha kesin ve bir ucunu bir ilmek içine bükün.

Arduino Kodları :
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int startPin = 2;
const int endPin = 3;
const int buzzer = 4;
int start, end_;
void setup(void)
{
Serial.begin(9600);
lcd.begin();
lcd.clear();
pinMode(buzzer, OUTPUT);
pinMode(startPin, INPUT_PULLUP);
pinMode(startPin, INPUT_PULLUP);
}
void loop(void)
{
start = digitalRead(startPin);
end_ = digitalRead(endPin);
Serial.print(start);
Serial.print("\n");
Serial.print(end_);
if (start == LOW && end_== LOW ){
digitalWrite(buzzer, HIGH);
delay(1000);
digitalWrite(buzzer, LOW);
lcd.setCursor(0,0);
lcd.print("Try Again");
Serial.print("Try Again");
}
else if (start == HIGH && end_== LOW){
lcd.setCursor(0,0);
lcd.print("Well Done");
Serial.print("Well Done");
}
delay(500);
}
PHP Dosya Adını Değiştirme Ve Taşıma rename() Fonksiyonu
Php ile bir dosyanın adını değiştirmek için rename() fonksiyonunu kullanmamız gerekmektedir. Bu fonksiyon ile sadece dosya ismini değiştirmekle kalmaz dosyayı taşılabilirizde. Şimdi fonksiyonumuza detaylı bakalım :
Bir dosya veya dizinin eski adını kullanıcı tarafından belirtilen yeni bir adla değiştirmeye çalışır ve gerekirse dizinler arasında Taşıma yapabilir. Eğer, parametreler aynı dizini gösteriyor ise dosya adı değiştirilir, Farklı dizinleri gösteriyorsa taşıma işlemi gerçekleşir.
Kullanıcı tarafından belirtilen yeni ad zaten varsa, rename() fonksiyonu bu adın üzerine yazar. Dosyanın eski adı ve kullanıcı tarafından belirtilen yeni ad, rename() fonksiyonuna parametre olarak gönderilir ve başarı durumunda TRUE ve hata durumunda FALSE döndürür.
rename(old, new, context)
<?php
rename("one.txt","two.txt");
?>
Yukardaki kod ile dosya aynı dizinde sadece adı değişmektedir.
rename("test.txt", "ornek/deneme.txt");
Yukardaki kod çalıştırdığınızda test.txt dosyası ornek dizini altına deneme.txt olarak taşınır. Hata vermemesi için ornek dizini önceden olması gerekmektedir.
PHP ile Dosyaları açmak ve kapatmak fopen() – fclose()
Php fonksiyonlarından fopen() ve fclose() fonksiyonlarından bahsedeceğiz bu yazımızda. Php ile dosya açıp kapamaya yarayan bu fonksiyonlarımız ile ister sunucumuzdan ister urlden dosya açabiliriz. Dosya işlemlerini kullanarak, dosyaya veri yazmak ve dosyada veri okumak için dosyanın uygun kip ile birlikte açılmış olması gerekir. fopen() fonksiyonu bir dosya veya URL açar. Fonksiyon başarısız olursa, FALSE ve hata durumunda bir hata döndürür. Hata çıkışını gizlemek için fonksiyonun adının önüne “@” ekleyin.
fopen(filename, mode, include_path, context)
filename: Gereklidir. Açılacak dosyayı veya URL’yi belirtir.
mode: Erişim türünü belirten zorunlu bir parametredir.
Aşağıdaki olası KİP değerlere sahip olabilir:
“r”: Salt okunur anlamına gelir. Dosyanın başında başlar. Dosya yoksa FALSE değerini döndürür.
“r +”: Okuma / Yazmayı temsil eder. Dosyanın başından başlar. Dosya yoksa FALSE
“w”: Yalnızca Yazmayı temsil eder. Dosyanın içeriğini açar ve temizler veya yoksa yeni bir dosya oluşturur.
“w +”: Okuma / Yazmayı temsil eder. Dosyanın içeriğini açar ve temizler veya yoksa yeni bir dosya oluşturur.
“a”: Yalnızca Yazma’yı temsil eder. Açılır ve dosyanın sonuna yazar veya yoksa yeni bir dosya oluşturur.
“a +”: Okuma / Yazmayı temsil eder. Dosyanın sonuna yazarak dosyanın içeriğini korur.
“x”: Yalnızca Yazma’yı temsil eder. Yeni bir dosya oluşturur ve dosya zaten varsa FALSE ve bir hata döndürür.
“x +”: Okuma / Yazma’yı temsil eder.Yeni bir dosya oluşturur ve zaten varsa FALSE ve hata verir.
include_path: (php.ini) Dosyasında, dosyayı aramak istiyorsanız 1 olarak ayarlanmış isteğe bağlı bir parametredir.
context : İsteğe bağlı. Dosya tanıtıcısının bağlamını belirtir. Bağlam, bir akışın davranışını değiştirebilen bir seçenekler kümesidir.
<?php
$file = fopen( "test.txt", "r" );
?>
Özellik olarak nitelendirdiğimiz 2. parametre dosyanın okuma biçimidir.
r -> sadece okumak için w -> sadece yazmak için a -> dosya üzerine eklemek için
fopen() uzak dosyaları belirtebilir. PHP sizin için otomatik olarak bir HTTP / FTP bağlantısı açar ve dosya tanıtıcısını döndürür.
$dosya = fopen("http://www.google.com","r");
fclose()
Dosyaları kapatma PHP’deki fclose() fonksiyonu, açık dosya işaretçisi ile gösterilen bir dosyayı kapatmak için kullanılan dahili bir fonksiyondur. fclose() fonksiyonu başarı durumunda
<?php
$dt = fopen('dosya.txt', 'r');
fclose($dt);
?>
PHP explode() ile metinleri bölme parçalama
Bu yazımızda sizlerle explode() fonksiyonu ile php de biz metni nasıl parçalara ayıracağımıza bakacağız.
Explode() fonksiyonu metin ifadelerinde bir ayraç ile parçalamak için kullanılır. Bu fonksiyon, string ifade içinde belirlenen ayraç bulunduğu müddetçe metni parçalar ve bir dizi olarak geri döndürür. Konuya daha detaylı bakmak için örnek üzerinden ilerliyelim.
explode( ayraç,string,limit)
Ayraç : Gereklidir. Ayırıcı olarak stringi nereden böleceğini belirtir.
String : Gereklidir. Bölünecek, alt dizinlerine ayrılacak metin.
Limit : İsteğe bağlıdır. dizideki eleman sayısıdır.
Limit pozitifse dizi en çok belirtilen Limit sayıda eleman içerir ve metnin kalanı son elemana yerleştirilir.
Limit negatifse, son limit eleman hariç tüm elemanlar döndürülür.
Limit sıfırsa, Dizi bir eleman gösterir.
Dönen Değerler :
Ayraç boş (“”) bir dizge ise explode() fonksiyonu FALSE döndürür. Eğer ayraç stringi, metin içinde bulunmayan bir karakter içeriyorsa ve negatif bir limit belirtilmişse boş bir dizi döner. Diğer limit değerleri için metin içeren bir dizi döner.
<?php
$metin = "Güncel Teknoloji ve Programlama Platformu.";
$dizi = explode (" ",$metin);
echo '<pre>';
print_r ($dizi);
echo '</pre>';
?>
Array
(
[0] => Güncel
[1] => Teknoloji
[2] => ve
[3] => Programlama
[4] => Platformu.
)
Yukarda da görüldüğü gibi bölme işleminden sonra diziye değerler atanmıştır. Bu aşamadan sonra istediğimiz yerde istediğimiz dizi elemanını çağırarak yazdırabiliriz.
<?php
echo $dizi[3]; // Ekranda Programlama yazacaktır.
?>
Arduino Kullanarak Akıllı Restoran Menü Sipariş Sistemi
Günümüzün sistemler ev, ofis veya herhangi bir büyük endüstrisi olsun, her yerde otomasyon sistemleri ile donatılmıştır. Restoranlar / Oteller de son otomasyon trendlerini benimsiyor ve sipariş almak için yiyecek dağıtmak için robotlar ve tabletler kullanıyor. Tabletler gibi bu dijital menü kartlarını kullanarak müşteriler öğeleri kolayca seçebilirler ve seçilen ürün mutfağa iletiliyor.
Bu projede Arduino, TFT ekran ve 433MHz RF verici / alıcı modülünü kullanarak Akıllı Restoran Projesi yapıyoruz. Burada verici bölümü, müşterilerin gıda maddelerini seçip sipariş verebilecekleri Arduino Uno, TFT ekran ve bir RF vericiden oluşacaktır. Alıcı bölümü, sipariş öğelerini izlemek için restoran mutfağında kurulacak bir Arduino Uno, LCD modülü, RF alıcısı ve bir Buzzer’den oluşur.
Gerekli Bileşenler
- Arduino Uno (2)
- 433MHz RF Transmitter & Receiver
- 2.4″ TFT LCD Touch shield
- 16*2 LCD Module
- I2C Module
Arduino ile arayüz TFT LCD Dokunmatik ekran
2.4 “TFT LCD dokunmatik ekran ve SD kart soketi ile birlikte gelen çok renkli bir Arduino UNO / Mega uyumlu TFT ekrandır. Bu TFT ekran modülü, parlak bir arka ışık ve renkli bir 240X320 piksel ekrana sahiptir. Siyah beyaz ekranlardan çok daha iyi çözünürlük sağlamaktdır.
TFT ekranın Arduino ile arayüzlenmesi çok basittir ve diğer derste açıklanmıştır. TFT ekranını yalnızca aşağıdaki resimde gösterildiği gibi Arduino Uno kartı üzerine monte etmeniz gerekir.

Devre şeması
Akıllı Restoran Menü Sipariş Sistemi projesi RF Verici ve Alıcı bölümünden oluşmaktadır. Hem verici hem de alıcı tarafı veri işleme için Arduino Uno’yu kullanır. Verici ve alıcı bölümü için devre şeması aşağıda verilmiştir.
Verici Bölüm Devresi
Bu projenin verici bölümü bir Arduino Uno, RF Verici ve TFT ekran dan oluşuyor. Bu bölüm, TFT ekranında gösterilen menüden sipariş vermek için kullanılır. Arduino Uno, tüm verileri işleyen verici tarafının beynidir ve RF verici modülü, seçilen verileri alıcıya iletmek için kullanılır. RF verici modülünün veri pimi Arduino’nun dijital pimine 12 bağlanırken, VCC ve GND pimleri Arduino’nun 5V ve GND pinine bağlanır.


Alıcı Bölüm Devresi
Bu projenin alıcı bölümü bir Arduino Uno, RF Alıcı, 16 * 2 LCD modülü ve I2C modülünden oluşur. Verici bölümünden veri almak için RF alıcısı kullanılır ve alınan verileri görüntülemek için LCD modülü kullanılır. Yeni bir sipariş verildiğinde ses çıkarmak için bir zil sesi kullanılır. RF alıcısının veri pimi Arduino’nun dijital pim 11’ine bağlanırken, VCC ve GND pimi Arduino’nun 5V ve GND pimine bağlanır. Buzzer’ın pozitif pimi Arduino’nun dijital pimine 2, negatif pimi Arduino’nun GND pimine bağlanır. I2C modülünün SCL ve SDA pinleri A5 ve A4 Arduino analog pinlerine, VCC ve GND pinleri Arduino’nun 5V ve GND pinlerine bağlanır.


Proje Kodları :
Restoranda bu Akıllı Sipariş Sistemi için RF Verici ve Alıcı tarafları için tam kod yazının sonunda verilmiştir. Bu projede kullanılan tüm kütüphaneler verilen linklerden indirilebilir.
Code for Transmitter (TFT LCD)
#include <RH_ASK.h>
#include <SPI.h> // Not actually used but needed to compile
#include <SPFD5408_Adafruit_GFX.h> // Core graphics library
#include <SPFD5408_Adafruit_TFTLCD.h> // Hardware-specific library
#include <SPFD5408_TouchScreen.h>
const char *msg ;
RH_ASK driver;
#define YP A1 // must be an analog pin, use "An" notation!
#define XM A2 // must be an analog pin, use "An" notation!
#define YM 7 // can be a digital pin
#define XP 6 // can be a digital pin
#define TS_MINX 125
#define TS_MINY 85
#define TS_MAXX 965
#define TS_MAXY 905
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
#define LCD_CS A3
#define LCD_CD A2
#define LCD_WR A1
#define LCD_RD A0
// optional
#define LCD_RESET A4
#define REDBAR_MINX 80
#define GREENBAR_MINX 130
#define BLUEBAR_MINX 180
#define BAR_MINY 30
#define BAR_HEIGHT 250
#define BAR_WIDTH 30
Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
#define BLACK 0x0000
int BLUE = tft.color565(50, 50, 255);
#define DARKBLUE 0x0010
#define VIOLET 0x8888
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
#define GREY tft.color565(64, 64, 64);
#define GOLD 0xFEA0
#define BROWN 0xA145
#define SILVER 0xC618
#define LIME 0x07E0
void drawHome()
{
tft.fillScreen(WHITE);
tft.drawRoundRect(0, 0, 319, 240, 8, WHITE); //Page border
tft.fillRoundRect(30, 40, 100, 40, 8, GOLD);
tft.drawRoundRect(30, 40, 100, 40, 8, WHITE); //Dish1
tft.fillRoundRect(30, 90, 100, 40, 8, GOLD);
tft.drawRoundRect(30, 90, 100, 40, 8, WHITE); //Dish2
tft.fillRoundRect(30, 140, 100, 40, 8, GOLD); //Dish3
tft.drawRoundRect(30, 140, 100, 40, 8, WHITE);
tft.fillRoundRect(10, 190, 190, 40, 8, CYAN);
tft.drawRoundRect(10, 190, 190, 40, 8, WHITE); //Call Waiter
tft.fillRoundRect(180, 40, 100, 40, 8, GOLD);
tft.drawRoundRect(180, 40, 100, 40, 8, WHITE); //Dish4
tft.fillRoundRect(180, 90, 100, 40, 8, GOLD);
tft.drawRoundRect(180, 90, 100, 40, 8, WHITE); //Dish5
tft.fillRoundRect(180, 140, 100, 40, 8, GOLD);
tft.drawRoundRect(180, 140, 100, 40, 8, WHITE); //Dish6
tft.fillRoundRect(210, 190, 100, 40, 8, GREEN);
tft.drawRoundRect(210, 190, 100, 40, 8, WHITE); //Bill
tft.setCursor(60, 0);
tft.setTextSize(3);
tft.setTextColor(LIME);
tft.print(" Menu");
tft.setTextSize(2);
tft.setTextColor(WHITE);
tft.setCursor(37, 47);
tft.print(" Dish1");
tft.setCursor(37, 97);
tft.print(" Dish2");
tft.setCursor(37, 147);
tft.print(" Dish3");
tft.setCursor(23, 197);
tft.print(" Call Waiter");
tft.setCursor(187, 47);
tft.print(" Dish4");
tft.setCursor(187, 97);
tft.print(" Dish5");
tft.setCursor(187, 147);
tft.print(" Dish6");
tft.setCursor(227, 197);
tft.print(" Bill");
// delay(500);
}
int oldcolor, currentcolor, currentpcolour;
void setup(void) {
tft.reset();
tft.begin(tft.readID());
Serial.begin(9600);
Serial.println();
Serial.print("reading id...");
delay(500);
Serial.println(tft.readID(), HEX);
tft.fillScreen(BLACK);
tft.setRotation(1);
tft.setTextSize(3);
tft.setTextColor(WHITE);
tft.setCursor(50, 140);
tft.print("Loading...");
tft.setTextColor(tft.color565(255, 255, 0));
tft.setCursor(30, 70);
tft.print("By:");
tft.setCursor(10, 100);
tft.print("CircuitDigest.Com");
for (int i; i < 250; i++)
{
tft.fillRect(BAR_MINY - 10, BLUEBAR_MINX, i, 10, RED);
delay(0.000000000000000000000000000000000000000000000000001);
}
tft.fillScreen(BLACK);
if (!driver.init())
Serial.println("init failed");
drawHome();
pinMode(13, OUTPUT);
}
#define MINPRESSURE 10
#define MAXPRESSURE 1000
void transmit()
{
driver.send((uint8_t *)msg, strlen(msg));
driver.waitPacketSent();
delay(1000);
}
void loop()
{
digitalWrite(13, HIGH);
TSPoint p = ts.getPoint();
digitalWrite(13, LOW);
// if sharing pins, you'll need to fix the directions of the touchscreen pins
//pinMode(XP, OUTPUT);
pinMode(XM, OUTPUT);
pinMode(YP, OUTPUT);
//pinMode(YM, OUTPUT);
if (p.z > ts.pressureThreshhold)
{
p.x = map(p.x, TS_MAXX, TS_MINX, 0, 320);
p.y = map(p.y, TS_MAXY, TS_MINY, 0, 240);
if (p.x > 180 && p.x < 280 && p.y > 190 && p.y < 230 && p.z > MINPRESSURE && p.z < MAXPRESSURE)
{
Serial.println("Dish1");
msg = "Dish1 Ordered";
transmit();
tft.fillRoundRect(30, 40, 100, 40, 8, WHITE);
delay(70);
tft.fillRoundRect(30, 40, 100, 40, 8, GOLD);
tft.drawRoundRect(30, 40, 100, 40, 8, WHITE);
tft.setCursor(37, 47);
tft.println(" Dish1");
delay(70);
}
if (p.x > 180 && p.x < 280 && p.y > 140 && p.y < 180)
{
Serial.println("Dish2");
msg = "Dish2 Ordered";
transmit();
tft.fillRoundRect(30, 90, 100, 40, 8, WHITE);
delay(70);
tft.fillRoundRect(30, 90, 100, 40, 8, GOLD);
tft.drawRoundRect(30, 90, 100, 40, 8, WHITE);
tft.setCursor(37, 97);
tft.println(" Dish2");
delay(70);
}
if (p.x > 180 && p.x < 280 && p.y > 90 && p.y < 130)
{
Serial.println("Dish3");
msg = "Dish3 Ordered";
transmit();
tft.fillRoundRect(30, 140, 100, 40, 8, WHITE); //rgb led
delay(70);
tft.fillRoundRect(30, 140, 100, 40, 8, GOLD); //rgb led
tft.drawRoundRect(30, 140, 100, 40, 8, WHITE); //rgb led
tft.setCursor(37, 147);
tft.print(" Dish3");
delay(70);
}
if (p.x > 210 && p.x < 310 && p.y > 40 && p.y < 80)
{
Serial.println("Call Waiter");
msg = "CallingWaiter";
transmit();
tft.fillRoundRect(10, 190, 190, 40, 8, WHITE);
delay(70);
tft.fillRoundRect(10, 190, 190, 40, 8, CYAN);
tft.drawRoundRect(10, 190, 190, 40, 8, WHITE);
tft.setCursor(23, 197);
tft.print(" Call Waiter");
delay(70);
}
if (p.x > 30 && p.x < 130 && p.y > 190 && p.y < 230)
{
Serial.println("Dish4");
msg = "Dish4 Ordered";
transmit();
tft.fillRoundRect(30, 40, 100, 40, 8, WHITE);
delay(70);
tft.fillRoundRect(30, 40, 100, 40, 8, GOLD);
tft.drawRoundRect(30, 40, 100, 40, 8, WHITE);
tft.setCursor(187, 47);
tft.print(" Dish4");
delay(70);
}
if (p.x > 30 && p.x < 130 && p.y > 140 && p.y < 180 )
{
Serial.println("Dish5");
msg = "Dish5 Ordered";
transmit();
tft.fillRoundRect(180, 90, 100, 40, 8, WHITE);
delay(70);
tft.fillRoundRect(180, 90, 100, 40, 8, GOLD);
tft.drawRoundRect(180, 90, 100, 40, 8, WHITE);
tft.setCursor(187, 97);
tft.print(" Dish5");
delay(70);
}
if (p.x > 30 && p.x < 130 && p.y > 90 && p.y < 130)
{
Serial.println("Dish6");
msg = "Dish6 Ordered";
transmit();
tft.fillRoundRect(180, 140, 100, 40, 8, WHITE);
delay(70);
tft.fillRoundRect(180, 140, 100, 40, 8, GOLD);
tft.drawRoundRect(180, 140, 100, 40, 8, WHITE);
tft.setCursor(187, 147);
tft.print(" Dish6");
delay(70);
}
if (p.x > 10 && p.x < 210 && p.y > 40 && p.y < 80)
{
Serial.println("Bill");
msg = "Customer Bill";
transmit();
tft.fillRoundRect(210, 190, 100, 40, 8, WHITE);
delay(70);
tft.fillRoundRect(210, 190, 100, 40, 8, GREEN);
tft.drawRoundRect(210, 190, 100, 40, 8, WHITE);
tft.setCursor(227, 197);
tft.print(" Bill");
delay(70);
}
}
}
Code for Receiver
#include <RH_ASK.h>
#include <SPI.h> // Not actualy used but needed to compile
#include <LiquidCrystal_I2C.h>
//String msg;
LiquidCrystal_I2C lcd(0x27, 16, 2);
RH_ASK driver;
#define buzzer 2
void setup()
{
Serial.begin(9600); // Debugging only
pinMode(buzzer, OUTPUT);
lcd.begin();
lcd.clear();
if (!driver.init())
Serial.println("init failed");
}
void loop()
{
uint8_t buf[17];
uint8_t buflen = sizeof(buf);
if (driver.recv(buf, &buflen)) // Non-blocking
{
int i;
digitalWrite(buzzer, HIGH);
delay(1000);
digitalWrite(buzzer, LOW);
// Message with a good checksum received, dump it.
Serial.print("Message: ");
Serial.println((char*)buf);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("T1:");
lcd.print((char*)buf);
}
}
İnternetten para kazanma – Adsense Rehberi
Merhabalar bu yazımızda birlikte internetten nasıl para kazanacağımıza birlikte inceliyeceğiz. Bu rehberde internet üzerinden gelir elde etme yöntemi olan reklam modelinin en populeri adsenseye yer verdik.
Google AdSense’e dair bilmeniz gereken en temel ipucu, hangi tür sitelerin Google AdSense’i kullanarak en çok parayı kazandığıdır. Bu soru en basit şekilde, yüksek trafik yoğunluğuna sahip belirli bir konuya odaklanan ve bol miktarda içerik barındıran site olarak cevaplanabilir.
Bu site türlerini 3 e ayırabiliriz. Bunlar Blog siteleri, Form siteleri ve ücretsiz online araç siteleri olarak ayırabiliriz. Bu 3 tür sitenin en büyük ortak özelliği çok sayıda ziyaretcinizin olması ile gelir elde edelirsiniz.
Google Adsense Nedir?
Günümüzde Google Adsense para kazanma yöntemlerine olan ilgi arttıkça Google Adsense’nin ne demek olduğunu merak eden kullanıcıların sayısı da artmaktadır. Google arama motoru; web sitesi, blog ve youtube video sahiplerine yayınlamış oldukları reklam karşılığında belirli bir ücret öder. İşte bu sistemin kurulmasını sağlayan reklam ağına Adsense denilmektedir. Türkiye’de bloggerların en çok tercih ettiği uygulamaların başında Adsense ile para kazanmak gelmektedir. Web sitesinin içeriğine göre konu odaklı olarak reklam veren Google, internetten en fazla konu odaklı reklam vererek para kazanmayı sağlayan tek adrestir. Google adsense’e bu adresten başvurabilirsiniz.
# Google para kazanma yolu ile ne kadar kazanılır?
Eğer yabancı dilde yazılmış bir internet siteniz olsaydı, kazancınız aylık çok daha yüksek olabilirdi. Türkiye reklam verenler bu konuda dünya’daki diğer örneklerine göre biraz daha cimri davranıyor diyebilirim. Ama dünya’da durum biraz farklı, en çok kazanan blogların bir listesini aşağıda paylaşıyorum.
Website: Mashable.com
Alexa Sırası: 206
Tahmini Kazancı: $650,000 / Aylık
Website: forum.digitalpoint.com
Alexa Ranking: 714
Tahmini Kazancı: $550,000 / Aylık
Website: pof.com
Alexa Ranking: 652
Tahmini Kazancı: $350,000 / Aylık
Website: digg.com
Alexa Ranking: 572
Tahmini Kazancı: $250,000 / Aylık
Website: ehow.com
Alexa Ranking: 350
Tahmini Kazancı: $240,000 / Aylık
Website: TechCrunch.com
Alexa Ranking: 299
Tahmini Kazancı: $240,000 / Aylık
Peki, Google Adsense ile para kazanma için neler yapılması gerekir?
İlk önce içerik bakımından dolu bir internet adresine ihtiyaç olacaktır. Google içerik bakımından zengin olan siteleri sever. Yani içerik olarak sitenizde blog konuları çeşitliliği olmalıdır. AdSense içerikleri için belirlenen kuralları ihlal etmeyecek paylaşımlar olmalıdır (yazı, görsel, video vb.). Adsense para kazanma konusunda sadece reklama değil, reklamın yayınlanacağı site kalitesine çok değer verir.
Kısaca: Site içerik çeşitliliği, Google Adsense politikalarını ihlal etmeyecek şekilde (+18, bahis vs..) olmalıdır.
# İnternet adresinin kalitesi her anlamda yüksek bir seviyede olmalıdır. AdSense paylaşılan içeriklerin kurallarını ihlal etmeyecek şekilde mevcut olmasını yeterli görür
Kısaca: Sitenizin içeriği boş yazılar, sadece site hiti arttırmak için yazılan yazılar olmamalı, tasarım olarak kaliteli olması Google açısından önemlidir.
# Site içerisinde yoğun bir trafik olmalıdır. AdSense çevrimiçi durumda, iyi bir miktar kazanma yöntemi olarak bilinir ve bakıldığı zaman internet adresine gelen yoğun şekilde trafik sayesinde, mevcut kazancın arttırılmasına dair en kolay yol olarak kullanılabilir.
Fakat müşterilerin günlük minimum 300 ile 400 aralığında ziyaretçileri olmazsa, internet adreslerine AdSense eklemesi yapılması önerilmez. Kullanıcı ne kadar sayıda trafik hedefliyorsa, o oranda kazançlar elde edecektir.
# Doğru şekilde seçilen anahtar kelimelerin hedeflenmesi gerekir: Eğer içerikte doğru olarak belirlenen anahtar kelimelerin hedeflenmesi sağlanırsa, Google AdSense ya da herhangi bir farklı reklam mecrası üzerinden daha çok gelir elde etmek mümkün olacaktır. Anahtar kelimeler; reklam verenler tarafından hizmet ya da ürünlerin tanıtımını yapmak için kullanılır ve bu nedenle rekabet ortamı her zaman daha yoğundur.
# Google para kazanma politikaları ile kullanıcılar tam bir uyum yakalamak zorundadır. Yukarıda belirtildiği gibi Google AdSense, Google’ın mevcut kazançlarının üçte birine eşit gelir ve bu nedenle bütün programı da oldukça önemser. Her kullanıcı bir Google AdSense hesabı elde etse bile kurallarına uyum sağlanmadığı zaman tam olarak 0 hesabın kaybedilme riski maalesef ortaya çıkacaktır.
# Bir hedefi olan ve Google AdSense adına hizmet vermeyen bir internet sayfasına sahip olunması beklenir. AdSense ile para kazanmak, elbette internet sayfasını bir kazanç ortamına dönüştürmenin en etkili yollarından birisidir ancak tek hedefi AdSense reklamlarını yerleştirilmek olduğu zaman o siteler Google tarafından kabullenilmiyor. Google bu anlamda site kalitesini ve sitenin ne amaçla hizmet vermeye çalıştığını çok iyi şekilde analiz eden bir sistemle çalışmaktadır.
Hangi Konular Google Adsense Reklamlarında Daha Çok Kazandırır?
Bu başlığı madde madde sıralayacak olursak
- Finans, Ekonomi
- Emlak
- Sağlık
- Tatil
olarak sıralayabiliriz. Bu konularda reklam geliri diğer reklam gelirlerine göre daha fazladır.
Mysql den son verinin id sini almak
Merhabalar myql yazı dizimizde şimdide eklediğimiz bir içeriğin tablodaki son idsini almaya bakacağız. Bu sayede bir tabloya eklenen son içeriğin id sini öğrenebilceğiz. Şimdi kodlarımıza geçelim.
$sonid = mysql_fetch_assos(mysql_query("SELECT * FROM siparis_detay ORDER BY id DESC LIMIT 1"));
$son = $sonid['id'];
Yukarıdaki kod sayesinde siparis tablomuzdaki içerikleri en son eklenen içerikler şeklinde sıraladık burda limidi 1 yaptığımız için en son eklenen değer sadece geldi $son[‘id’] ilede satırdaki id değişkenini değişken içerisine almış olduk.
Mysql tablo adı değiştirmek
Bu yazımızda mysql de tablo adını nasıl kodla değiştireceğimize bakacağız. Şimdi bu işlemi nasıl yapacağımıza birlikte bakalım.
Mysql ALTER TABLE komutu bir tabloda değişiklik yapmak için kullanılır.
örneğin : Tablo adını değiştiren komut:ALTER TABLE eskiad RENAME TO yeniad
Sütun eklemek: Aynı komut farklı parametre ile tabloya yeni alan eklemekte kullanılabilir:ALTER TABLE ogrenciler ADD babaismi varchar(50);
Tablodaki bir sütunu silmek:ALTER TABLE ogrenciler DROP COLUMN babaismi ;
Sanal Sunucu Nedir?
Sanallaştırma Nedir?
Sanallaştırma ingilizcesinde virtualization olarak geçmektedir. Sanallaştırma, gerçek donanımdan soyutlanmış bir katmanda bir bilgisayar sisteminin sanal bir örneğini çalıştırma işlemidir. Fiziksel bir sunucunu, donanımının, mantıksal olarak bölümlenmesi sonucunda, oluşturulan sanal sunuculara verilen isimdir. Örnek vermek gerekirse; fiziksel bir sunucuda bir adet işlemi sistemi bulunur. Fakat sanallaştırma yazılımları ile beraber, fiziksel sunucunun donanımları farklı farklı ayrılarak, bir kaç adet işletim sistemi kurulabilir. Son 10 yılda, özellikle Vmware firmasının da sanallaştırma çözümlerine profesyonel olarak girmesiyle sanal sunucular çok fazla kullanılır oldu. Vmware ESX ürünü gibi, Proxmox, XEN gibi sanallaştırma çözümleri bulunuyor. Sanallaştırma yapılan sunucular içerisinde, VPS ve VDS ismini verilen iki farklı sanal sunucu modeli oluşturulabilir.
VPS Nedir?
VPS açılımı virtual private server şeklindedir. Yani sanal özel sunucu anlamına gelir. Fiziksel bir sunucunun, donanımının mantıksal olarak bölümlenmesi sonucunda, oluşturulan sanal sunuculara verilen isimdir. VPS sunucularda tahsis edilen ram ve işlemci gücü diğer sanal sunucular tarafından da kullanılabilir. Yani CPU ve RAM donanımları ortak havuzdan kullanılır.
VDS Nedir?
VDS açılımı ise virtual dedicated server şeklindedir. Sanal adanmış sunucu anlamına gelir. VPS’in aksine, VDS de oluşturulan her sanal sunucuya atanmış bir donanım bulunur. Yani donanım kaynakları (ram ve işlemci) sadece tahsis edilen sanal sunucu için kullanılabilir. VDS sunucular, VPS sunuculara göre daha fazla maliyet gerektirir çünkü kaynaklar havuzdan değil, direkt olarak atanan kaynaktan kullanılır.
Sanal Sunucu Nedir?
Sanallaştırma yazılımları üzerinde bulunan, ayrı bir işletim sistemi olarak kullanılan sunuculara (VPS veya VDS) sanal sunucu denir. Yani ana işletim sisteminden bağımsız olarak misafir işletim sistemleri (guest os) olarak adlandırılır.
Sanallaştırma Çeşitleri Nelerdir?
Sanallaştırma işlemi çok çeşitlilik içerir. Donanım sanallaştırma, uygulama sanallaştırma, storage (depolama) sanallaştırma, kullanıcı sanallaştırma olarak çeşitlendirilebilir. Fakat yazımıza konu olan işlem iki şekilde incelenebilir; sanallaştırma platformları ve sanallaştırma yazılımları.
Sanallaştırma Yazılımları
Sanallaştırma yazılımları, belirli bir işletim sistemi üzerinde çalıştırılabilen yazılımlardır. Örneğin Vmware’in, Vmware Workstation ürünü bir sanallaştırma yazılımıdır. En çok kullanılan sanallaştırma yazılımları şunlardır;
- Vmware Workstation
- Virtual BOX
- HyperV
- VMLite Workstation
- Vmware Fusion
- Virtual PC
Sanallaştırma Platformları
Sanallaştırma platformları ise, belirli bir işletim sistemi olmadan, direkt olarak, işletim sisteminden bağımsız (standalone) çalışabilen yazılımlardır. Sanallaştırma yazılımı doğrudan donanım üzerinde çalışır ve bir işletim sistemine ihtiyaç duymaz. En çok kullanılan sanallaştırma platformları ise şu şekildedir;
- Vmware ESX
- Microsoft HyperV
- Xen Server
- Proxmox
- KVM
- OpenVZ
- Citrix
Sanal Sunucunun Avantajları Nelerdir?
Sanal sunucuların, fiziksel sunuculara göre birden çok avantajı bulunur. Maliyetten hıza, zaman tasarrufundan alan tasarrufuna kadar avantajları aşağıdaki şekildedir.
Kolay Yedekleme
Sanal sunucular, fiziksel sunuculara göre oldukça kolay ve daha hızlı yedeklenir. Ücretli olarak sunulan Veeam Backup gibi yazılımlar ve ücretsiz olarak Unitrends gibi yazılımlarla yedekleme maliyetlerinizi düşürdüğünüz gibi, yedekten geri dönme işlemini de dakikalar içerisinde gerçekleştirebilirsiniz.
Merkezi Kontrol
Sanal sunucu platformları, bir kaç sunucuyu kontrol etmektense, tek bir güçlü donanımlı sunucuda size merkezi kontrol sağlayacaktır.
En iyi ücretsiz WordPress Ticaret Woocommerce Temaları
WordPress çıktığı zamanlarda, insanların blog (günlük) yazması için kullanılsa da, esnek yapısı sayesinde wordpress artık kurumların web siteleri, e-ticaret siteleri gibi bir çok web sitesi üzerinde kullanılıyor. Özellikle Woocommerce eklentisi ile Türkiye’de ve dünyada bir çok e-ticaret sitesi WordPress alt yapısını kullanıyor. Woocommerce uyumlu da bir çok ücretli ve ücretsiz tema bulunmaktadır. Bu yazımızda sizler için ey iyi wordpress ticaret temalarını derledik.
AccessPress Store

Ürünlerinizi modern bir şekilde sergilemek istiyorsanız AccessPress Store teması biçilmiş kaftan. Woocommerce destekli bu tema modern bir slider ile birlikte geliyor. Ayrıca mobil uyumlu.

Flash

Flash çok amaçlı bir wordpress woocommerce teması. 12’den fazla widget destekler. ThemeGrill Demo Importer eklentisiyle, 6 adet temadan herhangi bir tanesini içe aktarım yaparak kullanmaya başlayabilirsiniz. Tek tıklama ile demoları içe aktarabilirsiniz. Bazı özellikleri de Pro versiyonunda bulunuyor. Fakat Pro kullanmazsanız tamamen ücretsiz bir tema.
Tyche

Tyche teması estetik olarak güzel ve sade bir tema. Woocommerce eklentisi ile beraber gelen, tam teşekküllü bir e-ticaret sitesi hazırlamanıza olanak sunuyor. Ürünleri bir kaç düzende göstermenizi sağlayan Tyche teması, öne çıkan ürünleri veya en çok satan ürünlerini de önde göstermenizi sağlıyor. WordPress Live Customizer destekli oluşturulan tema, sayfalarınızı kolayca yönetmenizi sağlıyor.

Alpha Store

Bir mağazanız var ve internet üzerinden satış mı yapmak istiyorsunuz? Alpha Store teması tam size göre. Bir E-ticaret temasında bulunması gereken her özelliğe sahip bir tema. Sayfalarınızı WordPress live Customizer ile kolaylıkla yönetebilirsiniz. Diğer Woocommerce eklentileri desteğini de sunar. Bootstrap ve CSS3 ile kodlanan tema, responsive olup mobil desteği de sunar. Arama motorları ve performans için optimize edilmiş bir temadır.
Zakra Shop

Zakra Shop sade ve basit tema. Elemantor eklentisi entegre biçimde gelir. Temayı kurduğunuda gelen importer ile demo sayfaları rahatlıkla oluşturabilir ve Elemantor eklentisi sayesinde basitçe sayfalarınızı değiştirebilirsiniz. Mağazanızın öne çıkan ürünlerini listeleyebilirsiniz.
Bir yazımızın daha sonuna başka bir yazıdan tekrar görüşmek dileğiyle.
Php ve Mysql ile Canlı Arama Ajax Live Search Yapımı
Merhablar bu yazımızda php ile canlı arama nasıl yapılır ona bakacağız. İnternette bir çok kaynak olmasına rağmen ben sizler için en basit ve anlaşılacak şekilde derledim. Şimdi birlikte php ve mysql ile canlı arama nasıl yapılır ona bakalım.
index.php
Arama ekranın olacağı dosyadır.
<html lang="tr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css">
<link rel="stylesheet" href="css/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.search-box input[type="text"]').on("keyup input", function(){
/* Input Box'da değişiklik olursa aşağıdaki durumu çalıştırıyoruz. */
var inputVal = $(this).val();
var resultDropdown = $(this).siblings(".liveresult");
if(inputVal.length){
$.get('live-search.php', {term: inputVal}).done(function(data){
/* Gelen sonucu ekrana yazdırıyoruz. */
resultDropdown.html(data);
});
}else{
resultDropdown.empty();
}
});
/* Sonuç listesinden üzerinde tıklanıp bir öğe seçilirse input box'a yazdırıyoruz. */
$(document).on("click", ".liveresult li", function(){
$(this).parents(".search-box").find('input[type="text"]').val($(this).text());
$(this).parent(".liveresult").empty();
});
});
</script>
<title>Php & Mysql ile Canlı Arama (Live Search)</title>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-12 search-box">
<h4>Marka Arama</h4>
<input type="text" class="form-control" autocomplete="off" placeholder="Marka Ara..." />
<ul class="list-group liveresult"></ul>
</div>
</div>
</div>
</body>
</html>
live-search.php
Bu dosya ise Ajax aracılığı ile kullanıcının girdiği terimi veri tabanında arayan ve sonuçları listeleyen dosyamızdır.
<?php
/* Database Bağlantısı */
$db_host = 'localhost';
$db_user = 'root';
$db_pass = 'şifre';
$db_database = 'db_livesearch';
$conn = @mysql_connect($db_host,$db_user,$db_pass);
if(!$conn){
die("Baglanti hatasi: ".mysql_error());
}
$db_select = mysql_select_db($db_database,$conn);
if(!$db_select){
die("Veritabani hatasi: ".mysql_error());
}
mysql_query("SET NAMES utf8");
session_start();
/* Database Bağlantısı */
if ($_REQUEST['term']) { // Bir terim gelip gelmediğini kontrol ediyoruz.
$term = $_REQUEST['term']; // Gelen terimi değişkene atıyoruz.
/* Gelen terim ile eşleşen kayıt olup olmadığını sorguluyoruz. */
$check_query = mysql_query("SELECT * FROM brands WHERE name LIKE '%".$term."%'");
$check_row = mysql_fetch_array($check_query);
/* Gelen terim ile eşleşen kayıt olup olmadığını sorguluyoruz. */
if ($check_row) { // Sorgulama sonucu dolu olursa eğer sonuçları ekrana basıyoruz.
$query = mysql_query("SELECT * FROM brands WHERE name LIKE '%".$term."%'");
while ($row = mysql_fetch_array($query)){
$name = $row['name'];
echo '<li class="list-group-item">'.$name.'</li>';
}
}else{
// Eğer eşleşen kayıt yoksa alttaki uyarıyı ekrana basıyoruz.
echo '<li class="list-group-item">Eşleşen kayıt bulunamadı.</li>';
}
}
?>
css/style.css
Stil dosyamız sadece demo görünümü için kullanılıyor. css dizini altına eklemelisiniz.
body,html{
height: 100%;
min-height: 100%;
background: #005C97; /* fallback for old browsers */
background: -webkit-linear-gradient(to right, #363795, #005C97); /* Chrome 10-25, Safari 5.1-6 */
background: linear-gradient(to right, #363795, #005C97); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
}
.search-box h4{
color: #fff;
}
.search-box{
margin-top: 20%;
}
/* Formatting result items */
.liveresult li{
cursor: pointer;
}
.liveresult li:hover{
background: #f2f2f2;
}
Tüm işlemler bukadar veri tabanınınzdan artık istediğiniz tablodan canlı aramayı gerçekleştirebilirsiniz.
Vesta CP Yandex Diske Otomatik Yedek Alma
Merhabalar Kodmek okurları bu yazımızda sizlere Vesta CP kurulu sunucumuz üzerindeki yedeklerimizi nasıl otomatik yandex diske alcağımızdan bahsedeceğiz.
Yandex Disk kurulumu öncesi Vesta Panelimizde aşağıdaki komut ile ana ayar dosyamızı nano editör ile açıyoruz
nano /usr/local/vesta/func/main.sh
BACKUP= karşısındaki yolu /root/Yandex.Disk şeklinde değiştiriyoruz. Editörden CTRL + X + y ile kaydedip çıkıyoruz;
Vesta Panelimizi yeniden başlatıyoruz
service vesta restart
Yandex Disk kurulumu için repo ekleyeceğiz
nano /etc/yum.repos.d/yandex.repo
İçerisine aşağıdaki kodları ekleyip Ctrl + x + y kombinasyonları ile kaydedip çıkıyoruz
[yandex]
name=Yandex
failovermethod=priority
baseurl=http://repo.yandex.ru/yandex-disk/rpm/stable/$basearch/
enabled=1
metadata_expire=1d
gpgcheck=1
gpgkey=http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG
Aşağıdaki komutları sırası ile çalıştırıyoruz.
rpm --import http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG
yum -y install yandex-disk
yandex-disk setup
En son komutu çalıştırdıktan sonra ekrana aşağıdaki gibi seçenekler gelecek onları aşağıda verilenler doğrultusunda doldurunuz.
Would you like to use a proxy server? [y/N] : N yaz Enter’a bas
If you don’t have a Yandex account yet, get one at https://passport.yandex.com/passport?mode=register
Enter username: Yandex kullanıcı adını yazın : Örnek kodmek [Enter’a bas]
Enter password : Yandex kullanıcı şifresini yazın [Enter’a bas]
Enter path to Yandex.Disk folder (Leave empty to use default folder ‘/root/Yandex.Disk’): Boş iken [Enter’a bas]
Would you like Yandex.Disk to launch on startup? : Y yaz Enter’a bas
Starting daemon process…Done
Artık yandex kurulum tamamlanmıştır. Vesta CP de sorun oluşursa bağlantsı sorunu vb sunucuya rest atıp tekrar panele bağlanınız. yedeğinizi oluşturup yandex hesabınızdan kontrol ediniz. Yedek oluşumundan 2-3 dk içerisinde yandex diskinizde yedekleriniz gözükecektir.
Eğer yeni oluşturduğunuz yedek yandex disk te gözükmüyorsa aşağıdaki komudu çalıştırnız.
yandex-disk start
Yandex disk kurulumunuz tamamlanmıştır.
ASP İLE PHP ARASINDAKİ FARKLAR
ASP ile PHP farklarına bu yazımızda birlikte inceleyelim.
Asp.NET hızlı web sitesi geliştirilmesinin gerekli olduğu, kullanıcı sayısının çok fazla olmadığı projelerde rahatlıkla (hazır kontroller ile birlikte) kullanılabilir. Böylece kısa zamanda birçok işe yarayan web siteleri yapılabilir. Bugün e-ticaret, Cms (Content Management Sistem) ve blog sistemlerde bile kullanılmaktadır. Çok daha büyük projeler için geliştirilen Asp.NET MVC teknolojisi (MVC=Model View Controller, bir design pattern’dir ve Asp.NET için de adapte edilmiştir) kullanılmaktadır.
PHP, bugün birçok blog ve Cms (Content Management Sistem, Örnek Joomla) sistemlerinde kullanılmaktadır. Küçük ya da büyük ölçekli tüm projelerde rahatlıkla kullanımaktadır. Ancak HTML kodları arasına yazım çok büyük projelerde yönetilebilirliği azalttığından ve birden fazla programcının çalışması gereken projelerde farklı teknolojilere başvurulabilmektedir (PHP MVC).
Asp.NET geliştirme ortamı için şu an herhangi bir ücret gerekmemektedir. Visual Studio 2013 Community, Visual Studio 2015 Community versiyonları ücretsizdir. Bunlarla rahatlıkla geliştirme yapılabilir. Ayrıca Asp.NET ile tam uyumlu çalışan veritabanı sunucusu olan Microsoft SQL Server Express versiyonu da ücretsiz olarak kullanılabilir. Ancak çok büyük projeler için tercih edilen Microsoft SQL Server’in ücretli versiyonlarının lisans ücretleri oldukça yüksektir (Microsoft SQL Server Standart, Enterprise gibi).
PHP; open source (açık kaynak kod) bir dildir. PHP ile ilgili birçok şeye ücretsiz ulaşabilirsiniz. Geliştirme ortamı olarak birçok text editör (Notepad++ gibi) ücretsiz olarak kullanılabilir. Ancak büyük projeler için tercih edilen Adobe Dreamveawer gibi programlar ücrete tabidir. Tam uyumlu veritabanı sistemi olan MySQL tamamen ücretsizdir. Ancak çok büyük projeler için kullanılan Oracle gibi ileri düzey veritabanı sistemleri ücretlidir.
Çalışma süreleri farkları
Her ikisi de sunucu tarafında çalıştığından, browser tabanlı dillere göre (Html, css, javascript gibi) çok yavaşlar. Ancak birçok karşılaştırma testlerinde Asp.NET’in çalışma hızının PHP’den daha az olduğu görülmekte . Bunda Asp.NET kodlarının ilk çalışmada derlenmesi ve sonra tekrar tekrar kullanılması mantığı etkili bir faktör. Nitekim PHP de her kullanımda sunucu tarafında derlenir ve çalıştırılır. Oysaki Asp.NET’de bir sefer derlenen kodlar artık her sefer için kullanıma hazırdır. Bunlara rağmen büyük çaplı projelerde kullanılan Asp.NET hazır kontrolleri performans açısından kayıplara neden olabilmekte. Ayrıca Viewstate (asp.net’te kullanılan kontrollerin bilgilerinin tutulduğu, html kodlarına adapte olmuş şifreli kodlar) kullanımı da (projenin boyutu arttıkça) performans kayıplarına neden olabilmektedir. PHP’de ise bir kararlılık söz konusu. Usta ve deneyimli eller ile yazılmış PHP kodları büyük projelerde bile performansa büyük ölçekli olumsuz etkisi bulunmamakta.
Yazım farklılıkları
Asp.NET Web Forms projeleri geliştirilirken 2 bölüm yer almakta. HTML, css, javascript gibi tarayıcı taraflı kodlarımızın bulunduğu ve ziyaretçilerin gördüğü kodların bulunduğu Web sayfası bölümü ve C# gibi kodlarımızın kullandığı, her asp.net sayfası için var olan kod bölümü yer almaktadır. Web sayfası bölümüne yerleştirdiğiniz her bir kontrolün ismi ile kod bölümünden bu kontrole erişebilirsiniz. Böylece 2 ayrı sayfa ile çalışarak kod kalabalığından bir nebze kurtulmuş olursunuz. Ayrıca bu kontrollerin olaylarına(events) Properties(özellikler) penceresinden erişip hızlıca kod tarafında olaylar yazabilirsiniz. PHP tarafında ise bu işlerin tamamı HTML kodları arasında yazılır. <?php ve ?> tag’leri (etiketleri) PHP için yeterlidir ve bir HTML kodlarının herhangi bir yerinde yazmak yeterlidir.
Uyumluluk ve üzerinde çalışma ortamları farkları
Son gelişmelerle birlikte her ikisi de hem Windows ortamlarda hem de Linux ortamlarda çalışmaktadır. Veritabanı sistemleri olarak her ikisi de Mssql, Mysql, Oracle gibi veritabanı sistemleri ile çalışmaktadır.
Geliştirildikleri ortam farkları
Geliştirme ortamının (Visual Studio) sağladığı birçok kolaylık ile projenizi daha az sorunlu ve zahmetsiz geliştirebilirsiniz. Visual Studio’nun sağladığı birçok kolaylık ile kod yazarken bile birşeyler öğrenebilir ve hızlıca projenizi kodlayabilirsiniz. Kısayolların kullanımı ile projenizi daha okunaklı yapabilir, kod renklendirmeleri ile daha anlaşılır kodlar yazabilirsiniz. Visual studio’da bulunan extensions aracı ile projenize birçok ücretsiz paket ekleyip rahatlıkla kullanabilirsiniz. Ayrıca birçok geliştiricinin ortak çalışmasını destekleyen Team Foundation ile projeler geliştirebilirsiniz.
PHP’de ücretli bir editör kullanıyorsanız (Dreamveawer gibi) işler çok daha kolaylaşmaktadır. Kod renklendirmeleri(ücretsiz editörlerin çoğu da desteklemektedir), kod tahmini (kodun bir bölümünü yazarken kod seçeneklerini getirme) gibi seçenekler ile programcıya yardım eden özellikler PHP tarafında da vardır. Bu sayede bilmediğiniz kodları bile öğrenebilirsiniz.
DEEP LEARNİNG (DERİN ÖĞRENME) NEDİR ?
Derin öğrenme, tüm biçimlerde ve dünyanın her bölgesinden veri patlamasına neden olan dijital çağla el ele gelişti. Basitçe büyük veri olarak bilinen bu veriler, diğerlerinin yanı sıra sosyal medya, internet arama motorları, e-ticaret platformları ve çevrimiçi sinemalar gibi kaynaklardan elde edilmektedir. Bu muazzam miktarda veriye kolayca erişilebilir ve bulut bilişim gibi fintech uygulamaları aracılığıyla paylaşılabilir. Bununla birlikte, normalde yapılandırılmamış olan veriler o kadar geniştir ki, insanların bunları anlaması ve ilgili bilgileri çıkarması on yıllar alabilir.
Şirketler, bu bilgi zenginliğinin ortaya çıkarılmasından kaynaklanabilecek inanılmaz potansiyeli fark ediyor ve otomatik destek için giderek daha fazla yapay zeka sistemine uyum sağlıyor. Derin öğrenme, normalde insanların on yıllarca anlaması ve işlenmesi gereken çok sayıda yapılandırılmamış veriyi öğrenir.
Deep Learning (Derin Öğrenme) Nasıl Çalışır?
Büyük verileri işlemek için kullanılan en yaygın AI tekniklerinden biri, deneyim veya yeni eklenen verilerle gittikçe daha iyi analiz ve kalıplar elde eden, kendini uyarlayan bir algoritma olan makine öğrenmesidir. Bir dijital ödeme şirketi, sistemindeki sahtekarlığın oluşumunu veya potansiyelini tespit etmek isterse, bu amaçla makine öğrenme araçları kullanabilir. Bir bilgisayar modelinde yerleşik olan hesaplama algoritması, dijital platformda gerçekleşen tüm işlemleri işleyecek, veri kümesinde kalıpları bulacaktır ve kalıp tarafından algılanan herhangi bir anormalliği gösterecektir. Makine öğreniminin bir alt kümesi olan derin öğrenme, makine öğrenimi sürecini yürütmek için hiyerarşik düzeyde yapay sinir ağlarından yararlanır.
Yapay sinir ağları, insan beyni gibi inşa edilir, nöron düğümleri bir ağ gibi birbirine bağlanır. Geleneksel programlar, verilerle doğrusal bir şekilde analiz oluştururken, derin öğrenme sistemlerinin hiyerarşik işlevi, makinelerin verileri doğrusal olmayan bir yaklaşımla işlemesini sağlar. Dolandırıcılık veya kara para aklamanın tespitine yönelik geleneksel bir yaklaşım, gerçekleşen işlem miktarına dayanırken, deep learning doğrusal olmayan bir teknik zaman, coğrafi konum, IP adresi, perakendeci türü ve hileli faaliyeti göstermesi muhtemel diğer herhangi bir özelliği içerir. Sinir ağının ilk katmanı, işlem miktarı gibi bir ham veri girişini işler ve çıktı olarak bir sonraki katmana aktarır. İkinci katman, kullanıcının IP adresi gibi ek bilgiler ekleyerek önceki katmanın bilgilerini işler ve sonucundan geçer. Bir sonraki katman, ikinci katmanın bilgilerini alır ve coğrafi konum gibi ham verileri içerir ve makinenin desenini daha da iyi hale getirir. Bu, nöron ağının tüm seviyelerinde devam eder:
- Derin öğrenme, karar vermede kullanılmak üzere verileri işlemede insan beyninin işleyişini taklit eden bir AI işlevidir.
- Derin öğrenme AI, hem yapılandırılmamış hem de etiketlenmemiş verilerden öğrenebilir.
- Bir makine öğrenme altkümesi olan derin öğrenme, dolandırıcılığın veya kara para aklamanın tespit edilmesine yardımcı olmak için kullanılabilir.
Machine Learning vs Deep Learning
Makine öğrenimi ve deep learning, son iki yılda çok dikkat çeken yapay zekanın iki alt kümesidir. Her iki terimi de mümkün olan en basit şekilde anlamak için bunların işlevlerini incelemek yeterlidir.
Yapay zekanın bir alt kümesi olarak makine öğrenmesi (machine learning), yapılandırılmış verilerle kendisini besleyerek istenen çıktıyı üretmek için insan müdahalesi olmadan kendini değiştirebilen algoritmaların yaratılmasıyla ilgilidir.
Köpek ve kedi resimlerinden oluşan bir görüntü hayal edin. Makine öğrenimi ve deep learning ağları bundan bir anlam çıkarmak zorunda kaldığında ne olur? Hayalinizdeki resme bir göz atın: Göreceğiniz şey, kedi ve köpeklerin fotoğraflarından oluşan bir koleksiyon. Şimdi, makine öğrenme algoritmaları ve derin öğrenme ağları yardımıyla köpeklerin ve kedilerin görüntülerini ayrı ayrı tanımlamak istediğinizi varsayalım.
ML algoritmasının koleksiyondaki görüntüleri iki köpek ve kedi kategorisine göre kategorilere ayırmasına yardımcı olmak için, bu görüntüleri toplu olarak sunmanız gerekir. Peki algoritma hangisinin hangisi olduğunu nasıl biliyor?
Bu sorunun cevabı yapılandırılmış verilerdir. Köpeklerin ve kedilerin resimlerini her iki hayvanın belirli özelliklerini tanımlayacak şekilde etiketlersiniz. Bu veriler, makine öğrenme algoritmasının öğrenmesi için yeterli olacak ve daha sonra anladığı etiketlere göre çalışmaya devam edecek ve her iki hayvanın milyonlarca diğer resmini söz konusu etiketlerle öğrendiği özelliklere göre sınıflandıracaktır.
Derin öğrenme ve makine öğrenimi: Sorun derin öğrenme yoluyla çözüldüğünde
Deep learning ağları bu sorunu çözmek için farklı bir yaklaşım gerektirir. Derin öğrenme ağlarının temel avantajı, iki hayvanı sınıflandırmak için resimlerin yapılandırılmış / etiketlenmiş verilerine ihtiyaç duymaları gerekmemesidir. Derin öğrenmeyi kullanan yapay sinir ağları, girdiyi (görüntülerin verileri) ağın farklı katmanları aracılığıyla gönderir. Her ağ hiyerarşik olarak görüntülerin belirli özelliklerini tanımlar. Bu, insan beynimizin problemleri çözmek için nasıl çalıştığına benzer bir şekilde çalışır. Bir cevap bulmak için çeşitli kavram hiyerarşileri ve ilgili sorulardan sorgular ileterek. Veriler derin sinir ağları içindeki katmanlar aracılığıyla işlendikten sonra, sistem her iki hayvanı görüntülerinden sınıflandırmak için uygun tanımlayıcıları bulur.
Bu, makine öğrenim temelleri ve deep learning ağlarının çalışma şeklindeki farklılıkları anlamanıza yardımcı olacak bir örnektir. Hem derin öğrenme hem de makine öğrenimi, bu durum da dahil olmak üzere çoğu durum için aynı anda uygulanamaz.