Issuu on Google+

Fırat Üniversitesi ACM Student Chapter Yazılım ve Teknoloji Dergisi

<script/>

Mart 2014 Sayı 5

ACM Woman

Python SciPy ile Bilimsel Hesaplamalar

Mühendislikte kaç kız var ?

Sistem

Makale

Otomata Kuramı

Üniversitede Girişimci Olmak

Güvenlik İzinsiz Giriş Tespit Sistemleri

Mart

Hacking Beyaz Şapkalılar

Dünya Kadınlar Günü Röportaj IBM Turk Ekosistem Geliştirme Bölüm Müdürü

Jale AKYEL Fırat ACM STUDENT CHAPTER


Günümüzden Geçmişe

2013 - 2014 Dönemi

2012 - 2013 Dönemi

2011 - 2012 Dönemi

I


<Script/> 2014

<script/>

İçindekiler

<script/> Mart 2013

Acm -Woman

2

Mühendislikte Kaç Kız Var ? Acm -Woman Röportaj IBM Turk Ekosistem Gelistirme Bölüm Müdürü Jale AKYEL ile Röportaj

Güvenlik Izinsiz Giris Tespit Sistemleri

5

Donanım Google Glass Sistem Otomata Kuramı Hacking Beyaz Sapkalılar Python

7

SciPy ile Bilimsel Hesaplamalar Web Tasarımı Fırat Üniversitesi Resmi Web Sitesi Makale Üniversitede Girisimci Olmak Programlama Visual Studio 2013 Yenilikleri

Mart 2014 © Tüm hakları saklıdır.

WebSphere WebSphere Application Server – Sistem Yönetimine Genel Bakıs (Bölüm-2 ve Bölüm-3)

1 2 4 5 6 7 8 12 14 15 16 II


Editörden Merhabalar, Öncelikle dergimizin beşinci sayısının bu kadar gecikmesinden dolayı sizlere karşı özürü bir borç bilirim. Sene başında her ay dolu dolu yayınlamayı düşündüğümüz dergimizi ne yazık ki, bir çok neden yüzünden “zar zor” dönemin ikinci kulubun ise 2011 yılından bu yana beşinci dergisi olarak yayınlamış bulunmaktayız. Dergimizin içeriğinden ziyade dergimizin kapağında da vurguladığımız “8 Mart Dünya Emekçi Kadınlar” gününe değinmek istiyorum.8 mart 1857’de New York’lu kadın tekstil işçileri şehrin zengin semtlerine doğru büyük bir yürüyüş düzenler. Daha iyi çalışma koşulları, on saatlik iş gücü ve eşit haklar gibi talepleri olan kadınların yürüyüşü polis tarafından şiddet kullanılarak bastırılır. 8 mart 1908’de yine New York’ta düzenlenen eyleme 40.000 tekstil işçisi kadın katılır. 1857’deki büyük eylemi anan işçiler, aynı taleplere kadınlara oy hakkı ve çocuk emeğine son verilmesi taleplerini de ekler. 1910 yılında ise, Clara Zetkin’in önerisiyle Sosyalist Kadın Enternasyonali, 8 mart’ı ‘Dünya Emekçi Kadınlar’ günü olarak kutlamaya karar verir. 1911 yılında ilk 8 mart gösterileri Avusturya, Danimarka, Almanya ve İsviçre ’de gerçekleştirilir. Türkiye’de ise 8 Mart Dünya Kadınlar Günü ilk kez 1921 yılında “Emekçi Kadınlar Günü” olarak kutlanmaya başlanır. Her ne kadar yılın bir günü kadınlarımıza armağan edilmiş görünse de bizlerin var olmasını sağlayan kadınlarımıza ne yazık ki bırakın değer vermeyi ‘adam gibi!’ davranmayan bir toplum olduğumuz acı bir gerçek. Umarım kadınların egemen olduğu bir topluma sahip olduğumuz günler uzak değildir.. Unutmadan; Kadın demek aile demek, Kadın demek anne demek, Kadın demek gelecek nesiller demektir. Tüm kadınlarımızın #DünyaKadinlarGünüKutluOlsun.

Tolga ÖZER Elektrik Elektronik Müh. / Başkan Yardımcısı

III


Script/Mart 2014/ACM -Woman/Mühendislikte Kaç Kız Var ?

ACM -Woman

Mühendislikte Kaç Kız Var ? Fatmanur Kurtulmuş Jeoloji Müh. / Acm -Woman Kurul Üyesi

İnsanlar mühendislik okuyan biriyle karşılaştığında ilk olarak bu soruyu sorar “Kaç kız var ?” .. Bizde bu sorudan yola çıktık ve toplumun, kadın mühendisler üzerindeki bakış açını değerlendirdik .

Sabiha Gürayman Sabiha (Rıfat) Gürayman, günümüzde bile kadınlar için ne yazık ki uygun olup olmadığı tartışma konusu olan mühendislik mesleğini, ülkemizde ilk yapan kadındır.Türkiye nin ilk kadın inşaat mühendisi, erkek takımında ilk defa oynayan kadın sporcu olmuştur. Anıtkabir ve Tbmm binasının yapımında görev almıştır.

Ülkemizde kadın olmak zorken kadın mühendis olmak elbette çok daha zor . Fakat zor olması , insanların yapamazsın demesi , toplumun üstümüzde yarattığı “cam tavan” bizi mühendis olmaktan vazgeçiremez .Çünkü mühendislik beden değil beyin gücüdür . Mühendislik, problem çözmek insan hayatını kolaylaştıracak çözümler bulmak ve bunları yaparken matematik fizik gibi bilimleri kullanabilmektir. Beylerimizin bu konuda ki savunması hemen hemen aynı “kadınlar narindir “ . Bunu biliyor olmaları sevindirici fakat bunu sadece teoride bilmeleri bizim için yeterli olmuyor .. Ataerkil bir toplum oluşumuz kız çocuklarının meslek yöneliminde etkili oluyor .Bu nedenle mühendislikte kız sayısının az olması olağan bir durum halini almış .Mühendislikte Kız-Erkek istatistiklerinde elde ettiğim bilgiyi sizlerle paylaşıyorum. İTÜ Maden Fakültesi , Jeoloji Mühendisliği Bölümünden Nilgün Okay , 2007 yılında Cumhuriyet Gazatesi Bilim Teknik ekinde yayınlanan çalışmasında bu konuya değinmiş . Türkiye’de çalışan kadın akademisyenlerin oranı , fen bilimlerinde %36, yer bilimlerinde %25 ve mühendislikte ise %29 . ABD’de ise mühendislikte kadın akademisyenlerin oranı % 11 . Türkiye’de üniversite dışında , meslekte çalışan kadın mühendislerin oranı 1975 yılında %7 iken 1995 yılında %12 olmuş . Şimdilerde daha da yüksek olduğunu varsayabiliriz .. Kadınların mühendisliği seçmesi sadece kadın nüfusunun az-çok temsil edilmesi açısından değil aynı zamanda kadınların mühendisliğe yeni bir bakış açısı getirebilmesi açısındanda önemlidir . Ve Türk Kadını pek çok alanda yapılamaz deneni yaptığı gibi mühendislikte de duruşunu gösterecektir . Bizden birkaç nesil sonrasında mühendislik, erkek mesleği görülmekten çıkıp kadın elinin dokunduğu harika projelerin gerçekleştirildiği bir meslek olacaktır . Ve yazımı çok beğendiğim bir cümleyle bitiyorum “ Büyük anneleri mühendislik yapmış olan bir kuşağın ufku bambaşka olacaktır “.

Ada Augusta Byron Ada Augusta Byron (Lady of Lovelace) 19. yüzyılın başlarında, kadınların bilimsel tartışmalara katılmalarına izin verilmediği ve akademik yayın yapmalarının uygunsuz görüldüğü bir dönemde, kadın olduğunun belli olmaması amacı ile isminin baş harfleri olan "A.A.B."yi kullanarak, bilgisayar sistemleri üzerine bilimsel bir dergide ilk akademik yayını yapan öncü kadındır.

Nefise Akçelik, 16 yaşında Karadeniz Teknik Üniversitesi İnşaat Mühendisliği bölümüne kaydını yaptırdı. Bölümündeki tek kız öğrenci olan Akçelik, 20 yaşında çok iyi derecede İngilizce ve Fransızca öğrenmiş olarak okulunu tamamladı. fise Akçelik, 1978 yılında evlendi. Aynı yıl Karayolları Genel Müdürlüğü’nün sınavını kazanıp tünel şefi olarak göreve başladı. Zemin mekaniğine aşık olan Nefise Akçelik, o günden sonra başında baretiyle bütün yurdu gezerek tünelle-rin zemin etüdlerini hazırladı. Emek verdiği her tüneli sevdi. Ama iki işe büyük önem verdi: Bolu Tüneli ve Karadeniz Otoyolu’nda bugün kendi adının verildiği Türkiye’nin en uzun tüneli.

Nefise Akçelik Fırat ACM / Script / Mart 2014

1


ACM -Woman

IBM Türk Ekosistem İlişkileri Müdürü

Jale AKYEL

Röportajı

Sizi kısaca tanıyabilir miyiz ? Gizem ERDOĞDU Mekatronik Müh./ ACM -Woman Başkanı

Jale Akyel, IBM Turk Ekosistem Geliştirme Bölüm Müdürüyüm. IBM’e IBM teknolojilerini tanıtma, bu konuda beceri geliştirme, yazılımevleri ilişkileri , yeni nesil teknoloji girişimci ilişkileri, Universite ilişkileri ve İnovasyon merkezi nden sorunluyum. 26 yıldır IBM Turk de çalışıyorum. Teknikten satışa bir çok görev yaptım. ODTÜ Petrol Mühendisliğinden Yüksek Lisansım var. Neden bilişim sektörünü tercih ettiniz ? Bilişim sektörü sürekli yenilenen, dinamik ve sürekli öğrenme ortamı olduğu için ve biraz da mezun olduğum yıllarda Petrol Mühendisleri işsiz olduğu için :) bilişim sektörüne yöneldim. Kadın olmanın, mühendislikte avantaj ve dezavantajları sizce neler ? Kadın mühendisler ekip çalışması, düzenli ve titiz çalışma konularında daha iyiler. Ancak bbireysel başarıların takdir edilmesini beklerler, erkekler ise isterler. Kendilerini çok iyi görünür hale getirirler. Aslında kadınlar birden fazla konuyu bir anda düşünebildikleri ve daha etraflı , büyük resme odaklandıkları için farklı bakış açısı getirirler. Erkekler ise bir anda tek bir konuya odaklanabilirler. Tabi karar süreci birden fazla konu birarada düşünüldüü için kadının aleyhine de işleyebilir, ama ölçülü risk alırlar. O nedenle her iki cinse de ihtiyaç vardır. Özel hayatınıza yeterince zaman ayırabiliyor musunuz? Aslında bu kişiye gore değişir. Öncelikleriniz belirler. İşkolik iseniz size ne kadar zaman verilse de özel hayatınıza zaman ayıramazsınız. Ben çok çalıştım , özel hayatımdan da çok fedakarlık ettim, ancak şimdi aslında…. Keşke diyorum.. Ama şu da bir gerçeki aslında arada en büyük sıkıntıyı yaşayan ben oldum, eve ve işe yansıtmamaya çalışıp çok yoruldum diye düşünüyorum. Ama belli bir sonuca ulaşmanın da bir bedeli var ..

2

Fırat ACM / Script / Mart 2014

Bir kadın için; çalışma şartları açısından özel sektör mü yoksa kamu söktörü mü? Bu çok kişisel bir şey, bugun olsa yine bu tarz çalışmayı seçerdim, yoğun, hareketli .. Sizin kendiniz için ne istediğiniz, öncelikleriniz, karakteriniz burada çok önemli. Ben zorunlu özel sektöre geçtim, Kamu sektörü bize iş vermedi :) Kamu’da daha belli saatlerde çalışmak gibi bir kavram var, (memur olmak) tamamen kişilerin kendilerini nasıl gördüğü ile ilgili. Ben hep kendimle yarıştım, yarışıyorum, daha iyisini yapabilirsin diye. Kamu’da da olsam değişmezdi diye düşünüyorum. Bilişim sektöründe yönetici konumunda çalışan bir kadın olarak, kadınlarla ilgili (hem çalışma hayatı açısından hem bilgisayar bilimlerini anlamaları açısından) bir durum değerlendirmesi yapar mısınız ? Neden kadınlar hem çalışma hayatı genelinde hem yönetim kademeleri açısından geri plandalar? Maalesef biraz Ata erkil bir toplumuz, ve erkek egemenliği üzerine kurulmuş. Ancak Bilişim Teknolojilerinde bu hiç de öyle değil, çok sayıda kadın çalışan, kadın yönetici var. O nedenle geri diyemeyeceğim. Evet, teknik rollerde daha az sayıda var ancak bu sanırım bizdeki o tek noktaya odaklanamama konusundan kaynaklanıyor, bize tek derinlemesine uzmanlık yetmiyor, daha geniş bir yelpazede aşırı derine inmeden bilgileri bir araya getirerek çalışmak istiyoruz. Sanırım bundan. Genel anlamda kadının toplumumuzda geri kalmasının tek nedeni EĞİTİM.. özellikle de annelerin eğitimi.. Anneler bir toplumda herşeyi değiştirebilirler. O nedenle öncelikel annelerin bilinçlendirilmesigerekir. Bilişim sektöründe yönetici bir kadın olarak kendi yaşamınızdan tüyolar verir misiniz, ne gibi bedeller ödediniz nasıl yetisebildiniz üstelik bir de anne olarak ? Aslında herşeye yetişebildim mi derseniz hayır.. Her zaman o yetişememe duygusunu yaşıyorsunuz. Yetersizlik duygusu oluyor. Eve, işe, çocuğuna, eşine.. Ama buldugun her fırsatı iyi değerlendirip kaliteli zaman ayırmakla bunu bir nebze kapatabiliyorsunuz.


Script/Mart 2014/ACM -W/Röportaj

Eve, işe, çocuğuna, eşine.. Ama buldugun her fırsatı iyi değerlendirip kaliteli zaman ayırmakla bunu bir nebze kapatabiliyorsunuz. Şimdiki aklım olsa ben de 6 ay ücretsiz izin alır, oğlumun diş çıkarmasını, emeklemesini büyümesini doya doya izlerdim..Belki hayatımı daha iyi kurgulardım, ama içinde yaşarken o kadar hızlı gelişiyor ki olaylar, doğru budur deme şansınız olmuyor, sizin de olmayacak büyük ihitmalle ama kendinize koyduğunzu hedefte dengeli yürümek önemli. İnsanın kendisine olan saygısını da yitirmemesi gerekir. Bir şekilde dengeler kuruluyor , merak etmeyin. IBM den kısaca bahsedebilir misiniz ? IBM 103 yıllık bir firma, bir çok ilkleri bulan bir firma. Türkiyede de 75 yıldır faaliyet gösteriyor. Kendisini çok iyi dönüştüren ve 103 yıldır ayakta kalan tek bilişim firması. Müşterinin başarısı, inovasyon, ve tüm ilişkilerde karşılıklı güven yaratmak her zaman en önemli değerleri olmuştur. Kadın çalışanlarına özel iş ve yaşam dengesi programları yaratan, kreş açan, ve kadınların üst görevlere gelmeleri için özel programlar yürüten bir şirket. Dışardan bir gözlenimle ve bize anlatılanlara göre IBM; katı kuralları değişmeyen gelenekleri olan bir şirket, içerde de durum böyle mi? Bu sizi nasıl etkiledi/etkiliyor? 400.000 çalışanı ve 172 ülkede faaliyet gösteren bir şirket için süreçler olmazsa olmazlardandır . Aslında dışarıdan büyük ve katı dursa da içine girdiğinizde bir aile gibidir.

IBM ‘in tek değişmeyen gelenekleri yukarıda sözünü ettiğim değerleri. Onun dışında herşey gibi IBM de değişiyor. Değişim olmazsa gelişim de olmaz. Büyük kurumsal şirketlere yapılan iş başvurularında mezun olunan üniversite faktörü ne kadar etkilemekte ? Eskiden okulların önemi varmış, ancakşimdi bireyler çok daha önemli. O nedenle kendinizi nasıl donattığınız ve diğerlerinden farklılaştırdığınız çok önemli. Benim için gözünüze baktığımda ben öğrenmeğe açım, yaparım diyen ışık önemli. Son olarak hem kadınlara hem de genel olarak söylemek istediğiniz bir şey var mı? En önemli şey kendinizi tanımanız ve hayattan ne istediğiniz, ne yapmak istediğiniz. Kariyeri ünvan ile eş düşünmek bence doğru değil. İşinizi en iyi şekilde yapıp, bu işi ona sormak lazım , en iyi budur demeleri de sizin çok önemli bir kariyeriniz olduğuna işaret eder. Kısaca herşey kariyer değil, hayattaki amacınızı iyi netleştirmeniz, mutlu ve isteyerek çalışacağınzı bir işiniz olmalı. Bunun dışında yabancı dil şart, sürekli öğrenme ve çevrede olan bitenle ilgilenme, yorumlama ve hatta fiilen ilgili olmak da şart. . Hepinize gönlünüzce ‘kariyer yolculuğu’ başarı ve mutluluk diliyorum. Beni misafir ettiğiniz için de çok teşekkürler.

Fırat ACM / Script / Mart 2014

3


Güvenlik

İzinsiz Giriş Tespit Sistemleri (Intrusion Detection Systems) ısaca IDS diyeceğim ve çokça kullanacağım İzinsiz K Giriş Tespit Sistemleri, güvenlik uzayının önemli par-

çalarındandır. Adı üzerinde sadece tespit amaçlı olan bu araçlar / araç toplulukları IDS adını alırlar. Bilgi Sistemleri ve Güvenliği dersinde proje ödevim olan ve geçtiğimiz yıl Bilgi İşlem Daire Başkanlığı’ında çalıOğuzhan ÇOŞKUN şırken üniversitemizin dış tehditlere karşı güvenliğini sağlamaya yönelik bir çalışmamız olmuştu. Bu olaylaYazılım Mühendisliği / Başkan Yardımcısı ra istinaden Sefa Taftalı arkadaşımla beraber hala IDS üzerine çalışıyoruz ve şu an bir ekip sırrı olarak sakladığımız projeyi bu ay sonunda bitirmeyi planladığımız için önümüzdeki sayıda sadece proje ve işleyişine yer verebilirim. IDS nedir? Genel tanımıyla konunun başında da bahsettiğimiz gibi bir nevi alarm sistemidir. Ağ üzerinden gelebilecek saldırılar hakkında uyarı veren, bilgi veren bir sistemdir. Sisteme yapılmış önceki saldırıları bildirebilen bir sistemdir. Peki bu sistemler nasıl çalışır? IDS denilince piyasada neredeyse tek başına yürüyen bir araç SNORT’dan bahsediyorum tabiki. Saldırı tespiti nasıl yapılır? Bunun için yine piyasada bir çok hazır araç bulunmaktadır. Bir port analizi, paket koklayıcıları, hash çözücüler bir saldırının nasıl gerçekleştiğini, saldırının nereden geldiğini, hangi kötücül yazılımlar kullanıldığının bilgisini verebilir. Sistemimize gelebilecek bir tehditi tanımlayacak olursak tehditin gelme noktası bir port üzerinden sağlanacaktır. Saldırgan öncelikle ip adresimizi ve sistemimize ait bilgileri taradıktan sonra bize daha da yaklaşmayı deneyecektir. İkinci adımda yapacağı işlerden birisi portlarımızı dinleyip açık bir kapı bulmak olacaktır. Bunun önüne tüm portlarımızı filtreleyerek geçebiliriz tabiki. Ancak o zamanda dış dünyadan bağımsız bir sistem oluruz. Bir web sitesine girebilmek için kullandığımız 80 portu her zaman açık olmalıdır ki web sitelerine erişebilelim. Ya da bir ssh bağlantısı yapmamız için 22 portunun açık olması gerekir. Ya da yerelde çalışırken bir mysql veritabanı sunucumuz olsun bu sunucu içinde bir port 3306 nın açık olması gerekir. Kısacası ağda trafikte olduğumuz zaman bazı portlarımız açık olmalıdır. Saldırgan bunu bildiği için bize açık portlarımızdan

4

Fırat ACM / Script / Mart 2014

yaklaşacaktır. Sistem üzerinde kullandığımız uygulamaların açıklıklarını tespit edecektir ve port üzerinden bu açıklıkları kullanarak sisteme sızmak isteyecektir. İşte IDS bu noktada devreye girer. Olağan dışı bir durum söz konusuysa ve IDS aracımız iyi yapılandırılmışsa saldırgan daha sisteme sızmadan bize uyarısı gelecektir. Yaptığı iş kısacası bu. Eğer saldırı vars söyle. Peki ya engellemek? İşte orada devreye IPS yazılımları girer. Intrusion Prevention Systems, saldırı engelleme sistemleri. Açıkça IDS’in haber verip kenara çekildiği işi tamamlamaya yarayan bir sistem. Bu konu daha geniş ve farklı bir konu. Biz IDS üzerinden devam edelim. Başlarda bahsettiğim SNORT uygulaması tam olarak bu işi yapıyor aslında. Ancak SNORT’un altında neler yatıyor buna bakacak olursak; bir port dinleme olayı, bir paket sniff olayı, bir hashdump olayı var. Bir port dinleme aracı olan NGREP’ten söz edebiliriz. NGREP aracı dinlenmesini istediğimiz bir portun numarası vererek o port üzerinden geçen tüm trafiği alabilmemize yarayan bir araçtır. ngrep -d any port 80 komutu HTTP trafiğini görmemiz sağlar. trafiğin çıktısına bakacak olursak:

Çıktımız biraz karışık gibi.. Burada devreye bu karmaşık çıktıları süzen, şifreli verileri çözen araçlar girer.


Script/Mart 2014/Güvenlik/İzinsiz Giriş Tespit Sistemleri

Bu çıktıda kullanıcı bilgilerine kadar veriler var ancak bu verileri süzen araçlarla erişebiliriz.Devreye başka bir araç olan WIRESHARK ı sokabiliriz. Wireshark bize bu karmaşık bilgileri istediğimiz veriler haline getiren bir araçtır. Ya da regex yöntemiyle açık verileri süzebiliriz. Örneğin sadece trafiği sağlayan IP adreslerini çözebiliriz. Bize ne lazım? Önemli olan bu. Wireshark’a dönecek olursak bize grafik arayüzü sunan Wireshark Ngrep ile aldığımız çıktıları bir dosyaya yazarak tarayabileceğimiz bir araçtır. wireshark komutuyla terminalden aracın grafik arayüzüne ulaşabiliriz. Wireshark çok kapsamlı bir araç olup bir çok kabiliyete sahiptir. http://www.wiresharkbook.com/ adresinden wireshark-101 temel e-book una ulaşabilir daha ayrıntılı bilgi edinebilirsiniz.

IDS’i ve çalışma mantığını temel olarak özetlemeye çalıştım. Aslında bir port tarama, paket koklama işlemleri tanıttığım diğer araçlar aracılığıyla da gerçekleşebiliyor. Üzerinde çalıştığım projemde bu araçları sıkça kullanmaya çalıştığım için temel bilgi sahibi oldum. Bu ve bunun gibi araçların bir çoğu özgür yazılımlar olduğu için eğitim ve kullanımlarına da özgürce ulaşabiliriz. Tek yapmamız gereken Google amcaya danışmak. Bir sonraki sayımızda projemin bitmesi dahilinde örneklerle konuya açıklık getirmeye çalışacağım. Unutmadan, tanıtmaya çalıştığım araçlar ve kullanımları genel olarak Özgür sistemlerde çalışan uygulamalardır. Diğer işletim sistemlerinde çalışabilirler ancak örneklerimde kullandığım komutlar tamamen özgür sistemlerde kullanılan komutlardır. Kullanmak, test etmek isteyenler için herhangi bir Linux dağtımını tercih etmeleri ve sonrasında araçların kurulumlarını yapmaları gerekmektedir.

Glass Yazıma

Burak SEÇER Yazılım Mühendisliği / Basın - Yayın Ekibi

yanılgıyı vurgulamayarak giriş yapmak isterim. Google denilince aklımıza pek çoğumuzun arama motoru gelir. Hayatımıza arama motoru olarak giren Google, aslında bir tam bir ARGE merkezi olarak kullanılıyor. Yaptığı sayısız ARGE çalışması bunu kanıtlıyor, en son çıkan teknolojisi ise Google Glass!

Bilim kurgu filmlerinde hayal edilip yazılan bütün teknolojiler bir bir yapılmaya başlandı, otomatik pilotlu araba (Google imzalı), hologramlar ve Google Glass. Giyilebilen teknolojiler o kadar yaygınlaştı ki artık neredeyse ayakkabı bağcıklarımıza bile bir teknoloji sığabilecek duruma geldik, şüphesiz bunun sebebi ihtiyaçtan doğar. Öyle bir gözlük düşünün ki,anı yakalamak için bazen telefonun kamerasını açana kadar anı kaçırırız, Google Glass ile ise sadece bir sesli komut ile fotoğraf ve videomuzu rahatlıkla çekebiliriz, aynı Iphone siri teknolojisi gibi. Herkesin aklına takılan özel hayatlarımız ne olacak sorusu eminim, Google Glass çekim yaparken üzerinde bir ışık etrafı uyarıyor ayrıca sesli komut gerektiği için habersiz bir çekimi engelliyor ve konum bilgimize ulaşım yapamıyor.

Aslında yapılan bu gözlük ilk değil öyle ki zaten askerler ve sporcular için üretiliyor. Google Glass sayesinde herkes gazeteci olacak gibi görünüyor, her an her yerde çekim sayesinde ayaklı gazete olacağız, keyifli geliyor kulağa! Deneme sürümü piyasaya 1500 dolardan sürüldü şöyle bir durum var ki kullanıcıların canını sıkacak, Google Glass satılırken kişiye özel satılıyor yani siz lisanslı bir kullanıcı oluyorsunuz hediye edemiyorsunuz illa etmek istiyorsanız hediye edeceğiniz kişiye özel Google Glass hesabı yani o kişinin bilgileriyle ürün lisanslanmalı, özgür yazılımı savunanlar eminim bu durumdan bir hayli rahatsızdır. Gözlüğün camını ekran olarak kullanmıyor, görüntüyü doğrudan göze yansıtıyor ve ekranın sağ üst kısmında işlemlerimizi yapıyoruz, görüntülü konuşma gibi bunu yapmamız için ise bir android işletim sistemine ait telefona bağlanmamız gerekiyor. Birazda teknik bakalım gözlüğümüze, bakalım ne kadar yeterli bizim hızımıza! Ekran çözümü minimum anroid 4.0.4, çift çekirdek işlemci ve 682 MB Ram kullanılacak, toplam 16 GB flash bellek ve bunun 12 GB kısmı mobil uygulamalar için ayrılmış, 802.11b/g standart wifi ve bluetooth desteği, 25 inç monitöre sahip, insan en çokta pil ömrünü merak ediyor. Tam kapasiteli kullanılan bir gözlük 10 saat dayanabiliyor, çözünürlük 640x360 piksel, yerleşik 5 MP kamera ile 720P çekim yapabiliyor. Genel olarak bize yetecek özellikler bunlar, Google ARGE çalışmalarını bilime meraklı olan herkesin takip etmesi gerektiğini düşünüyorum, ileride bize yön verecek teknolojiler üzerine daha çok bilgimizin olması gerektiğini ve aslında teknolojinin aramızda gezdiğini bir üniversite öğrencisi olarak söylemek istiyorum, son olarak daha fazla bilgi için Google Glass resmi sayfasına göz atmanızı tavsiye ederim, bir başka yazıyla görüşmek üzere. Fırat ACM / Script / Mart 2014

5


Script/Mart 2014/Sistem/Otomata Kuramı

Sistem

Otomata Kuramı Birçok mühendis ve yazılımcı programlama diliHilal TEK Bilgisayar Mühendisliği /Başkan Yardımcısı

nin nasıl geliştirildiğinden ziyade hazır programlama dilini nasıl öğrenebilirim konusuyla ilgilenir. Çoğu programcı yazdıkları kodu derlediklerinde arka plan da gerçekleşen senaryodan habersizdir.Daha doğrusu hazır olan her şeyi seven biz insanoğluna bu konu pek çekici gelmemektedir.Zira bu konular hem çok karmaşık hem de birçok kişi için bu konuları bilmek kod yazma açısından hiçbir artı değer sağlamayabilir.Ancak programla dili geliştirmek isteyenler için bu yazı epeyi yararlı olacaktır. Biçimsel Dil kuramı; sıfırdan bir programlama dili geliştirmek isteyenler için ilk öğrenilmesi gereken konulardan biridir.Bir biçimsel dil, abece denilen belli bir küme üzerinde kurulan dizilerden oluşur. Biçimsel dilleri tanımlamak için ifadeler, gramerler ya da tanımlanan dile ait olan dizileri kabul eden otomatlar kullanılır.Bu nedenle otomata kuramı ile ilişkisi önemlidir. Bir programlama dili belirli bir dile göre yazılır.Dildeki kurallar temel alınarak programlama dili geliştirilir. Her biçimsel dil belirli bir alfabe üzerin de tanımlanır.Alfabe , sonlu sayı da simgelerden oluşan bir kümedir.Kurallarda küçük harfle gösterilen harfler, sayılar ,simgeler birer alfabedir.Alfabedeki simgeleri arka arkaya getirilmesiyle dizgiler (string) oluşturulur.Alfabeye uç karakterde denir.Biçimsel dil, bir alfabedeki simgelerden oluşturulan dizgilerin bir kümesidir.Dilde yer alan kurallar kullanılarak bir uç karaktere ulaşabilirsek dizgi o dil de tanımlı ulaşamazsak o dil de tanımlı değildir.Biçimsel diller,Chomsky Sınıflandırılmasına göre 4 sınıfa ayrılır: TÜR-0: Kısıtlamasız bir dil türüdür.Aşağıdaki örnekte görüldüğü gibi kuralın sağında sınırsız sayı da söz dizim değişkenleri (S,A,B,R,L,C) ;solunda yine istenilen sayıda uç karakterler(a,b) yer alabilir. Örnek: Söz dizim değişkenleri { S,A,B}, alfabe{a,b} S=>aSAB|aAB BA=>AB aA=>ab bA=>bba bB=>bc

6

Fırat ACM / Script / Mart 2014

TÜR-2: Bağlamdan Bağımsız bir dil türüdür.(Context-free)Bu türde kurallar kısıtlamalıdır.Kuralın sol tarafın da sadece söz dizim değişkenleri olabilir.Sağ tarafın da bir sınırlama yoktur. Örnek: Söz dizim değişkenleri { S,A,B}, alfabe{a,b} S=>aB|bA A=>a|aS|bAA B=>b|bS|aBB TÜR-3: Düzenli bir dildir.Kural da gerekli şartlar şunlardır(€: boş karakter) A=>aB A=>a A=>€ Örnek: Söz dizim değişkenleri {S,A,B}, alfabe {0,1} S=>0S|0A|0 A=>0B B=>1S Bu türlerin seçimi yapıldıktan sonra son olarak dil değerlendirme kriterlerine dikkat edilmelidir.Bir biçimsel dilin kuralları belirlenmeden önce okunabilirlik,yazılabilirlik,güvenilirlik ve maliyete dikkat edilmelidir.Bu kriterlerin hepsi birbiriyle ilişkili olduğu için dikkat edilmelidir. Dil tasarımı maceramızı etkileyen faktörler de vardır.Bunlar bilgisayar mimarisi ve programlama tasarım yöntemimizdir.Örneğin son 50 yılda popüler olan programlama dillerinin çoğu Von Neumann mimarisi dikkate alınarak tasarlanmıştır.Aynı şekilde yapısal programlama,veri soyutlama,nesneye dayalı programlama gibi tasarım yöntemleri kullanılarak programlama dilleri geliştirilebilir. Son olarak; çok matrak veya yeni bir şey olmasa da küçük bir programlama dili geliştirmenin bir yazılımcıya çok faydası olacağına inanıyorum.Böylece derleyicilerin nasıl çalıştığını, programlama dillerinin nasıl işlediğini işin mutfağında öğrenmiş olacaksınız.Bu size çok farklı bir deneyim kazandıracaktır.


Script/Mart 2014/Hacking/ Beyaz Şapkalılar

Hacking

Beyaz Şapkalılar Beyaz şapkalılara geçmeden önce hackerin ne olTalha KIRGEL Bilgisayar Mühendisliği / Teknik Etk. Kor.

duğunu açıklayalım. Hacker, Bilgisayar sistemleri üzerinde üst düzey bilgisi olan, yazılım geliştirmede çok yetenekli ve bu yazılımları başarılı bir şekilde kullanabilen kişilerdir. Hacker'ları 3’e ayırabiliriz; Siyah Şapkalılar, Gri şapkalılar, Beyaz şapkalılar… Siyah Şapkalılar: Kötü niyetli hackerlar olarak tanımlayabiliriz. Sistemlerin güvenlik açıklarından yararlanarak bilgi çalan ve sistemleri kullanılmaz hale getirirler. Günümüzde ki hacker terimi siyah şapkalı hackerları kapsamaktadır. Gri Şapkalılar: Siyah şapkalı hackerlar gibi her türlü sistem açığından yararlanırlar. Ancak bu sistem açıkları hakkında ne yapacaklarına karar vermemiş durumdadırlar. Belli bir yerden sonra taraflarını seçerek siyah veya beyaz şapkalı hacker olurlar. Evet, artık asıl konumuz olan beyaz şapkalılara gelebiliriz. Beyaz şapkalı hackerlar da siyah şapkalı hackerlar gibi sistem açıklarını yararlanırlar ancak büyük bir fark vardır. Beyaz şapkalılar sistem açıklarını sistem yöneticisine bildirir ve bu açıkların kapatılmasına yardımcı olur. Beyaz şapkalı hackerlar yeteneklerini, siyah şapkalı hackerlar karşı çözümler bularak kullanırlar.

Peki, beyaz şapkalılar nasıl para kazanıyorlar? Beyaz şapkalılar genellikle devlet kuruluşlarına, istihbarat örgütlerine, şirketlere de çalışarak veya bunlara yardımcı olarak kazanıyorlar. Ülkemizden örnek vermek gerekirse bundan yaklaşık 3 ay önce Bilim, Sanayi ve Teknoloji Bakanı Nihat Ergün’ün devlet tarafından beyaz hackerlar yetiştireceğini açıklamasıydı. Yetiştirilen bu uzmanların Türkiye’nin siber güvenliği için çalışacağını belirtmişti. Dünyaca Ünlü Beyaz Şapkalılar Richard Stallman, Tsutomu Shimomura. Kevin Paulsen, Stephen Wozniak (Steve Jobs ile Apple’ın kurucusu), Tim Berners-Lee (Word Wide Web diğer bir değişle www mucidi) ve Linus Torvalds ( Lunix’un mucidi). Dünyaca ünlü bu kişiler ilk başlarda siyah şapkalılardı. Ancak belli olaylardan daha sonra beyaz şapkalı olmayı tercih etmişlerdir. Bazısının kendi şirketi mevcut, bazısı büyük şirketlere ve istihbarat örgütlerine danışmanlık yapmakta, bazısı ise yazarlık yapmaktadır.

Beyaz şapkalılar genel olarak siyah şapkaYazımın sonuna gelirken şunlalı iken devlet teşviki veya antlaşmaları ile beyaz rı ekleyebilirim. Ülkemiz siber şapkalı olmuş kişilerdir. Bunun yanında en başsavaş konusunda bayağı geri de tan beri beyaz şapkalı olan hackerlar vardır. Bu denebilir. Bunun temel nedenkişiler belli sertifikalar almışlardır. CEH (Cerleri olarak şunları söyleyebilitified Ethical Hacker) önemli bir sertifikadır. rim; Siyah şapkalı hackerleri, Ancak dünya ki en önemli beyaz şapkalı hacker beyaz şapkalı hacker olmayı sertifikası CNSS 4011 (Committee on National sağlayacak teşvik ve desteğin Security Systems)’dır. Amerikan Ulusal Güven- verilmemesi, beyaz şapkalı hacker yetiştirecek uzlik Bakanlığı tarafından geliştirmiştir. Bu serti- manlarımızın yeterli olmaması ve genç nesille siber fikayı almış beyaz şapkalı hackerlar dünyada ki güvenliğin öneminin tam olarak aktarılamamasıdır. istekleri istihbarat örgütlerine katılabilmektedir. Fırat ACM / Script / Mart 2014

7


Python

SciPy ile Bilimsel Hesaplamalar Python sahip olduğu kütüphanelerden ve aldığı Halit ALPTEKİN Konuk Yazar / Karadeniz Teknik Üni.

desteklerden dolayı bilimsel hesaplama ve programlama konusunda da bir hayli yetenekli bir dildir.Bunun en güzel örnekleri Matplotlib, NumPy, SciPy nin başını çektiği paketlerdir. Ben de bugün sizlere her kullanıcısının bilmesi gerektiğini düşündüğüm NumPy ve Matplotlib’e ufak bir giriş yapacağım.Bu sayede en azından elinizdeki verileri görsel bir hale getirip çıktılarını alabileceksiniz.Eminim sizlerde bugüne kadar birçok kez böyle bir şeyi yapma ihtiyacı duymuşunuzdur. Bu araçları kullanabilmek için öncelikle gerekli bağımlılıkları kurmamız gerekiyor.Bu aşamada normalde `pip` aracını kullanırız ancak bu sefer yerine Debian dağıtımlarının paket yöneticisi `apt` yi kullanmanızı önereceğim.Bunun sebebi matplotlib ve NumPy’nin ciddi anlamda büyük paketler olması ve çalışma için gerekli birçok alt bağımlılığın gerekmesi.Eğer pip ile kurmaya çalışırsanız sürekli olarak bir paketin eksiği olduğu veya buna benzer hatalar ile karşılaşmanız çok muhtemel.Bu yüzden aşağıdaki komutlar ile kurulum yapmanız en sancısız çözüm olacaktır. sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose Tabi sadece Debian tabanlı bir dağıtıma sahip olacaksınız diye bir olay yok. Diğer dağıtımlar için de bu linkteki(http://www.scipy.org/install.html) komutlar ile kurulum yapabilirsiniz. Python’un bu bilimsel araçlarını kullanırken IPython kullanmak hem işleri kolaylaştıracaktır hem de etkileşimli bir geliştirme ortamı sağlayacaktır. Gerekli olan paketleri kurduktan sonra IPython ile ufaktan ilk verilerimizi çizdirmeye başlayabiliriz.IPython’u açarken Pylab seçeneği ile açarsanız gerekli paketleri de sizin yerinize import etmiş olacaktır.

8

Fırat ACM / Script / Mart 2014

Çizim işlemi matematikten bildiğimiz gibi x ve y eksenlerinde belirteceğimiz koordinatlara noktalar koyulup bunlar birleştirelecek.Örnek olması için iki tane dizi oluşturalım ve bunları çizdirelim. x = [ 2, 4, 6, 8 ] y = [ 8, 64, 216, 512 ] plot(x, y)

Gördüğünüz gibi belirttiğimiz x, y ikililerini birleştirdik ve çizdik. Benzer şekilde elimizde büyükçe bir veri varsa ve sadece bunları çizdirmek istiyorsak şu şekilde bir yol izleyebiliriz. y = [ 3, 7, 13, 61, 37, 41, 53, 5, 11 ] x = range(len(y)) plot(x, y) Bu sayede y(x) fonksiyonu şeklinde bir yapı kurmuş olduk.Ancak burada fark ettiğiniz gibi aralıklar sadece 1 birim uzunlukta.Biz bu aralıkların tam sayı ve katları olmasını istersek xrange ve range fonksiyonları işimizi görecektir.Ancak 0.1 aralıklarla basmasını istersek bu fonksiyonlar hata verecektir.İşte tam bu noktada NumPy’nin bir fonksiyonu olan `arange` devreye giriyor.Kullanımı aynı range ve xrange gibi olan bu fonksiyon ile ondalıklı aralıklardan oluşan bir dizi oluşturabiliyorsunuz. Mesela `arange(1, 15, 0.1)` kodunun yaptığı iş 1-15 arasında yer alan ve aralarında 0.1 fark bulunan tüm sayıları oluşturan dizi demektir.Yani bu dizi içerisinde 1.0, 1.1, 1.2, ... , 14.8, 14.9, 15.0 bulunmakta.


Script/Mart 2014/Python/ SciPy ile Bilimsel Hesaplamalar

Burada bir konuyada dikkat çekmek istiyorum.Bu fonksiyonun geriye döndürdüğü tip bildiğimiz Python dizisi değildir. Numpy’nin sağladığı `array` ismindeki veri tipidir.Matlab kullanan kişilerin gayet aşina olduğu bu veri tipi Python dizilerinin sağlayamadığı birçok özelliği de içinde bulundurmaktadır.Örneğin matris işlemlerinde inanılmaz kolaylık sağlıyor. Elimizdeki Python dizisi şeklindeki yapıları `array` fonksiyonuna vererek bu tipe dönüştürebiliriz.Ve daha sonra bu veri yapısının bize sağladığı tüm imkanlardan faydalanabiliriz.

NumPy’nin `array` tipine de bi ön giriş yaptıktan sonra şimdi çizdireceğimiz grafikler üzerinde biraz değişiklikler yapalım. y = [ 2, 4, 8, 16, 32, 64 ] x = range(len(y)) plot(x, y, ‘bo’)

Şimdi çizdirdiğimiz bu grafik üzerinde biraz daha güzelleştirmeler ve belirginleştirmeler yapalım.Mesela x ekseninde yer alan verinin ne olduğunu üzerine yazalım.Aynı olayı y ekseni içinde yapalım. ` xlabel(“Burasi x ekseni etiketi”) ylabel(“Burasi y ekseni etiketi”) x = arange(0, 2*pi, 0.01) y = exp(x) plot(x, y, ‘r--’) `

Çıktıdan da anlaşıldığı üzere grafikte yer alan ilgili koordinatlar birleştirilmek yerine sadece noktalar koyuldu.Bunu `plot` fonksiyonuna verdiğimiz `bo` parametresi ile sağladık. Buradaki `b` tahmin ettiğiniz gibi `blue` anlamına gelmekte ve eğrinin rengini belirliyor. `o` parametresi de eğrileri birleştirmek yerine yuvarlak nokta koy anlamına geliyor. Matplotlib ile çizdiğiniz eğrilerde `b => blue`, `g => green`, `r => red` anlamına gelmekte ve geriye kalan renkler içinde tümevarım yöntemini kullanabilirsiniz.Veya `http://matplotlib.org/ api/pyplot_api.html#matplotlib.pyplot.plot` linkinden tüm renkleri görebilirsiniz.Ayrıcana bu sayfadan `o` parametresi ile yaptığımız gibi eğrinin şekline yönelik diğer parametreleride görebilirsiniz.Mesela nokta yerine yıldız koymak istiyorsanız `*` gibi bir parametre ile çağırmalısınız.Veya noktalı bir eğri istiyorsanız `:` ile çağırmalısınız.Bu tarz çağrılarda `b:*` gibi birçok parametrenin karışımınıda kullanabilirsiniz.

Çok karmaşık bir iş yapmış gibi gözükebilir.Ancak ilk çizdirdiğim grafik ile aralarında pek bir fark yok.Normal Python dizileri ye-rine NumPy’nin `array` veri tipinin avantajınıda çok güzel gösteriyor. Bu kodu açıklamak gerekirse ilk satirda `xlabel` fonksiyonu ile x eksenine bir etiket belirli- yoruz. İkinci satirda `ylabel` ile y eksenine etiket belirliyoruz. Fırat ACM / Script / Mart 2014

9


Python

Zaten grafik çizildiği zaman tam olarak ne demek istediğimi anlayacaksınız. Daha sonra x ekseninde 0 ile 2pi arası 0.01 aralıklardan oluşan bir NumPy dizisi tanımlıyoruz.Y ekseninde ise ilk oluşturduğumuz dizinin her bir elemanın exp(yani e^x) fonksiyonundan dönen değerleri yerleştiriyoruz. Bu örnek aslında fonksiyon çizdirme olayının da bir temelini atıyor.Yapmamız gereken önce belirli aralıklı bir dizi oluşturmak. Daha sonra bu dizinin her bir elemanını istediğimiz fonksiyona verip dönen değerlerden de yeni bir dizi oluşturmalıyız.En sonda yapmamız gerekende elimizdeki bu iki diziyi çizdirmek. Örneğin sinus ve cosinus fonksiyonlarını da bu şekilde çizdirelim.Hatta ikisini de aynı resim üzerine çizdirelim ki farkını anlayabilelim. ` x = arange(0, 2*pi, 0.01) sinx = sin(x) cosx = cos(x) plot(x, sinx, ‘--’) plot(x, cosx, ‘--’)

Çizdirdiğimiz eğrilerde belirli limitler koymak isteyebiliriz.Bunun için `xlim` ve `ylim` fonksiyonunu kullanmak yeterlidir. ` x1 = [1, 2, 3, 4, 5] y1 = [1, 4, 9, 16, 25] x2 = [1, 2, 4, 6, 8] y2 = [2, 4, 8, 12, 16] plot(x1, y1, ‘r’) plot(x2, y2, ‘g’) title(‘X and Y’) xlabel(‘x axis’) ylabel(‘y axis’) xlim(0.0, 9.0) ylim(0.0, 30.0) `

Burada neden `2*pi` ye kadar olduğunu matematik bilgimizden anlayabiliriz.Aralıkların seçimi de size ne kadar örnek ile çizileceğini belirtir. Yukarıda yaptığımız gibi sizlerde kendi fonksiyonlarınızı oluşturup bunları çizdirebilirsiniz.Mesela `y=2x + 3` çizdirmek isteyelim.Bunun için aşağıdaki kod yeterli olacaktır.Altındaki örnekte `y=x^2 + 5` fonksiyonudur. ` x = arange(0, 10, 0.01) f1 = (lambda x: 2*x + 3)(x) f2 = (lambda x: x*x + 5)(x) plot(x, f1, ‘-.’) plot(x, f2, ‘-.’)

10

Fırat ACM / Script / Mart 2014

Çizimlerimiz sırasında sadece eğriler ile değil histogramlarla da uğraşabiliriz.Matplotlib ile bunu yapmak çok kolay.Elimizdeki verileri sadece `hist` fonksiyonuna vereceğiz.Zaten o bizim yerimize çizimi yapacaktır.


Script/Mart 2014/Python/ SciPy ile Bilimsel Hesaplamalar

` my_datas = random.normal(0, 20, 10000) hist(my_datas) ` Burada `random.normal` ile istatistikten bildiğimiz normal(gauss) dağılımı kullanarak rastgele ortalaması 0, rms değeri 20 olan 1000 tane değer üretiyoruz.Ve daha sonra bunun histogramını çizdiriyoruz.Siz de elinizdeki bu tarz verileri gayet kolay biçimde çizdirebilirsiniz.Mesela ben genelde derslerde sınıf notlarını bu şekilde çizdiriyorum.Siz de bu amaçla kullanabilirsiniz.

Linkteki isimleri `urllib` kütüphanesi ile çektik.Ve daha sonra bu ham veriyi boşluklardan bölerek her kelimenin boyundan oluşan bir liste oluşturduk. Çektiğimiz verinin baş kısmında gereksiz veriler olduğundan bunları `del` ile sildik.Ve son olarakta bunları çizdirdik.Elimizde ilginç ama bir o kadar da gereksiz bir sinyal oluştu. Buraya kadar anlattıklarım sizlere matplotlib ve numpy gibi Python'un bilimsel araçlarını tamamen öğretmek amacı taşımamaktadır.Sadece böyle bir alanında olduğu ve en azındandan bir kez bakmanız gerektiğini anlatmaktadır.Ufak çaplı bir giriş yaptıktan sonra devamını getirmek çokda zor değildir.Devamını getirmeniz dileğiyle.

Son olarakta başka bir örnek yaparak son noktayı koyalım.İlerleyen zamanlarda belki sizlerde kendi verilerinizi bu şekilde toplayıp analiz etmek isteyebilirsiniz.

http://pandas.pydata.org/pandas-docs/dev/visualization.html https://speakerdeck.com/olmansju/mathematical-and-scientific-computing-in-python http://www.scipy.org http://matplotlib.org/api/pyplot_api.html

Önceki Sayılarımız

Fırat ACM / Script / Mart 2014

11


Web Tasarım

Fırat Üniversitesi Resmi Web Sitesi Özetle bu çalışmada Fırat Üniversitesi web sayfasından bahsedilecektir. Fırat Üniversitesi 3000’e yakın akade-

Hakan Baysal Bilgisayar Mühendisliği/ Denetleme Kurulu

mik personeli ve 30.000’e yakın öğrencisiyle kalabalık bir nüfusa sahiptir. Bu yapı içerisinde herkesin aradığını kolaylıkla bulabilmesi için web sitemizi Drupal tabanlı oluşturduk. Sistem üzerine gerekli eklentiler ve tasarım yapılarak son haliyle kullanıma sunmuş bulunmaktayız. Anahtar Sözcükler: Fırat Üniversitesi Web Sitesi, Yazılım Geliştirme

1) Giriş Bir kuruluşun web sitesine bakılarak değer biçildiği günümüzde biz de kendimizi Fırat Üniversitesi’nin dış dünyaya görünen yüzünde yenilikler yapmak zorunda hissettik. Bu zorunluluğun temel sebepleri; öğrencileri ve akademik personelleri ilgilendiren duyuru, haber vb. iletileri web sayfasından daha düzenli olarak sunmak, tüm alt sistemlere ulaşım ana web sitesi üzerinden link edildiği için herkesin aradığını kolaylıkla bulmasını sağlamak, eski yapımızın dışına çıkarak herkese bilgiyi güvenli olarak ulaştırmak vs... Eski sistemden farklı olarak ASP.NET yerine Drupal(PHP) kullandık ve yine eskisinden farklı olarak sistemi bir Linux makine üzerine kurduk. Bu çalışmada her gün binlerce hit alan Fırat Üniversitesi Yeni Web Sitesi yeni.firat.edu.tr’nin teknik ve fonksiyonel özellikleri anlatılacaktır.

2. Sistemin Tasarımı Web sayfamız drupal sistemi ve tema tasarımı olmak üzere 2 ana öğeden meydana gelmektedir. Drupal Sistemi Web sitemizde ücretsiz ve açık kaynaklı bir içerik yönetim sistemi olan Drupal’ı kullandık. Sonradan eklediğimiz modüller sitemizin en son halini oluşturuyor. Şuan portalımızda onlarca modül bulunmakta. Ben modüllerimiz arasından en önemli olanlardan kısa kısa bahsedeceğim. Central Authentication Service (CAS): Sisteme Active Directory üzerinden login olmayı sağlayan bir modüldür. Bu modül ile daha önce yaptığımız cas.firat.edu.tr üzerinden login olunabilmekte[2]. CAS arayüzü şekil 1’de görüntülenmektedir. Color: Kullanıcılara web sitemizin arkaplanını kişisel olarak değiştirme imkanı sunuyor. IMCE ve Medya: Site üzerinde yeni bir sayfa oluştururken sunucuya dosya (resim, belge vs.) eklemeyi sağlıyor[3]. Şekil 2’te IMCE modülü görüntülenmiştir. Multilanguage: Yabancı uyruklu kimseler için sitenin İngilizce dil desteği sunması dışında sitemizin akademik linkindeki akademik birimlerin İngilizce versiyonlarına gidiş için parametre olarak algılattığımız modül[4]. Şekil. 1 CAS Arayüzü

12

Fırat ACM / Script / Mart 2014


Script/Mart 2014/Web Tasarım/ Fırat Üniversitesi Resmi Web sitesi

Google Analytics: Site analizleri görüntülemek ve incelemek için gerekli modül. Cute Slider: Anasayfa üzerindeki slider modülü. Modül içerisinde onlarca slayt geçiş efektleri ve yazı geçiş efektleri mevcut[5]. Şekil 3’te Cute Slider yönetim paneli görüntülenmiştir. Şekil. 2 IMCE Modülü

Popular Content: En çok okunan gönderilerin sıra landığı modül[6]. Tema Tasarımı Tasarım yaparken Fırat Üniversitesi’nin renklerine uyum sağlamaya çalıştık. Bir yandan görselliği yakalamaya çalışırken diğer yandan gözleri yormayacak sadeliği yakalamaya çalıştık. Eski web sitemizden farklı olarak sitenin alt kısımlarına, sliderın altına ve banner kısmına biri açılıp kapanabilir olmak üzere 4 ayrı linkler bölümü oluşturduk. Duyuruların tarihlerine özellikle vurgu yapmaya çalıştık.

Şekil. 3 Cute Slider Yönetim Paneli

Sitemizin içeriğini haber ve duyurularla genişletirken aynı zamanda diğer sistemler arasında köprü görevi kurmaya da çalıştık. Sitemizin blok bölgeleri şekil 4’te gösterilmiştir.

3. Sonuç ve Öneriler Geliştirilen bu web sayfası ile her kullanıcıya hitap edebilmek amaçlanmıştır. Sitede Drupal çekirdeğini kullanmamız ve sisteme giriş CAS ile sağlandığı için sitemizin güvenliğini arttırmış bulunmaktayız. Tüm bunların yanında site içeriklerini yönetme kısmında yönet icilere kolay editlenebilir bir panel sunduk. Şekil 5’te web sitemizin son hali görüntülenmiştir. Şekil. 4 Blok Bölgeleri

Şekil. 5 Son hali

Şekil. 6 Yönetici Paneli Fırat ACM / Script / Mart 2014

13


Script/Mart 2014/Makale/ Üniversitede Girişimci Olmak

Makale

Üniversitede Girişimci Olmak Tanım olarak girişimcilik nedir?

İzzet Balcı Elektrik Elektronik Müh. / Sosyal Etkinlik

Çevrenin yarattığı fırsatları sezme, o sezgilerden düşler üretme, düşleri projelere dönüştürme, projeleri yaşama taşıma ve zenginlik üreterek, insan yaşamını kolaylaştırma becerisine sahip olmaktır. Girişimci ise bu vasıflarını ve cesaretini en verimli şekilde kullanıp değer üretebilen kişi olmalıdır. Girişimci sadece kendi işini kuran kişi değildir. Asıl konumuz bir üniversite öğrencisi için girişimcilik iş hayatına başlamadan önce mesleğinde ve kişiliğinde sahip olması gereken bir takım özellikleri kazanmaya çalışmak olaraktan algılanmalıdır. Üniversite hayatımızda hangi bölümde okursak okuyalım mesleğimizi yapmamız için sahip olmamız gereken bir takım özelliklerimiz olması gerek. Her bölüm için öğrencinin sahip olması gereken özellikleri kendisi belirlemesi ve bu özellikleri kazanmak için kişisel gelişimini tamamlamasına ihtiyacı duyar. Çiçeği burnunda bir mezun, iş hayatını ciddi bir başarısızlıktan ve maddi kayıptan sonra ancak öğrenebilir. İş dünyasına yeni atılanlar; başarısızlıklarla pes etmek yerine o başarısızlıktan ders almalı ve bir sonraki girişimde o hatayı tekrarlamamalıdır. Bir üniversite öğrencisi ileride kendi işini kurmayı planlıyorsa eğer iş hayatına girdiği anda öğreneceklerini üniversite yıllarında az-çok tecrübe edebilme şansına sahiptir. Üniversite yılları iyi değerlendirilirse iş hayatına girildiği andaki zorluklar yaşamayabilir. Bir üniversite öğrencisi ne yapmalıdır; kendi gelişiminde rol oynayacak ve bir takım görevler alabileceği çeşitli sivil toplum kuruluşlarına, üniversite bünyesinde bulunan kulüplere seçici davranarak üye olması gerekir. Üniversite öğrencisi sosyal olması gerekir. Sadece okul-ev arasında gitmemesi gerekir. Bu durum işe başlamadan önce hem kendisini geliştirmesine olanak sağlar hem de daha öğrenciyken ciddi bir çevre edinmesine yarar sağlar. Sizde fark edersiniz bir süre sonra kendinizde olacak değişimi,gelişimi.Belki kulüp veya sivil toplum kuruluşlarında tanıştığınız bir arkadaşın size okuldan sonra iş fırsatı sunabilir.

14

Fırat ACM / Script / Mart 2014

Günümüz şartlarında sadece okuyarak bir meslek sahibi olunmadığını biliyoruz. Bu kulüplerde aktif olarak görev alarak, seminer, konferans, teknik gezi, kongre vb. düzenleyerek kendinize olan güveninizi artırabilir, liderlik özelliğinizi özelliğinizi güçlendirebilir, daha üniversitedeyken CEO ve patronlarla birebir iletişim kurabilme fırsatı yakalayabiliriz. Bu tür organizasyonlara katılım göstermek bile önemliyken, işi yapan kişi, sorumlu olmak size çok şey katacaktır. Ayrıca mezun olduktan sonra bir yerde toplum karşısında herhangi bir kongrede veya toplantı da konuşma yapacağınız vakit kendinizden emin olmanız gerekir. Bu endişeleri ve korkuları üniversite hayatınızda yenmeniz gerekecek. Çoğu üniversite öğrencisi bu cümleden sonra içerisinden yaparım, ederim diye düşünce gecirecektir. Ve son olarak değinmemiz gereken konulardan bir tanesi de yabancı dil öğrenme de ki becereksizliğimiz. Toplum olarak bir yabancı dili öğrenmekte tembeliz diyebiliriz. “Bir lisan,bir insan” bu sözü hepimiz biliriz. Dili bilmek ve bunu kullanmak kişiye tartışmasız çok şey katar. Yabancı Dil bilmenin yararlarını kısaca sıralarsak; • Dil bilmek, belli sektör ve iş alanlarında yaratıcılığı kolaylaşır. Örneğin; dış ticaret, yazarlık, bilgi teknolojisi (yabancı uluslararası terimler) alanlarında. • İş ararken adaylar arasında bir adım önde olursunuz. • Kendine güven duygusu ile kendi kendine yetme duygularınız güçlü olur. • Zaman kazanımı: kendi işinizi halledebilece��iniz için tercümana, tercüme bürolarına veya aracıya pek gereksiniminiz kalmaz. • Kendini ve ülkeni iyi bir şekilde temsil edersin. • Seyahatlerde özgürlük ile seyahatlerinizin daha zevkli ve pratik olacağına inanıyorum. • Yeni bir ilgi alanı çıkabilir karşınıza. Dil içinde taşıdığı kültür ile belli sporlara, uğraşlara eğilimler taşır ve siz hayatınıza bunlardan birini veya birkaçını seçerek yeni bir anlam ve renk katabilirsiniz.


Script/Mart 2014/Programlama/ Visual Studio 2013 Yenilikleri

Programlama

Visual Studio 2013 Yenilikleri

İsmail KILIÇ

Bilişim Teknolojileri dünyasında yaşanılan yenilikler yazılım geliştirmenin de değişik bir açıyla ele alınmasını gündeme getiriyor.Tüketiciler, firmalar ve çalışanlar yeni türde uygulamalar talep ediyorlar: pek çok farklı platformda her zaman internete bağlı, güvenli ve sürekli güncellene bilinecek değişimi desteklemek başlıca talepler arasında bulunuyor.

Konuk Yazar / Fırat Üniversitesi

Microsoft da Visual Studio 2013 (VS 2013) tüm bu değişimi ve talepleri kucaklıyor.Visual Studio 2013 ile yazılım geliştirme ekipleri Microsoft platformunun hizmetlerini ve araçlarını kullanarak uygulama geliştirilebilinir. Bu yeni sürümde endüstriyel uygulamalar, web uygulamaları, oyunlar veya mobil cihazlara yönelik uygulamalar için uzmanlaştırılmış her çeşit araç bulunmaktadır. Yeni gelen başlıca özellikler şunlardır;

• Bulut iş(Cloud Business) uygulamaları Visual Studio 2013 ile Microsoft ilk defa bulut üzerinde çalışarak Cloud Business uygulamaları geliştirme olanağı sağlamaktadır.Bu uygulamalar Visual Studio'nun uygulama yaşam döngüsü yöntemi ile entegre olmakta ve uygulama geliştiricilerin arasında köprü kurmaktadır . • TypeScript TypeScript, JavaScript geliştirme süresince sınıflar, modüller ve opsiyonel statik tipleri getiriyor.Kodlama esnasında hata bildirimi IntelliSense ve Rename tekrar düzenleme gibi zengin araçlar sağlıyor. • Web Geliştirme Web geliştirme ortamında Browser Link paneli, Browser Link API genişletilebilinirliği, SignalR 2 , MVC5 ve Web API 2 platformunda güncelleştirmeler,düzenlemeler gibi iyileştirmeler getiriyor. • Peek Definition Geliştiricilerin içerikten ayrılmadan referans verilen kodu görmesini mümkün klan Peek Definion adlı yeni bir dahili ön izleme özelliğinide bizlere sunuyor.Bu özellik orijinal görünümden ayrılmadan kod geliştirme ve sorun gidermenin kolaylaştırılması yolunda daha da geliştirilmiştir. • CodeLens Kaynak kod dosyaları içerisinde ayrıntılı bağımsal bilgiler sağlayan yeni bir özellik kazandırıyor. C# ve Visual Basic için Codelens referans sayısı ve kaynak kontrolünde güncel değişiklikler gibi bilgileri sağlıyor. • Team Foundation Server 2013 Ekip halinde uygulama geliştirmeye olanak tanıyan Team Foundation Server 2013 sürümünde hatalar, kullanıcı davranışları vb. verileri görselleştirmek için yeni grafik özellikleri geldi. • Yeni Renk Düzeni Visual Studio 2013 yenilikleri arasında en görünür olanı eklenen yeni renk düzeni gibi görünüyor.Visual Studio'nun bir önceki sürümü olan 2012 de "Light" ve "Dark" olan iki alternatif renk düzenine yeni sürümde "Blue" alternatifi eklendi. Fırat ACM / Script / Mart 2014

15


WebSphere

WebSphere Application Server – Sistem Yönetimine Genel Bakış (Bölüm-2) Stand-Alone Sunucu Ortamında Sistem Yönetimi Farklı WebSphere Application Server ortam türleri için birçok yönetim seviyesi vardır. Bu ve bundan sonraki yaklaşık beş yazımda ortak sistem yönetim türlerini ve yönetim metotlarını anlatacağım.

Batuhan Çıkrıkcı Yazılım Mühendisliği / Yönetim Kurulu Başkanı

Stand-alone uygulama sunucusu J2EE uyumlu uygulamaları çalıştırmak için gerekli yetenekleri sağlar. Stand-Alone uygulama sunucusu geliştirme ve test aşamaları için iyi bir başlangıç noktasıdır. Aynı zamanda yoğun sistem kaynakları gerektirmeyen hafif uygulamalar içinde kullanılabilir. Liberty Profile:WebSphere Application server v8.5 de sağlanan yeni dinamik bir uygulama sunucusu çalışma

ortamıdır. Web ve OSGİ(Open Services Gateway Initiative) uygulamaları için basitleştirilmiş, hafif geliştirme ve uygulama hizmet ortamıdır.

Stand-alone bir uygulama sunucusu oluşturmak için tek bir (fiziksel) mekinede yada yalnızca bir uygulama sunucusunun mantıksal bölümünde(LPAR “logical partition”) WebSphere Application Server profili oluşturmalısınız. Bu profil size; application server, node ve cell tanımlayacaktır. WebSphere scripting client (wsadmin), Integrated Solutions Console(administrative console) ve Command-line utilities kullanarak bu uygulama sunucusunu yönetebilirsiniz. Uygulama sunucusu için olan tüm yapılandırma verileri, yüklü uygulamalarda dahil olmak üzere, profil oluşturulduğunda oluşturulan bir yapılandırma deposunda saklanır.

16

Fırat ACM / Script / Mart 2014


Script/Mart 2014/WebSphere / Sistem Yönetimine Genel Bakış

WebSphere Application Server – Sistem Yönetimine Genel Bakış (Bölüm-3a) Distributed Sunucu Ortamında Sistem Yönetimi Stand-alone sunucu ortamları; load balancing(yük dengeleme), scaling(ölçekleme) veya high-availability(yüksek kullanılabilirlik) özelliği sağlamaz. Ancak ditributed(dağıtık) sunucu ortamı, uygulama sunucu kümeleri oluşturarak bu zorlukların üstesinden gelebiliriz. Clustered sunucular; work load balancing(iş yükü dengleme), session(oturum) veri replikasyonu ve yük devretme özellikleri sağlar. Aşağıda; yüksek düzeyli, distributed sunucu ortamı oluşturma adımları yer almaktadır. 1. Deployment Manager profili oluşturarak başlayın. Deployment manager tüm cell’lerin yönetiminden sorumludur. 2. Deployment Manager oluşturduktan sonraki adım; custom profile oluşturun. Bu; ikinci bir cell(defaultCell), bir node ve node agent oluşturur. Bu noktada, işlevsel uygulama sunucu ortamına sahip değilsiniz, sadece başlangıcındasınız. Aşağıdaki şekil(Şekil 3-1) geçici bir sunucu ortamı göstermektedir. 3. Bir sonraki adım addNode komutunu kullanarak Deployment Manager’in cell’ine node (NodeA Şekil 3-1) birleştirmektir.

4. İşlem tamamlandıktan sonra, NodeA ‘nın tüm yönetimi deployment manager temsilcisidir ve deployment manager için administrative tools kullanılarak node üzerinde yeni uygulama sunucuları oluşturulabilir. Bu ortam Şekil:3-2 ‘de gösterilmiştir. Distributed sunu ortamları oluşturabilmek için sunucular oluşturulabillir ve ek nod’lar eklenebilir.

Fırat ACM / Script / Mart 2014

17



<script/> Mart 2014