Geleceğin Kodları

Aylık kültür sanat ve edebiyat dergisi DELİKLİÇINAR‘da bu ay yayınlanan yazım:

Bir düşünün;

Dünyanın en muhteşem teleskopu sizin olsa ve onu evinizin çatısına yerleştirseniz, her gece gökyüzünü, yıldızları, samanyolunu doya doya izleseniz, siz bir astronot olur musunuz ? Uzay bilimcisi ya da astronot olmak uzayı izlemekten, seyretmekten başka birşeydir, uzayı anlamakla, çözmekle, bilmekle uğraşmayı gerektirir.

Çocuklarımızın da tabletler, telefonlar, oyun konsolları ile zaman geçirmesi onları bir bilgisayar bilimcisi, bir bilgisayar programcısı yapmayacak. Bilgisayar bilimlerine hakim olmalarının yolu bilgisayarları anlamaktan ve bilgisayar programlamayı öğrenmekten geçiyor.

Yaşadığımız çağdaki teknolojik gelişmeler iş hayatımızda sürekli yenilenmemizi zorunlu kılıyor. Varolan bilgi ve becerilerimizi yenilemeden ilerlediğimizde gelecekteki sürekli iş güvencemizi yitiriyoruz. Çünkü bilişim devrimi sadece yeni mesleklerin doğmasına neden olmakla kalmayıp var olan meslekler içinde değişimler yaratıyor ve hatta pek çok mesleğin yok olmasına neden oluyor. Bu devrime ayak uyduracak ve 21. yüzyılın vazgeçilmez becerileri olan; yaratıcı, sistematik ve kolektif çalışma becerilerini kazanacak bireylerin yetiştirilmesine ne kadar erken yaşta başlar isek o kadar başarılı olacağız. Bugün bu teknolojilere yön veren pek çok şirketin kurucularının hayat hikâyelerini bakarsak, çoğunun kodlama geçmişinin çocukluk yıllarına dayandığını görürüz. Elon Musk, Mark Zuckerberg, Bill Gates bunların en bilinenleri.

Dünyaca ünlü teknoloji dehası Steve Jobs kodlama eğitimi ile ilgili olarak “Bilgisayar programlamayı herkes öğrenmeli. Çünkü bu, size düşünmeyi öğretir” diyor.  Kodlama basit bir anlatım ile bilgisayarların dilinden anlamak ve onlara yapacakları işi söyleyecekleri dili bilmek. Kodlama bilen çocuklar sahip oldukları elektronik cihazları tüketmenin ötesinde, onlarla üretmeyi öğreniyor ve  onlara hükmetme becerisi kazanıyor.

Çoğu insan bilgisayar programlamanın zor ve uzmanlık gerektiren bir iş olduğunu düşünür. Geleneksel programlama dilleri için bunlar doğrudur ve bu dilleri öğrenmek zordur, ancak günümüzde bilgisayarların daha çok güçlenmesinden faydalanarak, bilgisayar programla becerisini ve bilgisini çok geniş kitlelere, özellikle de çocuklara ulaştırmak için üretilen yeni kodlama dilleri bu işi çok kolay hale getiriyor. Bu proglama dilleri ile kodlama yapan çocuklar teknolojiyi çok daha akıcı bir şekilde kullanmayı ve teknoloji ile yaratmayı öğreniyor.

Kodlama eğitimi çocukların mantıksal düşünme, hata bulma ve giderme becerilerini geliştirdiği gibi çocukların kendi projeleri üzerinde kararlılıkla çalışma disiplinini sağlıyor. Kodlama öğrenenler resim, ses, müzik gibi çeşitli medya araçlarını bir araya getirebiliyor, kendi animasyonlarını, bilgisayar oyunlarını tasarlayabiliyor ya da interaktif hikâyeler anlatabiliyor. Öğrendikleri basit ama güçlü araçlar ile yaratıcı yönlerini daha iyi sergileyebilecekleri bir ortam buluyor. Bir problemi çözmek için; bilgileri ayrıştırma ve sorunu oluşturan öğeleri göz önüne alarak, sonuca varmayı öğreniyor. Bu yolda sistematik düşünme tarzı yürütme yeteneklerini geliştiriyor.

Program, oyun ya da animasyonlar daha önceden başkaları tarafından yapılmış ve bir paket olarak çocukların önüne gelmişse, çocuklar bunu sadece tüketiyor. Çocuklar için geliştirilen kodlama dilleri  çocukların kendi çoklu medya tasarımlarını yapmalarını, karşılaştıkları gerçek hayat problemleri karşısında teknolojiyi kullanarak yaratıcı çözümler ortaya koymalarını ve kendilerini değişik şekillerde ifade ederek 21. yüzyıl becerilerini kazanmalarını sağlıyor. Bir fikirden yola çıkan çocuk bir taslak yaratıyor ve karşılaştığı problemleri çözerek bu taslağı bir proje haline getiriyor.

Çocuklarımıza bilgisayar bilimlerini sevdirmek, yaratıcılıklarını üst düzeye çıkarmak, teknolojide tüketici olma rollerini üretici olmaya dönüştürmek, tasarlama becerileri kazandırmak, kendilerini ifade edebilecekleri yeni bir dünyaya adım attırmak, analitik düşünme yeteneği kazandırmak ve matematiksel düşünme becerilerini zenginleştirmek için bir an evvel kodlama eğitimi ile tanıştırmalıyız.

Sonsuza kadar; hayal eden, programlayan ve paylaşan çocuklar geleceğimizin kodları.

Hayati GÜNEY

 

MSSQL sunucu üzerinden mail gönderme

Sql sunucunuzun enterprice yada standart olması gerekmektedir ayrıca agent servicesinin açık olması gerekmektedir.

Managemant studio uzerinden Database Email bölümünde çalışan bir profil ve SMTP hesabı oluşturduğunuza emin olunuz.

Bu işlemleri tamamladıysanız aşağıdaki örneği kullanarak mail gönderimi sağlayabilirsiniz. Bu örneği isterseniz bir trigger içine, isterseniz bir maintanance plan içinde ve bunun gibi pek çok yerde kullanabilirsiniz.


DECLARE @mailBody as nvarchar(max), @mailSubject as nvarchar(max)
DECLARE @mailRecipients as nvarchar(max), @mailProfile as nvarchar(max)
----------
SET @mailProfile = N'DenemeProfili'
SET @mailRecipients = N'bilgi@test.com;deneme@test.com'
SET @mailSubject = N'Bu bir deneme mesajıdır'
SET @mailBody = 'Bu posta SQL serverdan gönderilmiştir.'
----------
EXEC msdb.dbo.sp_send_dbmail
@profile_name = @mailProfile,
@recipients = @mailRecipients,
@body = @mailBody,
@body_format = 'HTML',
@subject = @mailSubject

IIS Express’e uzak bilgisayardan erişmek

Visual studio ile web uygulaması geliştirdiğimizde yaptığımız çalışmaları IIS express üzerinde derleyebiliyor ve debug edebiliyoruz. IIS Express altında çalıştırılan sayfalara başka bir bilgisayardan erişebilmek için şu işlemleri yapmak yeterli:

  1. Kullanacağınız IP adresi için bir Binding oluşturmalısınız.

            <site name="ExampleApp" id="1">
                <application path="/" applicationpool="ExampleAppAppPool">
                    <virtualdirectory path="/" physicalpath="C:\ProjectTeam\ExampleApp" />
                </application>
                <bindings>
                    <binding protocol="http" bindinginformation="*:26469:localhost" />
                </bindings>
            </site>
            
    • %userprofile%\documents\\IISExpress\config\applicationhost.config” dosyasını içinde sitenizin ayarlarının olduğu bölümü bulun
    • 6. satırda işaretlemiş olduğum satırı çoğaltarak, kendi ip adresinize uygun olacak şekilde düzenleyin. Örnekte benim bilgisayarımın ip adresi 192.168.1.101 ve portum yine 26469 olarak veriyorum.
            <site name="ExampleApp" id="1">
                <application path="/" applicationpool="ExampleAppAppPool">
                    <virtualdirectory path="/" physicalpath="C:\ProjectTeam\ExampleApp" />
                </application>
                <bindings>
                    <binding protocol="http" bindinginformation="*:26469:localhost" />
                    <binding protocol="http" bindinginformation="*:26469:192.168.1.101" />
                </bindings>
            </site>
            
  2. Uygulamalarınıza gelen bağlantılara izin vermelisiniz.
    • Komut İstemini yönetici modda çalıştırın.
    • Aşağıdaki komutu sizin konfigurasyonunuza uygun olacak şekilde düzenleyip çalıştırın

      netsh http add urlacl url=http://192.168.1.101:26469/ user=everyone

MS Sql Tarih ve Saat Biçimleri

Tarih veya saat veri türüne ait bir veriyi aşağıdaki sorgu örneğinde gösterildiği gibi farklı formatlarda gösterebilirsiniz.


select 100,convert(nvarchar(max),getDate(),100),convert(nvarchar(max),getDate(),0) union all
select 101,convert(nvarchar(max),getDate(),101),convert(nvarchar(max),getDate(),1) union all
select 102,convert(nvarchar(max),getDate(),102),convert(nvarchar(max),getDate(),2) union all
select 103,convert(nvarchar(max),getDate(),103),convert(nvarchar(max),getDate(),3) union all
select 104,convert(nvarchar(max),getDate(),104),convert(nvarchar(max),getDate(),4) union all
select 105,convert(nvarchar(max),getDate(),105),convert(nvarchar(max),getDate(),5) union all
select 106,convert(nvarchar(max),getDate(),106),convert(nvarchar(max),getDate(),6) union all
select 107,convert(nvarchar(max),getDate(),107),convert(nvarchar(max),getDate(),7) union all
select 108,convert(nvarchar(max),getDate(),108),convert(nvarchar(max),getDate(),8) union all
select 109,convert(nvarchar(max),getDate(),109),convert(nvarchar(max),getDate(),9) union all
select 110,convert(nvarchar(max),getDate(),110),convert(nvarchar(max),getDate(),10) union all
select 111,convert(nvarchar(max),getDate(),111),convert(nvarchar(max),getDate(),11) union all
select 112,convert(nvarchar(max),getDate(),112),convert(nvarchar(max),getDate(),12) union all
select 113,convert(nvarchar(max),getDate(),113),convert(nvarchar(max),getDate(),13) union all
select 114,convert(nvarchar(max),getDate(),114),convert(nvarchar(max),getDate(),14) union all
select 120,convert(nvarchar(max),getDate(),120),convert(nvarchar(max),getDate(),20) union all
select 121,convert(nvarchar(max),getDate(),121),convert(nvarchar(max),getDate(),21) union all
select 126,convert(nvarchar(max),getDate(),126),null union all
select 127,convert(nvarchar(max),getDate(),127),null union all
select 130,convert(nvarchar(max),getDate(),130),null union all
select 131,convert(nvarchar(max),getDate(),131),null