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.
Web Sitesinde Sağ Tıklamayı Devre Dışı Bırakma
JavaScript ve Bootstrap kullanarak bir web sitesinde sağ tıklama olayını nasıl devre dışı bırakacağınızın örnek kodu verilmiştir.
Aşağıda, sayfanızın herhangi bir yerinde sağ tıklama işlemini dinlemek ve yakalamak için kullanılan JavaScript kodu verilmiştir. Bir kullanıcı sağ tıkladığında Bootstrap Modal’ı gösterir ve sağ tıklama fonksiyonunun tetiklenmesini durdurur.
<script>
$(document).on('contextmenu', function() {
$('#exampleModal').modal('show');
return false;
});
</script>
Aşağıda örnek bir sayfaya eklenen komut dosyası verilmiştir.
<!doctype html>
<html lang="tr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="Örnek Sağ Tık Kapama">
<meta name="author" content="Projex">
<title>Örnek Mause Sağ tık kapama - Kodmek</title>
<link href="../css/bootstrap.min.css" rel="stylesheet">
<link href="../css/signin.css" rel="stylesheet">
<style>
body{background-color: grey;}
p{color: #fff;}
</style>
</head>
<body class="text-center">
<div class="container">
<div class="col-md-12">
<img src="https://forums.prodjex.com/uploads/monthly_2017_12/5a49485fa77dd_logobig.png.0c19c7fc9cc393df1ad69f5ec30877c1.png"><br><br>
<p>Right click on this page...</p>
</div>
</div>
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Warning</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
Don't do that!
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">I Understand</button>
</div>
</div>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<script>
$(document).on('contextmenu', function () {
$('#exampleModal').modal('show');
return false;
});
</script>
</body>
</html>
Uygulamayı Windows Başlangıcına ekleme Delphi
Delphi dili ile yazmış olduğunuz uygulamanızı windows başlangıcına eklemek için aşağıda vereceğimiz unit yardımıyla kolaylıkla gerçekleştirebilirsiniz.
uses Registry;
procedure writeStartUp;
var
fRegistry: TRegistry;
begin
fRegistry:=TRegistry.Create;
try
fRegistry.RootKey := HKEY_CURRENT_USER;
fRegistry.OpenKey('SOFTWAREMicrosoftWindowsCurrentVersionRun', True);
fRegistry.WriteString('Uygulama','C:Project1.exe');
fRegistry.CloseKey;
finally
fRegistry.Free;
end;
end;
Delphi Dizi Fonksiyonları
Tüm programlama dillerinde olduğu gibi en sık kullanılan tiplerden biri hiç şüphesiz dizi nesneleridir dizi nesneleri ile birden fazla veriyi tek bir değişken üzerinde gruplayarak depolayıp ihtiyaç duyulduğunda döngüler kurarak veriler üzerinden işlemler yapmaya yarar. Şimdi Delphi dilinde Dizi fonksiyonlarının kullanımına bakalım
10 Elemanlı Dizi Değişkeni Tanımlama
var dizi : Array[0..9] of integer;
Sabit Uzunluklu Dizi Değişkenlerinin İlk Değerlerini Atama
const
dizi:Array[0..2] of integer=(10,20,30);
//integer sabit array tanımlaması yapıldı ve değerleri atandı.
İki boyutlu dizi tanımlama
var
ikib_dizi:Array[0..2] of Array[0..1] of Integer;
//Sonuç olarak bu şekilde bir dizi ortaya çıkmıştır.
ikib_dizi[0,0] := 'test00';
ikib_dizi[0,1] := 'test01';
ikib_dizi[1,0] := 'test02';
ikib_dizi[1,1] := 'test03';
ikib_dizi[2,0] := 'test04';
ikib_dizi[2,1] := 'test05';
Dinamik Delphi Array Tanımlama
var
dinamikdizi:Array of integer;
//Program içerisinde dizi değişkeninin boyutunu belirleme.
SetLength(dinamikdizi,10);
Görüldüğü gibi dizileri kullanmak için bir çok yol bulunmaktadır. Bunların bazılarını sizler için derledik umarım faydalı olabilmişizdir.
Pilotsuz hava taksisi ilk uçuşunu gerçekleştirdi
Çinli drone yapımcısı Ehang, ABD’de ilk kez otonom hava taksisini gösterdi. Tamamen elektrikli iki kişilik olan bu drone ilk uçusu için bir test pistinde beş dakikalık ilk test uçusunu gerçekleştirdi
Ehang’in ilk kez ABD Federal Havacılık İdaresi’nden uçma izni aldı ve yakın gelecekte bu izin ile yolcu taşımacılığı için zemin hazırlamasına yardımcı olacak
16 elektrikli motorla çalışan Ehang 216, 80 km / s’nin üzerinde hız yapabiliyor. Bu test uçuşunda önceden planlanmış bir rota boyunca uçtu. Şirket, yaklaşık 600 kilo ağırlığında yük veya yolcu taşıyabileceğini söylüyor. Ancak hala gelişiminin ilk aşamalarında
Ehang, Çin, Avusturya, Hollanda, Katar, BAE ve şimdi ABD’de 2.000’den fazla deneme uçuşu gerçekleştirdiğini söyledi. Şirket geçtiğimiz günlerde ABD Menkul Kıymetler ve Borsa Komisyonu’na Nasdaq’ta 100 milyon dolarlık depozito hissesi ile halka açılmak üzere evraklar açtı.
Ehang geçtiğimiz günlerde Guangzhou’da ticari bir hava hareketliliği servisi başlatmak için Çin den onay aldı. Pilot programın bir parçası olarak, Ehang bir hava trafik kontrol merkezi kurmak için Guangzhou hükümeti ile birlikte çalışıyor. Yolcu cephesinde, Ehang, pilot uçağın daha fazla uçuş rotasını ve elektrikli uçaklarının kalkıp ineceği “dikey noktaları” test etmek için kullanmayı planladığını söyledi. Şirket ayrıca acil kullanım için kan ve organlar da dahil olmak üzere düşük ağırlıklı tıbbi malzeme teslimatlarını da taşımayı planlıyor.
Ehang, “uçan arabalar” ın gelecekte kentsel ulaşımın geçerli bir yolu haline geleceğine ikna olmuş onlarca şirketten biri. Bunlar arasında drone yapımcıları, havacılık şirketleri ve hatta birkaç otomobil üreticisi bulunmaktadır. Bu geleceğin gerçekleşmesini engelleyebilecek geniş teknik ve düzenleyici zorluklar vardır, ancak dünya çapında uçuş yapan çok sayıda prototip, hava taksi servisinin bazı versiyonlarının sonunda bu hayalin gerçekleşebilceğini düşündürmektedir.
YDS YÖKDİL YKS DİL İngilizce Kelime Ezberleme Sosyal Platformu Wordlock
YDS YÖKDİL YKS DİL İngilizce Kelime Ezberleme Sosyal Platformu Wordlock
Eğlenerek öğrenmenin yeni yolu. Wordlock ile kelime öğrenebilir ve öğrendiğiniz kelimeleri test edebileceğiniz sosyal bir platformdur.
YDS, YÖKDİL, YKS İngilizce ve TOEFL sınavlarına hazırlanırken ihtiyacın olan kelimeleri kolayca ezberleyebilir.
Çalışma modülleri ile kelime bilginizi test edebilir.
Zorlandığın kelimeleri kaydederek daha kolay öğrenebilir.
Kendi özel kelime listenizi oluşturabilir.
Özel sözlük ile kelimeleri cümle içerisinde görebilir
İngilizce kelimenin ve örnek cümlenin telaffuzunu dinleyebilir
Sınavlarda en çok çıkan kelimeler ile sınavlara daha kolay bir şekilde hazırlanabilirsiniz.
Uygulamadaki kelimeler, YDS ve YÖKDİL gibi İngilizce dil sınavlarında sık karşılaşılan kelimeler dikkate alınarak seçilmiştir ve bu sayede Wordlock ile kısa sürede binlerce kelimeyi ezberleyerek sınavlarda daha başarılı olabilirsiniz.
Wordlock bir çapraz platform olduğundan hem web hem mobil cihazınızdan kolaylıkla kullanabilirsiniz.
Android uygulaması için tıklayınız.
Web Push Bildirim Sistemi Nasıl Kurulur?
Web Push Nedir?
Web sitenizde bulunan ve yayımlanan içerikleri browser(tarayıcı) üzerinden bildirim yapmasına olanak sağlayan bir bildirim sistemidir. Web Push isminden de anlaşıldığı gibi web-internet push-bildirim anlamına gelmektedir. En iyi bildirim sistemlerinden biride OneSignal bildirim sistemi eklentisidir.
OneSignal sitenizde bulunan içerikleri otomatik tarayıcı yolu ile bildirim göndermenize olanak sağlayan sistemdir. OneSignal eklentisinin bu kadar kurulmasının asıl nedeni kullanımı kolay ve çoklu sayda platformda desteklenmesidir. Desteklediği iOS, Android, Chrome, Unity 3D, Amazon, Windows Phone, Phonegap, Marmalade, Corona ve diğer platformlar. Aynı zamanda ücretsiz olması birçok blog sitesi ve kurumsal sitelerde kullanılmasına yol açtı. Tabi ki, tüm kurumsal şirketlerin paketlerinin görünebilir olması için bir bildirim sistemi olması gerekiyor. İstediğiniz renkte ve istediğiniz sol veya sağ köşeye kurabilirsiniz.
Öncelikle başlangıç için OneSingal eklentisinin resmi sitesine gidin. Kenarlarda “Giriş Yap” butonu olacak. Tıkladıktan sonra kayıt olun ve seçeneklerle karşılaşacaksınız. Öncelikle Web Push seçeceğimiz için Web Push bölümüne gelin ve size belirtilenleri girmeye başlayın. Daha sonra size uzun bir kod gelecek. Bu kodları isterseniz eklenti ile kurabilirsiniz isterseniz kendiniz kurabilirsiniz.
Kurulumu :
FTP üzerinden kurulum yapacaksanız eğer erişim sağlamak için bir uygulama gerekiyor. Önerilen ve kullanımı kolay olan FileZilla kullanabilirsiniz. FileZilla uygulamasını çalıştırın ve bilgilerinizi girip “Bağlan” düğmesine tıklayın. Karşınıza web sitenizin tüm kurulu dosyaları çıkacaktır. Tam anlamıyla veritabanına giriş yapacaksınız. Burada “public_html” bölümünün üzerine gelin ve çift tıklayarak geçiş yapın. Bu bölümde tüm kurulu olan tema, eklenti ve diğer bilgiler bulunuyor. Bize gerekli olan index.html dosyasının üzerine gelin ve “Göster/Düzenle” seçeneğini seçin ve dosyayı bilgisayarınıza yükleyerek düzenleme uygulamasını çalıştıracaktır. Önemli kısım alan olan <body> bölümünün bitişi yani, </body> bölümünü içeren herhangi bir yere size verilen kodu yapıştırın ve dosyayı güncelleyin. Artık sitenizde sağ köşede (seçime bağlı olarak solda olabilir) görünecektir.
WordPress sistemi üzerinden kurulum yapacaksanız. WordPress yönetici panelinden Eklenti bölümünden Yeni Ekle seçeneğini seçin. Arama bölümüne OneSignal yazın ve eklentiyi kurun. Daha sonra sol tarafta OneSignal eklentisi görünecektir üzerine gelip size verilen kodu yapıştırın ve tamamlanacaktır.
Sosyal Medyanın SEO daki Yeri
Sosyal medya kullananların kabaca hesaplarla küresel nüfusun üçte birinin kullandığını gösteriyor. Sosyal medya kullanımının artmasının ana faktörlerden biri akıllı telefonların popülerliği. aktif sosyal medya kullanıcılarının yaklaşık yüzde 90’ı mobil cihazlarıyla platforma erişiyor. Sosyal Medyanın SEO’daki gücü, birbirini tamamlayan yapılardır. Başarılı bir stratejiye sahip olmak için her ikisinde de ustalaşmanız ve sonra bunları mükemmel bir uyum içinde harmanlamanız gerekir.
Sosyal medya, yayınları, blogları veya videoları dakikalar içinde viral hale getirme yeteneğine sahiptir. Günümüzde olduğu kadar yaygın olmadan önce insanlar, anahtar kelime bakımından zengin olan mükemmel makaleler yazmaya yoğunlaşıyorlardı. Buradaki fikir, insanların arayacağı tam cümleleri denemek ve tahmin etmek ve sonra da bu cümlelerin etrafına bir makale yazmaktı.
Bazen sitenize küçük bir pazarlama desteği vermek yararlıdır.. Bu, bir yarışma düzenleyerek ya da bazı ürünler vererek başarılabilir. Bunun iki önemli faydası vardır. Öncelikle, etiketiniz ve bağlantılarınız, geri bağlantılar oluşturacak ve sitenize trafik çekecek şekilde önemli bir tanıtım kazanıyor. Diğer bir avantaj da Twitter hesabınızdaki takipçilerinizi büyütmenizdir.
Yarışma bittikten sonra yeni takipçilerinizin sizinle kalacağı garantisi yoktur. Yeni takipçilerinizle etkileşime girmeniz ve tweetlerinizde değer sağlamaya devam etmeniz durumunda, yeni takipçilerinizi çoğunluğunu elinde tutabilirsiniz.
Takipçilerinizin kalitesi çok önemlidir. Sahte takipçiler satın alarak sistemi oynatmaya hiç çalışmayın. Google bunu algılayabilir ve uzun vadede sizi cezalandırır.
Web sitenize dış bağlantılar oluşturmak, başarılması zor olsa da, her zaman SEO’nun önemli bir parçası olmuştur. Bu, harici siteleri içeriğinizle bağlantı kurmaya teşvik ettiği için sosyal medyanın güçlü yönlerinden biridir. Bu bağlantıların oldukça geniş bir yelpazedeki farklı sitelerden olma olasılığı da vardır; Dış bağlantılarınız ne kadar fazla çeşitlilik gösterirse, arama motorlarının gözünde o kadar iyi olurlar.
En İyi 8 Backlink Sorgulama & Analiz Aracları
En İyi 8 Backlink Sorgulama & Analiz Aracı içinde Google ve SEO çalışmaları için ihtiyaç duyulan araçlardan backlink sorgulama araclarını sizler için sıraladık. Kullanımda sorgulama aracı olan backlinklerin siteniz için büyük yararları olur. Yanlış kullanımı web siteniz için yarardan çok zarara neden olmaktadır. Sitenizdeki indekslerin silinmesine neden olan negatif SEO çalışmaları için kullanılan backlinkler analiz ve sorgulanma aşamasında önemli olmaktadır.
Majestic SEO
Bu sorgulama aracının özelliği daha önceden siteye alınan backlink ve hangi referansların olduğunu gösteren bir araçtır. Backlinklerin yaptığı yönlendirme ve içinde olduğu anchor da yapılan yönlendirmeler ile linklerin hangi anahtar kelimeden geldiğini beraberinde sunan yardımcı bir araçtır.
Ahrefs
En güçlü backlink sorgulama araçlarından biri olan Ahrefs SEO uygulamalarında analizleri sorgulama da kullanılan ve oldukça kullanımı yaygın olan bir araçtır. İsteğe göre ücretli veye ücretsiz olarak hizmet alabileceğiniz sorgulama ve analiz aracı olan Ahrefs yaşanılan iniş çıkışların da dofollow ve nofollow olarak kategori tarzında gösterilmesini sağlar.
Open Site Explorer
Bir başka sorgulama araçlarından biri de Open Site Explorer’dır. Tıpkı Majestic SEO aracındaki gibi linklerin gelişini görmeniz de fayda sağlamaktadır. Diğer araçlara bakıldığında backlink sayısında azalma olduğu görülmektedir.
Rank Signal
Alexa Backlinkleri başta olmak üzere birçok kategorinin backlinklerini görmenizde yardımcı olur. Özellikleri OpenSite özellikleri ile aynıdır. Link kategorileri trust rank, anchor text, nofollow ve dofollow olarak kategori ve linklerin beraber görülmesine olanak sunar.
Cognitive SEO
Linklerin dağılımını ve analizini gösteren araçlardan biri olarak Cognitive SEO backlink aracı kullanılabilir. Birden fazla kaynaktan veri toplayarak tek bir analiz şeklinde kullanıcıya sunan bu araç 14 gün ücretsiz deneme şeklinde kullanılmakta sonrasında belli bir meblağ ile hizmet alabiliyorsunuz.
Fixerkit
Fixerkit yerli bir proje olup üç farklı projeyi içinde barındırmakta. Sosyal medya yönetimi, paravan blog yönetimi ve sıra takibi. Sitenizdeki içeriklerinizi sosyal medya ve paravan blog hesaplarınızda otomatik olarak paylaştırabilir ve kaliteli backlink alabilirsiniz. Aynı zamanda sitenizin hangi kelimede kaçıncı sırada olduğunu günlük sizin yerinize takip eder
SearchMetrics
SEO araçları sayesinde sadece backlink araçlarının kullanımının dışında farklı konularda analiz yapmada yardımcı olur. Ücretli ya da ücretsiz birçok analiz için kullanılabilir. Bu yazılım ile birden fazla veriye ulaşmanız mümkündür.
Link Research Tools
Bu araç genelde webmasterler için kullanılabilecek araçlara sahip olduğundan tavsiye edilir. Derin kapsamlı şekilde çözüm ve analizleri kullanıcıya sunmaktadır. Bu araçların yanında kullanabileceğiniz backlinklerden biri de web SEO Analytics grafik şeklindeki raporların sunulmasında yanınızda olacak bir programdır.
SEO Spglass
Ücretsiz bir yazılım olan SEO Spyglass online hizmet veren programlardan biridir. Bağlantı detaylarında hizmetin sağlandığı ülkeyi geldiği bağlantı bilgileri ile gösteren bir yazılım programı olarak kullanılmaktadır.
Linux Servis Yönetimi
Bu yazımızda Linux sistemimizde çalışan servisleri nasıl yöneteceğimize bakacağız.
Linux üzerinde çalışan servislerin, durduğunda ve işletim sistemi kapatılıp açıldığında otomatik olarak yeniden başlatılması, loglarının toplanması vb işlemleri yürütecek bir sisteme ihtiyaç vardır. systemd birçok Linux dağıtımı için bu sistemi sağlamaktadır.
Linux’ta çalıştırdığımız web ve uygulama sunucuları, SSH, DNS, telnet, vb servisler systemd veya benzeri (örneğin upstart) bir init system tarafından yönetilirler. Bu sistemlere init system denmesinin sebebi, Linux’un bu sistemleri açılış sırasında (boot) diğer process’leri başlatan ve PID (Process ID) 1 ile ifade edilen init process’i olarak kullanmasıdır. Aşağıdaki ekran çıktısında görüldüğü gibi Ubuntu 16.04.1 Linux dağıtımında init process’i olarak systemd kullanılmıştır.
Sistemde systemd tarafından yönetilen bütün servisler systemctl list-units –type service –state running komutu ile görüntülenebilir.
Çalışan bir servisin durumu systemctl status<servis name> komutu listelenir.
Çalışmakta olan bir servis systemctl stop<servis name> komutu ile durdurulur, durdurulmuş bir servis ise systemctl start <servis name> komutu ile başlatılır. Bir servisi yeniden başlatmak için ise systemctl restart<servis name> komutu kullanılır.
Sistemde bulunan bir servisin deaktive edilmesi istendiğinde systemctl disable , aktive edilirken ise systemctl enable komutları kullanılır. Deaktive edilen bir servis, systemd tarafından sistemin yeniden başlatılması sırasında başlatılmaz.
systemd tarafından yönetilen servislerin ürettiği loglar journalctl komutu ile görülebilir. Aşağıda sudo journalctl -u docker.service ile docker servisinin logları görüntülenir.
systemd ile kulanacağınız önemli kısımlara değindik. Sizlerinde eklemek istediğiniz kısımlar var ise aşağıdaki yorum kısmını kullanarak görüşlerinizi ve eklemek istediğiniz bilgileri bizler ile paylaşabilirsiniz.
PIC16F877 Mikrodenetleyici ile I2C haberleşmesi
PIC mikrodenetleyicisi bir çok gömülü sistemde kullanılan güçlü ve uygun bir denetleyici türüdür. Geniş uygulama alanı olsada, hiçbir mikrodenetleyici tüm faaliyetleri tek başına gerçekleştiremez. Bir zaman diliminde, bilgi paylaşmak için diğer cihazlarla iletişim kurması gerekir, bu bilgileri paylaşmak için birçok farklı iletişim protokol türü vardır, ancak en çok kullanılanları USART, IIC, SPI ve CAN’dır. Her iletişim protokolünün kendi avantaj ve dezavantajı vardır. Bu yazımızda I2C protokülüne değineceğiz.
I2C İletişim Protokolü Nedir?
IIC terimi, “Entegre Devreler” anlamına gelmektedir. Normalde I2C veya I C kare, hatta bazı yerlerde 2 kablolu arabirim protokolü (TWI) olarak ifade edilir, ancak hepsi aynı anlama gelir. I2C, senkronize bir iletişim protokolü anlamına gelir; her iki bilgiyi paylaşan cihazların ortak bir zaman sinyalini paylaşması gerekir. Bir clock sinyali için veri göndermek ve almak için kullanılan sadece iki yol kullanır.
I2C İletişim nasıl çalışır?
I2C iletişimi ilk olarak Phillips tarafından tanıtıldı. Burada bir aygıta server, diğer aygıta da client adı verilir. İletişim iki Master ve Slave arasında gerçekleşmeli ve gerçekleşmelidir. I2C iletişiminin avantajı, birden fazla clientin bir sunucuya bağlanabilmesidir.
Komple iletişim, SCL ve SDA olarak adlandırılan bu iki tel üzerinden gerçekleştirilir.
SCL: Master tarafından üretilen saat sinyalini client ile paylaşır
SDA: Master ve slave arasında bu verileri gönderir.
Herhangi bir zamanda yalnızca bir iletişim kurabilir. Veriyolunda birden fazla client bulunduğundan, ana ünitenin her cliente farklı bir adres kullanarak başvurması gerekir. Yalnızca bu adrese sahip olan salve ele alındığında, diğerlerinden ayrılmaya devam ederken bilgilerle geri cevap verecektir. Bu şekilde aynı veri yolunu birden fazla cihazla iletişim kurmak için kullanabiliriz.
XC8 Derleyicisini kullanarak PIC16F877a Mikrodenetleyici ile I2C
Artık bir I2C iletişiminin nasıl çalıştığını öğrendiğimize göre, kullanacağımız ve I2C satırlarına bazı değerler yazacağımız basit bir program yapalım. Daha sonra bu programı simüle edeceğiz.
Her zaman olduğu gibi, program Yapılandırma bitlerinin ayarlanması ve saat frekansının 20 MHz olarak ayarlanması ile başlayalım.
#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled) #pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT enabled) #pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled) #pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming) #pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off) #pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control) #pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off) #define _XTAL_FREQ 20000000
Bir sonraki adımda önceden tanımlanan PIC16F877a_I2C.h başlık dosyasını projemize include ederek uygulamamıza I2C bağlantısı için gerekli tanımları otomatik tanıtmış oluruz. PIC16F877a_I2C.h dosyasına yazının altında bulunan indirme linki yardımı ile ulaşabilirsiniz.
Başlık dosyasını eklemek için :
#include <xc.h> #include "PIC16F877a_I2C.h"
While döngüsünün içinde I2C iletişimine başlayacağız, I2C veriyoluna birkaç rastgele değer yazacağız ve sonra I2C iletişimini sonlandıracağız. Seçtiğim rastgele değerler D0, 88 ve FF’dir. İstediğiniz değerleri girebilirsiniz. Fakat bu değerleri, simülasyonumuzda doğrulayacağımızdan hatırlayın.
while(1) { I2C_Begin(); I2C_Write(0xD0); I2C_Write(0x88); I2C_Write(0xFF); I2C_End(); __delay_ms(1000); }
Programımızı derleyip Proteus ile similasyonu yapalım.

Mikrodenetleyici
Hex dosyamızı oluşturup Proteus yardımıyla oluşturduğumuz similasyona yükleyelim. Hex dosyamızı yüklediğimiz similasyonumuzu çalıştıralım ve mikrodenetleyicimizin pinlerini kontrol edelim.
Yazılan değerlere baktığımızda programda belirtiğimiz değerler D0, 88 ve FF’dir. Değerler her 1 saniyede bir yazılmıştır.
/* * File: IIC with PIC16F */ #pragma config FOSC = HS // Oscillator Selection bits (HS oscillator) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled) #pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT enabled) #pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled) #pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming) #pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off) #pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control) #pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off) #define _XTAL_FREQ 20000000 #include <xc.h> #include "PIC16F877a_I2C.h" int main() { I2C_Initialize(100); //Initialize I2C Master with 100KHz clock while(1) { I2C_Begin(); I2C_Write(0xD0); I2C_Write(0x88); I2C_Write(0xFF); I2C_End(); __delay_ms(1000); } }
Linux Hız Testi
VPS veya VDS sunucularınızın bağlı olduğu networkların hızlarını öğrenmek istiyorsanız bu yazımızda sizlere nasıl ölçebileceğinize bakacağız. Bunun için en kaliteli çözüm speedtest.net üzerinden hat hız verilerini almak.
Öncelikle sunucunuza SSH ile bağlanıp aşağıdaki komutlar yardımıyla kurulumları gerçekleştirelim
wget wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py chmod a+rx speedtest.py sudo mv speedtest.py /usr/local/bin/speedtest-cli sudo chown root:root /usr/local/bin/speedtest-cli
Yukardaki komutlardan sonra aşağıdaki kodu çalıştırarak sunucunuzun ağ hızını ölçebilirsiniz.
speedtest-cli
Eğer değerlerinizi grafiksel modda isterseniz aşağıdaki kod ile grafiğe ulaşabilirsiniz.
speedtest-cli --share
Örnek çıktı :
Arduino ile Kayan Yazı Yapımı
Bu projemizde Arduino ile P10 modülü kullanarak kayan yazı yapacağız. P10 modülünü gelin biraz yakından tanıyalım.
Özellikleri;
– Her bir grafik led panel 32×16 cm ölçülerindedir.
– Her bir grafik led panelde 512 adet led vardır.
– Her bir grafik led panel max. 4A çekmektedir.
– Gündüz ve gece çok daha fazla farkedilebilirlik özelliğine sahiptir.
– Ürün modüllerinde 140 dereceden okunabilen oval ledler kullanılmaktadır.
– Ürün modüler istem bir ürün olduğundan,müdahalede o denli kolay ve pratiktir.
– Bu tabelalar üzerinde basit bir program ve bilgisayar erişimiyle,istediğiniz fontta ve karekterde yazı ekleyip kaldırmanız mümkündür.
– Bunun yanında firma logonuzu,yada sabit ve hareketli giflerle tabelanızın görselliğini artımanız mümkündür.
– Tabelanız satırlara bölerek,birkaç farklı lisanda aynı anda kullanabilme avantajı sağlamaktadır.
Kod için Gerekli Olan Kütüphane : https://github.com/freetronics/DMD
2×16 lık headerın arduino nano’ya bağlantı şekli:

Arduino ile kayan yazı
Arduino ile kayan yazı kodları :
#include <SPI.h> #include <DMD.h> #include <TimerOne.h> #include "SystemFont5x7.h" #include "Arial_black_16.h" #include "Arial14.h" #define DISPLAYS_ACROSS 1 #define DISPLAYS_DOWN 1 DMD dmd(DISPLAYS_ACROSS, DISPLAYS_DOWN); void ScanDMD() { dmd.scanDisplayBySPI(); } void setup(void) { Timer1.initialize( 5000 ); Timer1.attachInterrupt( ScanDMD ); //clear/init the DMD pixels held in RAM dmd.clearScreen( true ); } void loop(void) { byte b; dmd.clearScreen( true ); dmd.selectFont(Arial_Black_16); //dmd.selectFont(Arial_14); dmd.drawMarquee("FATIH BASARIS",13,(32*DISPLAYS_ACROSS)-1,1); long start=millis(); long timer=start; boolean ret=false; while(!ret){ if ((timer+30) < millis()) { ret=dmd.stepMarquee(-1,0); timer=millis(); } } }
0-30 V Kısa Devre Korumalı Transistörlü Güç Kaynağı Modeli
Bu yazımızda kısa devre korumalı bir güç kaynağı devresine bakacağız. 0 – 30 V aralığında olan bir transformatör kullanarak yapılacaktır. Şimdi projemize göz atalım :
Devre Elemanları
• 220/30 V luk transformatör
• Köprü tipi diyot D1=B80 C5000/3300
• C1=2200µf / 63V elektrolitik kondansatör
• ZD=30V zener diyot
• Transistor ler T1 =2N3055 , T2=T4=BD239 , T3=BC141
• Direçler : R1=1K5 (2W) , R2= 470 , R3=680 , R4=22 , R5=120 , R6=1K (2W)
• 5mm Kırmızı LED
Temel Güç Kaynağı Bloğu :
Şebekeden alınan 220V’luk gerilimi 30V’a düşüren devre elemanına transformatör denir. Transformatörümüz 12V veya 24V olsaydı şebekeyi verilen değerlere düşürürdü. Diyod köprüsü yardımıyla akım tek yönlü geçmektedir. Transformatör çıkışlarındaki sinüsoidal gerilimi tam olarak doğrultmasa da zamana bağlı olarak yönün hep aynı olmasını sağlar.
Kondansatörün devredeki faktörü ise, gerilimin sabit bir değerde kalması için filtreleme görevi yapmaktadır.Potansiyometre yardımıyla T3 trasnsistörün Ib akımı altırılıp azaltarak gerilim ayarlaması yapılır. Led devrede gerilimin olup olmadığını anlamak için bir sinyal görevi yapar. Ona bağlı seri direnç ise led’ in yanmaması için gerilim bölücü görevi yapmaktadır.
Devre Şeması :
PuTTY Nedir Nasıl Kullanılır ?
Ücretsiz açık kaynaklı bir terminal uygulamasıdır. Putty SCP, SSH, Telnet, rlogin ve COM gibi iletişim protokollerini desteklemektedir.
PuTTY’nin kullanımı oldukça basittir. Yukarıda gördüğünüz görsel de yazan Host Name kısmına sunucunuzun IP adresini yazarak bağlanabilirsiniz. Bağlantı kurulurken root şifresi soracaktır. Sunucunuzu oluştururken bu şifre size mail olarak gönderilmiştir.
Her seferinde IP girmek istemiyorsanız. Saved Sessions adlı bölüme bir isim girdikten sonra sağ taraftaki Save tuşuna basarsanız bu bağlantınız o isimle kaydedecektir.
Putty ile kullanılan bazı komutlar :
Adresi girilen klasöre ve alt klasörlerine kullanıcı ve grup yetkisi verme:
chown -R admin:admin klasör_adresi
Adresi girilen klasöre ve alt klasörlerine okuma ve yazma ile ilgili izinler verme:
chmod -R 0755 klasör_adresi
Bütün bir klasörü silme:
rm -rf klasör_adresi_ve_adı
Bütün bir klasörü kopyalama:
cp -r klasör_adresi klasör_hedef_adresi
Yedekleme için arşivleme:
tar -cvf yedek-28-temmuz-2018.tar /home/admin/web
Putty indirme bağlantısı : https://www.putty.org/