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

Projeyi incelemek 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.

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.

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.