20 Aralık 2016 Salı

GitHub Nedir?

GitHub Nedir?

GitHub'ın nasıl çalıştığını merak ediyorsanız bu video tam size göre.


C# Başlangıç Dersleri için İki Kolay Alıştırma Sorusu

C# Logo
C#

1) Klavyeden girilen ismi klavyeden girilen sayı kadar ekrana yazdıran program parçasını kodlayınız.

Console.Write("İsim Giriniz: ");
string isim = Console.ReadLine();
Console.WriteLine("Tekrar Adedi Giriniz: ");
int tekrarAdedi = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < tekrarAdedi; i++)
{
    Console.WriteLine(isim);
}
Console.ReadKey();


2) Klavyeden girilen değere kadar olan sayıların toplamını bulup ekrana yazdıran program parçasını kodlayınız.

İkinci sorunun cevabını da belki yorum alanına yazmak isteyen bir gönüllü çıkar...

18 Aralık 2016 Pazar

KUYRUK RÜZGARI TÜRBÜLANSI - VORTEX NEDİR?

Uçaklar, aynı suda ilerleyen gemiler gibi arkalarında bozuk, farklı yönlere dağılan hava kütlesi yani girdaplar bırakırlar. Bunlara kuyruk rüzgarı türbülansı veya vorteks denir. Uçakların kanat ucundan geriye doğru yayılan ve aksi yönde dönen, düzensiz çalkantıları, arkadan gelen uçaklar için zaman zaman çok ciddi tehlikelere neden olabiliyor.


Yapılan ölçümlerde vortekslerin hızlarının saniyede 100 metreye kadar çıktığı da saptanmış durumda. Ağır uçakların ardından oluşan vortekslerin etkisi en az 2 dakika sürüyor. Bu süre bitmeden küçük uçakların yapacağı inişlerde kaza riski çok fazla. Arka arkaya iniş yapacak uçakların aralarındaki mesafe kule tarafından en az dört mil olarak ayarlanıyor.

Eğer önden  ağır uçak iniyorsa bu mesafe en az 5-7 mile kadar çıkartılabiliyor. Hatta bu mesafe sonrasında birkaç dakika daha beklenerek türbülansın iyice dağılması sağlanıyor.

Kaynak: Sanal Pilot

7 Aralık 2016 Çarşamba

25 Kasım 2016 Cuma

jQuery Animate Loop - Kod Örneği

jQuery Animate Loop Kod Öeneği: Son adımdaki hide fonksiyonu callback olarak animasyon metodunu alıyor ve süreç tekrar başlıyor.

23 Kasım 2016 Çarşamba

Algoritma Sınavı Soruları - 2/22 - Artık Yıl Hesaplama

SORU: Aşağıda verilen kurallara göre, kullanıcıdan yıl bilgisi alan ve alınan yılın artık yıl olup olmadığını ekranda görüntüleyen kodu yazınız.

  • Yıl, 400'e tam bölünebiliyorsa artık yıldır.
  • Yıl, 4'e tam bölünüp 100'e tam bölünemiyor ise artık yıldır.
Beklenen Örnek Ekran Çıktısı:
Yıl Bilgisini Giriniz: 2015
2015 yılı artık yıl değildir.

Yıl Bilgisini Giriniz: 2016
2016 yılı artık yıldır.


Algoritma Sınavı Soruları - 1/22

SORU: Klavyeden dakika bazında alınan bir tam sayıyı; "gün:saat:dakika" formatında ekrana yazdırınız.

Beklenen Örnek Ekran Çıktısı:
Toplam Dakika Bilgisini Giriniz: 7420
7420 dakika, 5 gün 3 saat 40 dakika eder.


22 Kasım 2016 Salı

X Üniversitesi Y Meslek Yüksek Okulu Bilgisayar Teknolojileri ve Programcılığı Programı Internet Programcılığı Final Sınav Soruları



Eskilerimi düzenlerken 13 Ocak 2009 tarihli bir sınav soru kağıdı geçti elime.

SORU 1:
CSS kullanım amaçlarını,
Web Sayfasına kattığı avantajlarını ve
kodlanarak web sayfası içerisinde kullanımını bir örnek üzerinde gösteriniz.
25 puan

SORU 2:
Hazırlayacak olduğunuz bir form içerisinde;
Id'si isim olarak tanımlanmış bir giriş kutusu ve
Id'si kontrol olarak tanımlanmış vir checkbox mevcuttur.

İsim alanına bilgi girildikten sonra;
kontrol checkbox'ı seçildiği anda isim alanındaki bilgilerin tümünü
BÜYÜK HARFE çevirerek tekrar isim alanına yazdıran ve
işlem tamamlandı uyarısını veren Javascript ile ilgili tüm kodlamaları yazınız.
(Form Oluşturulacak)
25 puan

SORU 3:
ASP.NET teknolojisi kullanarak;
içerisinde kullanıcı adı, kullanıcı telefonu,  kullanıcı bilgileri olan bir formda
kaydet butonuna basılınca, aynı isimli kullanıcı yok ise text dosyaya kayıt eden,
var ise uyarı mesajı vererek kayıt etmeyen kodlamayı
form yapısı ile birlikte oluşturunuz.
25 puan

SORU 4:
PHP ile bir hesap makinesi hazırlayınız.
25 puan

2 Kasım 2016 Çarşamba

Microsoft SQL Server Express Sürümlerinin Veri Tabanı Boyutu Limitleri


Microsoft SQL Server Express sürümleri ücretsiz olarak kullanılabiliyor. Fakat, veri tabanı boyutu üzerinde bir sınır noktası var. Aşağıdaki listede SQL Server Express sürümlerinin limitlerini bulabilirsiniz.

  • Microsoft SQL Server 2005 Express
  • Microsoft SQL Server 2008 Express

sürümlerinde maksimum 4GB veri tabanı boyutu limiti var.


  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2014 Express
  • Microsoft SQL Server 2016 Express

sürümlerinde maksimum 10GB veri tabanı boyutu limiti var.

13 Ekim 2016 Perşembe

Scratch’te Kalem ile Pokemon Topu Çizelim Online Proje Eğitimimizi Yayına Aldık

Scratch’te Kalem ile Pokemon Topu Çizelim Online Proje Eğitimi



Scratch’te Kalem ile Pokemon Topu Çizelim online proje eğitimimize hoşgeldin.
Ben Ercan Bozkurt.
Scratch Görsel Programlama Dili ile çizimler yapacağımız bu online projemizde Scratch'te kalem ile çalışmayıScratch'te çizgiler çizmeyiScratch'te Kalemi Belli Bir Yöne Hareket Ettirme ve bu sayede çeşitli şekiller oluşturmayı öğreneceğiz.
Kendi çizimlerinizi oluşturmaya hazır mısınız
Hadi başlayalım.

11 Ekim 2016 Salı

Scratch ile Müzik Yapmayı Öğreniyoruz - Eğitimimizi Yayına Aldık

Scratch ile Müzik Yapmayı Öğreniyoruz



Scratch ile Müzik Yapmayı Öğreniyoruz online eğitimimize hoşgeldin. Scratch ile Müzik Yapmayı Öğreniyoruz projemizde önce nota bilgisini öğreneceğiz. Notaları öğrendikten sonra piyano ile “daha dün annemizin” parçasını çalmak için gerekli blokları birleştireceğiz ve müziğimizi oluşturacağız.
Sahnemize müzik temasına uygun bir dekor ekleyip müzik projemizi tamamlayacağız.
Hadi başlayalım.

5 Ekim 2016 Çarşamba

Microsoft .NET Platformunda Programlama - Eğitimimizi Yayına Aldık

Microsoft .NET Platformunda Programlama Eğitimi


.NET platformu üzerinde tek bir dil kullanarak  masaüstü, web ya da mobil uygulamalar geliştirebilirsiniz.
Bu Microsoft .Net Platformunda Programlama online eğitimimizde .NET Platformu ve .NET Framework konularını ele alacağız. .NET Dünyasında assembly kavramını inceleyeceğiz ve Common Intermediate Language (Ortak Ara Dil)’den bahsedeceğiz.
Eğitim içerisinde .NET Framework sürümlerine değineceğiz ve çeşitli özelliklerin hangi sürümlerde yer aldığını öğreneceğiz. .NET Framework mimarisini inceleyip, .NET’in sunduğu çözümleri dile getireceğiz.
.NET Framework kurulumu ve kurulum öncesi bilmemiz gerekenlere baktıktan sonra, .NET’in önemli bileşenlerini ele alıp Temel Sınıf Kütüphanesi ve C# dili hakkında bilgiler ile ilk bölümü bitireceğiz.
Assembly kavramını ele alırken, CIL, MetaData, Manifest ve Kaynaklar hakkında bilgiler verip son konumuzda ortak ara dilin yararlarını ve detaylarını anlatacağız.

29 Eylül 2016 Perşembe

Scratch ile Hayallerini Kodla! - Eğitimimizi Yayına Aldık

Scratch Temel Egitimi

Scratch Temel Eğitimine Hoşgeldin.
Bu video senin için hazırlandı ancak sen bu videoyu izlemeden hemen Scratch öğrenmeye hazır hissedip sonraki videoya geçmiş olabilirsin aslında istediğimiz de tam olarak bu :) Eğer bu videoyu izlemeyi seçtiysen; Scratch ile görsel programlama dünyasına girmene sadece 1 adım kaldı. Nasıl mı? 
MIT Medya Laboratuarında geliştirilen Scratch, sürükle - bırak mantığı ile çalışan ve sana en kolay şekilde kodlama öğretecek olan görsel bir programlama ortamıdır. Scratch sayesinde hiç kod yazmaya gerek kalmadan sürükle bırak mantığıyla kodlama yapabilirsin. Bu sayede animasyonlar, etkileşimli hikayeler veçizgi filmler oluşturabiliroyunlar yapabilirsin ve yaptığın her şeyi hem arkadaşlarınla hem de tüm dünyadaki her yaştan diğer scratch kullanıcıları ile paylaşabilirsin. 
Scratch ile programlamaya başlamak için bir bilgisayar ya da tablet kullanman yeterli! Kodlama alanına sürükleyip bırakacağın kod blokları ile kendi programlarını inşaa edebileceğini zaten öğrendin. Bunun dışında Scratch dünyasında varolan mevcut uygulamalara katkıda bulunarak diğer uygulamaları da geliştirebilirsin. Bu eğitim setinde Scratch ile tanıştıktan hemen sonra bu ortamda neler yapabileceğini, web sitesine kayıt olmayı, online ve offline editör ile arayüze hakim olarak calismayi, projeler oluşturup kaydetmeyi, baskalarinin projelerine katkida bulunmayi ogreneceksin. Tabii ki tüm bunları öğrenirken Piko arkadaşlarını bekliyor ve kovalamaca projeleri ile tecrübe kazanıp diğer örnek uygulamalarla hayalinde canlandırdığın diğer projeleri hayata geçirebileceksin. 
Hadi kodlamaya!

Scratch: Sayı Tahmin Oyunu Projesi

Sayı Tahmin Oyunu Nedir?
Sayı Tahmin Oyunu projemizde Anna, 1 ile 10 arasında rastgele bir sayı tutuyor ve bizden tuttuğu sayıyı tahmin ederek bulmamızı istiyor.


Sayı Tahmin Oyunu Nasıl Oynanır?
Oyunu başlatmak için yeşil bayrağa tıkla.
Anna sorduğunda, sahnenin alt kısmındaki alana tahminini gir.

Çocuklar için Kodlama dersinde kullandığımız projenin kodlarını incelemek için bu linki kullanarak sayı tahmin oyunu kodlama sayfasına ulaşabilirsiniz.


23 Eylül 2016 Cuma

Scratch: Pico Arkadaşlarını Bekliyor Projesi

Eğer yukarıdaki alanda oyun çalışmamış olursa, hata mesajı üzerindeki linke tıklayarak Flash Player'ı aktif hale getirebilirsiniz.

Proje Kodları:

Projeyi incelemek ve üzerinde değişiklikler gerçekleştirmek için bu linki kullanabilirsiniz.

Scratch: DJ Kedicik ile Müzik Projesi

DJ Kedicik projesinde yeşil bayrak ile projeyi başlatıp; klavyeden Z,X,C,V,B,N tuşlarına basarak scratch sesleri çıkarabilirsiniz. Proje çalışmaya başladığında arkaplanda ritim sesi kesintisiz bir şekilde devam edecektir. Ayrıca boşluk tuşuna basarak kediciğimizin miyav sesi çıkartmasını sağlayabilirsiniz.

Bu proje ve bunun gibi daha birçok projeyi, Abaküs Yayınevinin Çocuklar için SCRATCH ile Programlama kitabında bulabilirsiniz.

18 Eylül 2016 Pazar

SQL: Dinamik Sorgu Oluşturmak

Gelen bir soru üzerine olayın mantığının anlaşılabilmesi için hızlıca bir örnek hazırladım.

Örnekte iki tabloyu join etmek için bir stored procedure kullanılıyor. Parametre olarak iki tablonun adları ve join edilecek kolon adları veriliyor.

Çocuklarımıza Niçin Kodlama / Programlama Öğretelim Ki?

Bu yazıda; çevremde arkadaşlarım ile konuştuğum ve sosyal medyadan derlediğim notları bir araya toplamak istedim.


Günümüzde kodlamanın önemi büyük. Programlama dersi; yalnızca bilgisayar mühendisliği ya da yazılım mühendisliğinde değil tüm mühendislik dallarında ve matematik bölümünde de zorunlu olarak okutuluyor. Hatta genetik okuyan bir öğrencim olmuştu ve dersi geçmesine destek olması için algoritma ile kodlamaya giriş eğitimleri almıştı. Buna rağmen; üniversitede mühendislik dallarına gelene kadar geçen yıllar boyunca kodlamadan uzak bir şekilde büyümek yetişmek günümüz dünyasının ihtiyaçları karşısında hayata geç kalmak anlamına geliyor.


Programlama öğrenen kişi aslında bilgisayarla ve diğer cihazlarla konuşmayı öğreniyor. Programlama ile birlikte algoritma da öğrenen kişi; problem çözme tekniklerini ve sistematik bir şekilde düşünebilme yeteneklerini kazanıyor. Bu yeteneklerini kullanarak cihazlara çeşitli  işlemleri nasıl yapacaklarını ve hangi durumda nasıl davranacaklarını söylüyor.

Hayatta her alanda problemlere farklı açılardan bakabilme, çözüm üretmek veya gereğinde alternatif çözümler üretmek için çok önemlidir. Kod yazmayı ve algoritma kurmayı öğrenen çocuğun bu yetenekleri de gelişir. Bir sorun için birden fazla çözüm üretip; gerektiğinde içlerinden en verimli olanı veya en kısa zamanda sonuca götüreni seçebilir. Alternatifler arasından o anki duruma en uygun seçeneği tercih etme konusunda yeteneklerini ve hızını artıran çocuğun karar alma ve doğru karar verme becerileri de gelişir.

Bill Gates, Mark Zuckerberg ve Steve Jobs gibi bilişim alanında isim yapmış insanların ortak özelliği hepsinin küçük yaşta programlama öğrenmiş ve kod yazmış olmaları.

Uzmanlar diyor ki;
Öncelikle; kim bu uzmanlar diyecek olursak, dünyanın birçok büyük firmasının kurucuları, ya da en meşhur programcıları, devlet başkanları ve teknoloji danışmanları diyebiliriz.

Bu uzmanlar diyor ki; herkes küçük yaşlardan itibaren programlama öğrenmelidir. Hemen Apple'dan rahmetli Steve Jobs'un söylediklerini hatırlayalım:
"Bence ülkede herkes bilgisayar programlamayı (kodlamayı) öğrenmeli. Bir bilgisayar dili öğrenmeli. Çünkü bu, insana nasıl düşüneceğini öğretir. Ben bilgisayar bilimini bir sosyal bilim olarak görüyorum. Bu herkesin öğrendiği bir şey olmalı"

Microsoft'tan Bill Gates, ilk programını 13 yaşında yazdı. (Üç Taş Oyunu) 15 yaşında ise BASIC dilinin yeni bir versiyonunu tasarladı. Facebook kurucusu Mark Zuckerberg de kod yazmayı çocuk yaşta öğrenenlerden. Mark kodlama yapmaya 9 yaşında başladı.

Programlama öğrenmek insana/çocuğumuza neler katar?
  • Problem Çözebilme Yeteneği,
  • Sistematik Düşünme Yeteneği,
  • Olaylar Arasındaki İlişkileri Görebilme Yeteneği,
  • Çok Yönlü Düşünebilme Yeteneği,
  • Yaratıcı Düşünebilme Yeteneği
Günümüzde; gerçek hayatta uğraşmak zorunda olduğumuz irili ufaklı çok sayıda işi otomatize ederek bilgisayar, telefon, tablet ya da konuya ve ihtiyaca özel geliştirilmiş cihazlarda yapıyoruz. Programlama bilen bir kişi; makinelerin ya da makineler üzerinde çalışan sistemin işleyişini daha kolay ve daha hızlı kavrayacaktır. Bu sayede, problem çözerken cihazın çalışma prensiplerini de hesaba katarak daha doğru, daha kestirme ve kesin çözümler üretecektir.

Scratch ile Çocuklar için Kodlamaya Giriş eğitim videolarına ücretsiz olarak aşağıdaki udemy linki üzerinden erişebilirsiniz.
https://www.udemy.com/scratch-ile-cocuklar-icin-kodlama/

http://www.yavrukanguru.com

17 Eylül 2016 Cumartesi

SQL - Stored Procedure Tarafından Üretilen Sonuç Kümesini Başka Bir Tabloya Kaydetmek

Stored Procedure çalıştırıldığında elde edilen sonuç kümesi ile aynı yapıda bir tablomuz olduğunu varsayalım. Yoksa oluşturalım.

Sonrasında tek yapmamız gereken aşağıdaki gibi bir insert sorgusu yazmak;

INSERT INTO şema.HedefTablo
exec BizimProcedure @parametre1,@parametre2

NOT: Parametre almayan bir stored procedure de kullanabilirdik pek tabii ki.

16 Eylül 2016 Cuma

SQL: Bir Tablonun Şemasını T-SQL ile Değiştirmek


SQL Server veri tabanları içerisinde tablolar oluştururken, tablomuzu dbo şeması ya da daha önceden tanımlanmış başka şemalar altında oluşturabiliriz. Bir tablo oluşturulduktan sonra, tabloyu başka bir şemanın altına alma ihtiyacımız olabilir.

Örneğin; Veri tabanına toplu veri girişi yaparken gelen verileri dbo şemasının altında oluşturulan tablolara aldığımızı düşünelim. Oluşturulan tablolar üzerinde gerekli düzenlemeleri yaptıktan ve veriyi istediğimiz hale getirdikten sonra; tablomuzu, yetkilendirme süreçleri önceden tanımlanmış bir şemanın altına taşımak isteyelim.

Aşağıdaki T-SQL sorgusu ile tablomuzu başka bir şema altına alabiliriz.

ALTER SCHEMA YeniHedefSchema TRANSFER MevcutKaynakSchema.TabloAdi

15 Eylül 2016 Perşembe

SQL Server'da Database Shrink ile Veri Tabanı Küçültme İşlemi

SQL Server'da Database Shrink ile Veri Tabanı Küçültme İşlemi

Shrink kelimesini Türkçe'ye küçültmek olarak çevirebiliriz.

SQL Server: Database Shrink
Bir veri tabanı içerisindeki veri miktarı azalsa dahi, veri tabanının sabit diskte kapladığı alan azalmaz.

Mesela 3 GB boyutunda veri ile dolu olan bir veri tabanından 1 GB veri silecek olursak, veri tabanının sabit diskte kapladığı alan 2GB'a inmez. Diskte kaplanan alan halen 3 GB olacaktır.

Disk alanı kullanımını israf boyutundan çıkarıp normal boyutlara çekmek için shrink işlemi yapılabilir.

Veri tabanı shrink işlemini T-SQL ile yapabileceğimiz gibi SQL Server Management Studio içerisinde grafik arayüzü kullanarak da yapabiliriz. Örneğimizi T-SQL ile gerçekleştireceğiz.

Shrink işlemini veri tabanı için hem *.mdf *.ndf gibi data dosyalarında hem de *.ldf log dosyaları üzerinde tek komutla uygulamak istediğimizde aşağıdaki komutu kullanabiliriz. Örnekte işlemin Adventureworks veri tabanı üzerinde uygulandığı varsayılmıştır.

use AdventureWorks
GO
DBCC SHRINKDATABASE('AdventureWorks')

Eğer shrink işlemini veri tabanına ait tüm dosyalarda değil de sadece tek bir data dosyası üzerinde uygulamak istersek; kullanacağımız komut aşağıdaki gibi olacaktır. Dosya bazlı shrink işlemi yapmak için shrinkfile kullanırken ilk parametre olarak veri tabanı adını değil küçültmek istediğimiz dosyanın adını gireriz.

use AdventureWorks
GO
DBCC SHRINKFILE('AdventureWorks_Data',0,TRUNCATEONLY)

Benzer şekilde, sadece log dosyasını shrinklemek için shrinkfile komutu kullanılabilir.

use AdventureWorks
GO
DBCC SHRINKFILE('AdventureWorks_Log',0,TRUNCATEONLY)

SEO Notları: Alexa Nedir?

SEO Çalışmalarında Alexa Nedir?


Internet üzerindeki tüm web siteleri Alexa tarafından ziyaretçi bazlı seo kriterlerine göre değerlendirilir ve bir sıralama oluşturulur.

Alexa'nın bu hizmeti, arka planda manipüle edilebilir olduğu için birçok yerde güvenilir olarak kabul edilmez. Buna rağmen günümüzde halen az da olsa SEO'ya etkisi vardır.

1996 yılında bağımsız bir firma olarak kurulan Alexa, 1999 yılında Amazon tarafından satın alınmıştır.

Alexa Web Sitesi: http://www.alexa.com/

SEO Notları serisindeki diğer yazılara ulaşmak için tıklayınız.

SEO Notları: PageRank (PR) Nedir?

SEO Notları: PageRank (PR) Nedir?


PageRank, Google tarafından, web siteleri için yapılan bir değerlendirme ve derecelendirme sistemidir.

10 üzerinden derecelendirme yapılır. Senede 3-4 kez yapılan düzenlemeler sonrasında güncel değerler açıklanır.

Pagerank, Google aramalarında üst sıralara çıkma konusunda etkili değildir.

SEO Notları serisindeki diğer yazılara ulaşmak için tıklayınız.

SEO Notları: Google DeIndex Cezası

Google DeIndex Cezası


Google aramalarında üst sıralarda çıkmak için olması gereken etik seo yöntemleri dışında hem etik olmayan hem de bazı durumlarda yasal bile olmayan yöntemler kullananlar olabiliyor.

Google, bu tarz etik olmayan davranışlar sergileyen web sitelerini tespit ettiğinde filtre ya da deindex gibi çeşitli cezalandırma yöntemleri uygular.

Deindex cezası, bir web sitesinin ve bu siteye ait tüm sayfaların, arama motorundan tamamen silinmesi anlamına gelir. Bu ceza türü, arama motorları tarafından verilebilecek en büyük cezadır.

SEO Notları serisindeki diğer yazılara ulaşmak için tıklayınız.

SEO Notları: Hacklink Nedir?

SEO Çalışmalarında Hacklink Nedir?


Bir web sitesinin sahibi ya da yetkilisinin izni veya bilgisi olmadan, siteyi hackleyerek kendi sitemize yönlenen linkler ekleme işlemine hacklink denir.

Bu tarz linkler genellikle web sitesinin ara yüzünde gözükmeyecek şekilde planlanır. Örneğin; beyaz arkaplan üzerinde beyaz renkli link. Verilen linkler kaynak kod tarafında yer aldığı için, sitede görülemese bile arama motoru tarafından doğal linkler olarak algılanır ve tavsiye edilen site olarak değerlendirilir.

Hacklink yapmanın çok sayıda yan etki ve sakıncası vardır. Öncelikle; yasalar gereği yapılan eylem suçtur ve hukuki sonuçları olabilir. Bunun haricinde; yaptığımız işlem, Google algoritmasını bir nevi kandırmak olduğu için, durum ortaya çıktığında Google tarafından cezalandırılarak arama sonuçları sıralamasında pozisyon kaybetmemize ve alt sıralara düşmemize sebep olacak bir işlemdir.

SEO Notları serisindeki diğer yazılara ulaşmak için tıklayınız.

10 Eylül 2016 Cumartesi

SQL: Sunucudaki Tüm Veri Tabanları için Son Backup Alınan Tarihi Bulmak

Gece gece can sıkıntısı. Uyku tutmadı. Ufak tefek bir şeyler karalayayım dedim.


Veri ile çalışırken yedeklemenin önemi büyük. En son ne zaman yedek aldığınızı merak ettiniz mi hiç? Bir SQL Server Instance'ı içerisinde yer alan tüm veri tabanları için son yedek alma zamanını görmek istediğimde aşağıdaki sorguyu kullanıyorum.

Üzerinde çalışacağımız nesneleri tanıyalım:
select * from sys.sysdatabases
select * from msdb.dbo.backupset

Sunucudaki Tüm Veri Tabanları için Son Backup Alınan Tarihi Gösteren Sorgu:

Öğrenciden Soru: database_name bilgisi msdb.dbo.backupset içerisinde varsa neden join yapıyoruz ki? Sadece msdb.dbo.backupset üzerine bir sorgu atsak zaten aynı bilgiyi alamaz mıyız?

Cevap: Sunucuda daha önce backup'ı hiç alınmamış veri tabanları var ise, msdb.dbo.backupset içerisinde onlara ait hiç bilgi olmayacaktır. Yani join yapmadan tek tarafı sorgularsak, daha önce en az 1 defa backup'ı alınmış veri tabanlarının son yedekleme tarihlerini görürüz. join yaparak sorgu oluşturduğumuzda ise, hiç yedeklenmemiş veri tabanlarını bile yanlarında bir tarih olmadan görebiliriz. Bu sayede daha önce hiç yedeklenmemiş bir veri tabanını yedeklememiz gerektiğine karar verebiliriz. Aksi takdirde bu tarz veri tabanlarını sorgu sonucunda hiç görmeyeceğimiz için kolayca gözden kaçırmak mümkün olur.

7 Eylül 2016 Çarşamba

Microservisleri Anlamak

Mikroservisler (Microservices)


6 Eylül 2016
Devnot TV'de Mikroservisler konusu üzerine konuştuk.
Microservices nedir? Avantajları ve zorlukları nelerdir?
Klasik SOA uygulamalarından ne gibi farklılıkları vardır?


Microservisleri Anlamak


20 Ağustos 2017

1 Eylül 2016 Perşembe

SEO Notları: Black Hat SEO Nedir?

Black Hat SEO Nedir?


Arama motoru açıkları, sıralama algoritması açıkları gibi çeşitli açıklardan yararlanarak hem etik olmayan hem de çoğu zaman yasal olmayan yollarla haksız bir şekilde sıralamada üst sıralara çıkmak için yapılan SEO işlemleri Black Hat SEO olarak adlandırılır.

SEO Notları serisindeki diğer yazılara ulaşmak için tıklayınız.

29 Ağustos 2016 Pazartesi

Windows En Son Ne Zaman Restart Oldu?

wmic os get lastbootuptime

Yukarıdaki komutu, komut satırında çalıştırıp, Windows'un son Restart olduğunu zamanı görebilirsiniz.

6 ayda bir restart kullanan birisi olarak, ara sıra merak edip bakmak için kullandığım bir komut.

SQL: Sunucudaki Veri Tabanlarının Listesini Sorgu ile Çekmek

Bir SQL Server üzerindeki tüm veri tabanları için veri tabanı adı ve veri tabanı fiziksel dosya yolunu aşağıdaki sorgu ile elde edebilirsiniz.

SQL Server Management Studio İçerisinden Çalıştırılan Sorgu Tamamlandığında Uyarı Sesi Çıkartmak

SQL Server Management Studio ile sorgular çalıştırıyoruz ve kimi zaman bu sorguların sonuçlanması biraz zaman alabiliyor. Tabi bu sırada başka işlere odaklanıp bazen ilk işimize çok gecikmeli bir şekilde dönüş yapabiliyoruz.

Çözüm basit. Çalıştırdığımız sorgu tamamlandığında uyarı olarak ufak bir Beep sesi duymak bizi yeniden göreve çağıracaktır.

Tools menüsünden Options üzerine tıklayalım ve Seçeneklerin bulunduğu pencereyi açalım.



Bu pencerede Query Results başlığının altında yer alan SQL Server içerisindeki General üzerine tıklayalım ve açılan alanda "Play the Windows default beep when a query batch completes" seçeneğini işaretleyelim.

Artık; sorgular tamamlandığında Windows ayarlarımızdaki varsayılan beep sesini duyacağız. Çok dağınık çalışan birisi olarak benim çok işime yarayan bir özellik. Bugün bir arkadaşım ile konuşurken konusu açıldı ve bloguma da yazmaya karar verdim. Umarım sizlerin de işine yarayacaktır.

28 Ağustos 2016 Pazar

SQL: Ayın Son Gününe Ait Tarihi Bulmak

SQL Server

EOMONTH() Fonskiyonu
Ayın son gününe ait tarihi bulan fonksiyondur.
SQL 2012 ile birlikte gelmiştir.
SQL 2012 ve üzeri sürümlerde çalışır.

25 Ağustos 2016 Perşembe

SQL: Tablodaki Kolon Adlarını Sorgu ile Çekmek

Bir öğrencimden gelen soru üzerine minik bir kod parçası paylaşıyorum.

23 Ağustos 2016 Salı

Sitokinin Nedir?

"Markete üzüm gelmiş. Kırmızı, iri, dipdiri şeyler. Erik gibiler maşallah! Nereden geliyor bunlar? 
Şili'den. 
Şili mi? 
Evet! 
Kaç gündür buradalar? 
3-5 gün oldu. 
Düşünün, Şili'nin bir köyünde topluyorlar bunları. Uzun yolculuklar sonunda bizim kasabaya kadar geliyor. Bir süre bizim manavda bekliyor. Alıyorsun eve getiriyorsun, evde de 3-5 gün daha, bana mısın demiyor. Hala kütür kütür. İyi ama, nasıl? 
Şahane şeyler var, adına ilaç diyorlar. Üzümlere verilen bu ilaçlardan birinin etiketindeki faydaları sayalım mesela: Dane büyüklüğünü arttırır, Dane ağrılığını arttırır, Dane şeklini daha düzgün olarak değiştirir, Tam olgunlaşmadan daneye parlak sarı yeşil rengini verir, Dayanıklı ve dirençli kabuk sayesinde hasat ve hasat sonrası olabilecek yaralanmalar en aza iner, hastalıklara direnç katar, Kullanım dozu yükseldiğinde sofralık üzümlerde hasadı geciktirir. Raf ömrü uzar. 
Nedir bu? Sitokinin. Büyüme hormonu. 
Bakın şu şansa ki, sitokinin insanda da aynı işe yarıyor. Sonra anneler şikayet ediyorlar "ee benim çocuk erken kıllanıyor!" Bu dünya böyle hanım abla, sen üzümü alırken kıllanmazsan, çocuğun kıllanır."

14 Ağustos 2016 Pazar

Mobil Web Uygulamaları Geliştirirken Kullanabileceğimiz Kütüphaneler ve Frameworkler

Mobil web uygulamalarının daha hızlı, performanslı ve görsel olarak daha çekici hale gelmesi için çeşitli frameworklerden ve kütüphanelerden faydalanıyoruz. Bu kütüphaneler ve frameworkler sayesinde tarayıcılar arasındaki uyumsuzlukları da düşünmemize gerek kalmıyor.



Kütüphaneler ve Frameworkler için minik bir liste oluşturalım;
jQuery Mobile
jQT (jQTouch)
Sencha Touch

Dojo Mobile
App Framework
Bootstrap
Kendo UI
Top Coat
Ionic Framework
Lungo
Appcelerator Titanium

13 Ağustos 2016 Cumartesi

Hybrid Mobil Uygulama Nedir? Nasıl Geliştirilir?

Hybrid uygulamalar; hem native (yerel) kodların hem de web kodlarının (HTML + CSS + JS) bir arada çalıştığı uygulamalardır. Bu tarz uygulamalar, aynı native uygulamalar gibi paketlenir. Bu uygulamalara ait web kodları, üzerinde yer aldığı platformun tarayıcısı içerisinde çalışır.


Genel olarak bir framework üzerinde çalışan hybrid uygulamaları geliştirmek için HTML, CSS ve Javascript kullanılır.

Hybrid uygulamalar geliştirirken kullanılan frameworkler, HTML kodlarının donanıma erişmesi yönündeki engelleri kaldırır. Bu işi, kendi bünyesinde barındırdığı native (yerel) kodlar sayesinde yapar. Bu yerel kodların tetiklenebilmesi için Framework tarafından Javascript API'leri sunulur.

Hybrid uygulama geliştirmek için kullanılabilecek frameworkler;

Bunların dışında da çeşitli ürün ve araçlar var. Fırsat buldukça buradaki listeyi genişleteceğim. Sizler de yorum alanına benzer ürünleri yazarbilirsiniz.

Mobil Platformlarda Native (Yerel) Uygulama mı? Mobil Web Uygulaması mı?

Native uygulama mı? Web uygulaması mı? Aslında bu sorunun kesin ve net bir cevabı yok. Geliştirmeyi planladığımız uygulamanın tipine ve ihtiyaçlarımıza göre, bu soruya verilecek cevap da değişecektir.

Geliştireceğimiz uygulama bir veri uygulaması ise, kullanıcıya veri sunmak dışında sınırlı seviyede kullanıcı etkileşimi gerektiriyorsa, donanıma erişme ihtiyacı yoksa ya da HTML5'in erişebileceği donanımlar işimizi görmeye yetiyorsa, bu durumda mobil web uygulaması geliştirmek işimizi görecektir. Hatta iyi bir tercih olacaktır. Çünkü; HTML5 kullanarak tek bir uygulama geliştireceğiz ve bunu birçok işletim sistemi üzerinde çalıştırabileceğiz.


Yoğun işlemci gücü gerektiren işlemler yapmamız gerekiyorsa ya da platforma özgü kaynaklar kullanmamız gereken bir durum söz konusu ise native (yerel) uygulama geliştirmek daha cazip hale gelebilir. Bu tarz bir durumda mobil web uygulaması geliştirmemiz zaten mümkün olmayacaktır. HTML uygulamaları ile platforma özel bazı kaynaklara erişilemiyor. Erişebildiğimiz özellikleri de aynı performansta kullanamayabiliyoruz.


İki yaklaşımın da artılarını ve eksilerini değerlendirebilmek adına birer liste oluşturalım.

Mobil Web Uygulamaları

  • Tek bir uygulama geliştirip tüm platformlarda çalıştırabiliriz. (iOS, Android, Windows)
  • Uygulamanın bakımı ve hata ayıklama daha kolaydır. Çünkü; tüm platformları hedefleyen tek bir kodumuz vardır.
  • Uygulamanın güncellenmesi çok kolaydır.
  • Arama motorlarından maksimum verim alırız.
  • Uygulamamız tarayıcıda çalıştığı için native uygulamalara nispeten daha yavaştır.
  • HTML5 standartları ile ilgili tarayıcılar arasında uyumsuzluklar olabilir. Uyumluluk ile ilgili raporlar http://mobilehtml5.org/ adresinden kontrol edilebilir.
  • Yalnızca, hem HTML5 hem de üzerinde çalışılan tarayıcının aynı anda desteklediği donanımlara ulaşılabilir.
  • Platformlar arasındaki bazı farklılıklar yüzünden uyuşmazlıklar ve tutarsızlıklar oluşabilir.
  • Görsel tarafta yapılabilecek grafik işlemleri sınırlıdır ve performans pek yüksek değildir.


Native (Yerel) Uygulamalar

  • Her platform için, ayrı ayrı uygulamalar geliştirmek gerekir.
  • Bakım ve hata ayıklama süreci zorlayıcıdır. Çünkü; aynı değişikliği tüm platformlarda ve dillerde ayrı ayrı gerçekleştirmek gerekir.
  • Uygulama mağazası üzerinden güncelleme süreçlerini yönetmek gerekir.
  • Arama motorları uygulamanın mağaza sayfasını indexler fakat SEO tarafında içeriklerden faydalanmak mümkün değildir.
  • Direkt olarak sistem üzerinde çalıştığı için tarayıcı uygulamalarına göre hızlıdır.
  • Her platformun kendi dili ve her sistemin kendi API'leri (Uygulama Programlama Arayüzü) kullanıldığı için tutarsızlıklar yaşanmaz.
  • Sistem üzerinde izin verilen tüm donanımlara ulaşılabilir.
  • Her platform kendi içerisinde tutarlı şekilde çalışır. Sorun yaşanmaz ya da az yaşanır.
  • Görsel işlemler ve grafik çizimleri için her platformda çok sayıda yardımcı kütüphane vardır ve yüksek performanslı bir şekilde kullanılırlar.


Tüm bu bilgilerin ışığında, geliştirilecek uygulamada performans çok kritik ise, kullanılması gereken donanımlara HTML5 ile erişemiyorsak, grafik yoğun bir uygulama geliştireceksek native uygulama geliştirmek daha mantıklı. Bunun dışındaki durumlarda Mobil Web Uygulamaları geliştirmek; zaman, maliyet ve yukarıdaki listede yer alan diğer sebeplerden dolayı daha makul bir seçim olacaktır.

Aslında en güzeli; hem web hem de native uygulamaların yeteneklerini bir arada kullanmak olurdu. Bir sonraki yazıda konumuz; Hybrid Uygulamalar.


HTML5 ve Mobil Dünya

Mobil platformlar için genellikle native uygulamalar yazılması tercih ediliyor. Bunun sebepleri platform sevdası, daha çok iş yapmış olup daha fazla tatmin olmak, prestij, tek bir proje geliştirip farklı marketlerin hedeflenebileceğini bilmemek veya başka sebepler olabilir. Neyse, biz konumuza dönelim.

HTML5 ile mobil platformları hedefleyen uygulamalar geliştirilebilir. Platforma özel native bir uygulama geliştirerek yapılabilecek bir çok iş artık HTML5 ile de gerçekleştirilebilir durumda.

HTML5 ile geliştirilen bir uygulama her platformda çalışacaktır. Örneğin; Android, iOS ve Windows. Pek tabii ki bunlar sadece birer örnek, HTML5 çalıştırabilecek platformlar bunlarla sınırlı değil. Birçok platformun kolayca hedeflenebilmesi HTML5 ile uygulama geliştirmeyi daha cazip hale getiriyor.

HTML5 ile geliştirilen bir uygulama yalnızca mobil uyumlu bir web sitesi olabileceği gibi, üzerinde yer aldığı platformun web tarayıcısı içerisinde çalışan, marketten indirilebilir bir uygulama da olabilir. Ayrıca uygulama katmanı HTML5 üzerine inşa edilmiş olan işletim sistemleri için de HTML5 uygulamaları geliştirilebilir. Örneğin; Tizen, Firefox OS, Ubuntu Touch.


Peki mobil için web uygulaması mı geliştirelim yoksa her platform için yerel (native) bir uygulama geliştirmeyi mi tercih edelim? Bu konuyu bir sonraki yazıda ele alacağım. (Aldım. http://ercanbozkurt.blogspot.com.tr/2016/08/mobil-platformlarda-native-uygulama-mi-web-uygulamasi-mi.html bağlantısını kullanarak yazıya ulaşabilirsiniz.

Peki ya seçmek zorunda değilsek? Hybrid Uygulamalar, bu noktada yolumuza ışık tutacak. Hybrid uygulamalar konusunda da bir yazı ele almayı düşünüyorum. (Bunu da aldım. http://ercanbozkurt.blogspot.com.tr/2016/08/hybrid-mobil-uygulama-nedir-nasl.html bağlantısından okuyabilirsiniz.)

Madem sıradaki yazılar için hedefleri yazıyoruz. Planın geri kalanından da bahsedelim. Mobil Web uygulamaları geliştirirken kullanabileceğimiz çeşitli kütüphaneler ve frameworkler var. Bunlar, uygulama geliştirme süreçlerini hem kısaltıyor, hem de kolaylaştırıyor. Bu konuda minik bir liste hazırlayacağım.

Hazırlamayı düşündüğüm diğer bir liste de HTML5 tabanlı işletim sistemleri listesi.

Son adımda da mobil uygulama geliştirmenin geleceği hakkında bir şeyler karalayacağım.

12 Ağustos 2016 Cuma

Java Dilinde Temel Veri Tiplerinin Alt ve Üst Sınırları

Java dilinde temel veri tiplerinin alt ve üst sınırlarını kod yoluyla kolayca öğrenebiliriz.

CSS3: Oval Köşeler (Border Radius)

CSS3: Oval Köşeler (Border Radius)

border-radius özelliğini kullanarak nesnelerin köşelerini oval hale getirebiliriz.

Örnek Kullanım:
border-radius: [Ovallik için kullanılacak değer];

PasteBin.com Alternatifleri

GitHub Gist: https://gist.github.com/

Ace: https://ace.c9.io Varlığını Şaban Ulutaş'tan öğrendiğim faydalı eser.

Pastie.org: http://pastie.org/
Debian Pastezone: http://paste.debian.net/
pastebin.ca: http://www.pastebin.ca/

ZeroBin: https://pastebin.aquilenet.fr/
Another Zero Bin: http://pastis.tristramg.eu/
Yet Another Zero Bin: http://paste.vinilox.eu/
CRYPTYCH: https://crypty.ch/
Chopapp
CodePad: http://codepad.org/
dpaste: https://dpaste.de/
hastebin: http://hastebin.com/
ideone: http://ideone.com/

9 Ağustos 2016 Salı

Java Dilinde String Karşılaştırma

Java dilinde iki değişken üzerinde eşitlik denetlemek için karşılaştırma yapılırken, String veri tipinde çoğunlukla yanılgı yaşanmaktadır.

Java dilinde, String tipinden iki ayrı değişkeni == operatörü ile karşılaştırdığımızda, değerler aynı olmasına rağmen, sonucun false olması durumu sık yaşanan bir durumdur. (Özellikle de daha önce farklı bir dilde kod yazmış olup, sonradan Java diline geçiş yapan kişiler bu noktada yanılabilmekteler.)

Kafada Deli Sorular
== ile karşılaştırma yapmak kötü bir yöntem mi? Ne zaman == ile karşılaştırma yapılmalı? Ne zaman yapmamalıyız? .equals() metodunu kullanmak daha mı güvenli? Aralarındaki fark nedir?

== operatörünün bazen doğru çalıştığına şahit olabiliriz. Çünkü; Java platformunda bir String pool kullanılıyor ve mümkün olan durumlarda sık kullanılan Stringlerin hafıza referanslarının tekrar kullanılması sağlanıyor. Fakat; == operatörü, değerleri değil de nesnelerin aynı nesne olup olmadığını karşılaştırdığı için aynı değere sahip iki ayrı string false sonuç üretebilir. Bu yüzden == operatörü yerine .equals() metodunun kullanımı daha uygun olacaktır.

Kısacası amacımız nesnelere ait referansları karşılaştırmak ise == kullanabiliriz. Fakat çoğu zaman amaç değerleri karşılaştırmak olduğu için ihtiyacımızı .equals() metodunu kullanarak çözelim.

== Kullanımı

.equals() Kullanımı

Java Runtime Environment must be available in order to run Eclipse (Hata Çözümü)

Eclipse'i ilk kez çalıştırmak istediğinizde aşağıdaki gibi bir hata alabilirsiniz.

A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No Java virtual machine was found after searching the following locations:
C:\Program Files\Java\jre1.8.0_xx\bin

Eclipse çalıştırılacak olan bilgisayarda JRE ya da JDK yüklü olmalıdır. Aranan klasörde bulunamadılar gibi bir hata verilmiş.


Geliştirme yapacaksak tercihen JRE yerine JDK kurmak daha uygun olur.

Bu hata JRE hiç kurulmamış olduğu için ya da Eclipse normal çalışırken kurulan bir JRE güncel sürümünün uyumsuzluğu yüzünden de alınmış olabilir.

Normal zamanda çalışan Eclipse çalışmaz hale geldi ise ve biz JAVA_HOME tanımlamasının doğru olduğuna emin isek, JRE ya da JDK yı yeniden kurmak çözüm olacaktır.

Bu da çözüm olmaz ise; son çare Eclipse yeniden kurulur. (Böyle bir şeye gerek olmaz inşallah)

8 Ağustos 2016 Pazartesi

Yavru Kanguru Çocuklarımıza Kodlama Öğretiyor

Çocuğunuz bilgisayar başında geçirdiği zamanı daha verimli hale getirsin, küçük yaşta kodlama becerisini edinsin istiyorsanız, bizimle iletişime geçin!
Birebir ders formatındaki eğitimimiz ile çocuklarımız kodlamayı öğrenerek birçok alanda öne çıkacaklar.
Çocuklarınıza bir gelecek verin ve kod yazmayı öğrenmelerini sağlayın!
Farklı eğitim içerikleri ile birçok konu hakkında bilgi sahibi olabilir, çocuğunuzun farklı yönlerini geliştirebilirsiniz.

Üstelik herhangi bir modüle kayıt yaptırdığınızda Modül 1 - Blockly Games eğitimi ücretsiz!
Hemen arayarak kayıt olun!
İletişim: 0533 332 38 16
Mail: bilgi@yavrukanguru.com

27 Temmuz 2016 Çarşamba

Atanamayan Türkçe Öğretmeni :)

Öğrenci okulu sevmez,

öğretmen işini sevmeden yaptığında,
yaptığı (yapmaya çalıştığı) işi bilmediğinde,
öğrenmeye kapalı olduğunda.


Bu caps komedi olsun diye yapılmış olabilir ama canlılarını gerçek hayatta gördüğüm için paylaşmakta sakınca görmüyorum.

25 Temmuz 2016 Pazartesi

Kursa Giderek Yazılım Öğrenilir mi?

Biraz bir şeyler karaladım. Fırsat buldukça buna devam edeceğim.



A: Kursa Giderek Yazılım Öğrenilir mi?
E: Öğrenilmez.

A: Ama her şeyi öğreteceğiz diyorlar.
E: Her şeyden kasıtları ne?

A: Lazım olan her şeydir sanırım?
E: Boşver sen onların ne dediğini. Kaç saat bu kurs?

A: 240 saat diyorlar.
E: 240 derstir o. 40 dakikadan hesaplayınca da 160 saate falan gelir. Olmaz o iş.

A: 8 ay sürecekmiş ama, bu kursa gidersem öğrenemez miyim?
E: Kursa giderek yazılım öğrenilmez. Ama 8 ayda dünyalar öğrenilebilir. Bu işi meslek edinecek seviyede bilgi seviyesine ulaşılabilir.

A: Anlamadım. Hem öğrenilmez diyorsun, hem de meslek edinebilirsin diyorsun.
E: Sadece kursa gidip gelerek bir şey olmaz. Sonuçta sınıfta 160 hadi bilemedin 200 saat geçireceksin. 10 dünya gününden az bir zamana denk geliyor bu. Kursa gidip gelip sadece ders dinleyerek olmaz.

A: Peki nasıl olacak?
E: 8 ay boyunca kurs dışında günde en az 2-3 saat kendini geliştirirsen, uzun zamandır piyasada yazılımcı olarak çalışan adamlardan daha fazla şey öğrenebilirsin.

A: Şimdi, kursa gideyim mi? gitmiyim mi?
E: Başlangıç olarak gidilebilir ama beklentin yüksek olmasın?

A: Hangi kursa gideyim?
E: Bana mail at ya da sosyal medyadan ulaş nelere dikkat etmen gerektiği konusunda konuşalım.

Visual Studio 15 Nedir? Visual Studio 2015 Nedir?



Visual Studio 2015
Kod Adı: Dev14
Version: 14.0
Şu an aktif kullandığımız üründür. 2015 yılını isminde barındırır ve version numarası 14'tür.

Visual Studio 15
Halen geliştirilmekte olan bir sonraki Visual Studio sürümünün kod adıdır.
Preview 3 sürümü ile ilgili bilgileri aşağıdaki linkten takip edebilirsiniz.
https://www.visualstudio.com/en-us/news/releasenotes/vs15-relnotes

Visual Studio 15 Preview 3 indirmek ve denemek için aşağıdaki yazıda gerekli linki bulabilirsiniz.
http://ercanbozkurt.blogspot.com.tr/2016/07/visual-studio-enterprise-15-preview-3-indir.html

Visual Studio Enterprise "15" Preview 3 - Download


Visual Studio Enterprise "15" Preview 3 - Download
Bu sürüm için henüz destek yoktur.
Test amaçlı kullanınız.
Üretim için kullanılması tavsiye edilmez.

Ağağıdaki linkten indirebilirsiniz.
https://go.microsoft.com/fwlink/?LinkId=746567

Daha detaylı bilgi buradan alınabilir.

22 Temmuz 2016 Cuma

HTML5 Uygulamalarında Internet Bağlantı Durumunu Denetlemek

HTML5 uygulamalarında internet durumunu denetlemek bazı durumlarda önemli bir ihtiyaç haline gelebiliyor. Internet'e bağlı iken bağlantının bir anda kopması durumunda hata alabiliriz. Bağlantı kopması halinde istenmeyen durumlarla karşılaşmamak için bir javascript kütüphanesi ile denetim yapabiliriz.

http://krawczyk.io/heyoffline.js/

Yukarıda linki bulunan Heyoffline.js Javascript kütüphanesi ile HTML5 uygulamalarında internet bağlantı durumunu kolayca denetleyebiliriz.

.js dosyasını kod sayfamıza ekledikten sonra aşağıdaki kod bloğu iş görecektir.

new Heyoffline({
monitorFields: true,
elements: ['.monitoredFields']
});