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)