t.c. kadİr has Ünİversİtesİ mÜhendİslİk ve doĞa … · staj defterİ Öğrencinin fakülte...

40
. T.C. KADİR HAS ÜNİVERSİTESİ MÜHENDİSLİK VE DOĞA BİLİMLERİ FAKÜLTESİ Öğrencinin Anabilim Dalı: Enformasyon Teknolojileri ÇAP: Endüstri Mühendisliği STAJ DEFTERİ Öğrencinin Fakülte Numarası : 2009.01.05.023 Öğrencinin Adı ve Soyadı : Başak DEMİREL

Upload: others

Post on 28-Oct-2019

12 views

Category:

Documents


0 download

TRANSCRIPT

.

T.C.

KADİR HAS ÜNİVERSİTESİ

MÜHENDİSLİK VE DOĞA BİLİMLERİ FAKÜLTESİ

Öğrencinin Anabilim Dalı:

Enformasyon Teknolojileri

ÇAP: Endüstri Mühendisliği

STAJ DEFTERİ

Öğrencinin Fakülte Numarası : 2009.01.05.023

Öğrencinin Adı ve Soyadı : Başak DEMİREL

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

Öğrencinin,

Adı :Başak

Soyadı :Demirel

Numarası :2009.01.05.023

Bölümü :IT

E-posta :[email protected]

Staj Dönemi :2012-2013

Staj Başlama Tarihi :08 /07/2013

Staj Bitiş Tarihi :02 /08/2013

Toplam Çalışılan Gün :20

Stajın Yapıldığı Bölüm :IT Departmanı

İşyeri Stajyer Sorumlusu Firma Onayı Veren Kişi

Adı / Soyadı

Ünvanı

Tel.

E - Posta

Staj Yapılan Firmanın Adı : VIP İndirim Elektronik Hizmetler ve Ticaret A.Ş.

T.C. KADİR HAS ÜNİVERSİTESİ MÜHENDİSLİK VE DOĞA BİLİMLERİ FAKÜLTESİ

FOTOGRAF

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

HAFTALIK ÇALIŞMA ÖZETİ

HAFTA TARİH GÜN YAPILAN İŞİN KISA TANIMI

1. 08/07/2013 P.tesi

Şirket ile tanışma ve eksiklerin giderilmesi

1. 09/07/2013 Salı

Git programı öğrenimi

1. 10/07/2013 Çarş.

Git programını öğrenim ve Python programalama diline

başlangıç

1. 11/07/2013 Perş.

Python programlama dilinde control statement ve

Oryantasyon toplantısı

1. 12/07/2013 Cuma

Python programlama dilinde döngüler ve dosya işlemleri

HAFTA TARİH GÜN YAPILAN İŞİN KISA TANIMI

2. 15/07/2013 P.tesi

Python programlama dilinde dosya işlemleri ve

fonksiyonlar

2. 16/07/2013 Salı

Python programlama dili ile array (listeler)

2. 17/07/2013 Çarş.

Python programlama dilinde dictionary,class,module ve

object

2. 18/07/2013 Perş.

Sistem analiz ve Test Ekibi ile oryantasyon toplantısı ve

class, object tekrarı

2. 19/07/2013 Cuma

Database Ekibi ile oryantasyon toplantısı ve genel

tekrar, Guake kurulumu

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

HAFTALIK ÇALIŞMA ÖZETİ

HAFTA TARİH GÜN YAPILAN İŞİN KISA TANIMI

3. 22/07/2013 P.tesi

Unix tool assignmet

3. 23/07/2013 Salı

Log Parser Assignment başlangıcı

3. 24/07/2013 Çarş.

Log Parser Assignment bitişi

3. 25/07/2013 Perş.

Instagram assignment başlangıcı

3. 26/07/2013 Cuma

Kurtköy Yerleşkesine gidilerek oryantasyona katılınması

ve sistemler hakkında bilgi edinilmesi

HAFTA TARİH GÜN YAPILAN İŞİN KISA TANIMI

4. 28/07/2013 P.tesi

Unshredder başlangıcı, github kurulumu ve Queue

Server, RabbitMQ, Redis kavram toplantısı

4. 29/07/2013 Salı

Geliştirilen kodların PEP8 kontrollerinin yapılması

4. 30/07/2013 Çarş.

Yeni gelen assignment için gerekli adımların

tamamlanması

4. 01/08/2013 Perş.

Back-end toplantısı, Django tutorial okunması

4. 02/08/2013 Cuma

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 1

Tarih 08/07/2013

Gün 1

Yapılan İş Şirket ile tanışma ve eksiklerin giderilmesi

Stajdaki ilk günümde, IT departmanı ile tanışmam sağlandı. Daha sonra IT katında personeller tarafından neler yapıldığı,genel işleyiş ve düzen anlatıldı. Organizasyon şeması verilerek birimlerin görevleri anlatıldı. İdari işlerden masa ve ofis malzemeleri tamamlandıktan sonra çalışmak için masa düzeni sağlandı. Verilen laptop’ın eksikliklerini giderdim. Partition yapılarak Windows yanına Ubuntu kurulması ve update işlemlerinin yaptım. İdari işler ile ilgili olan personel kartımı teslim almak, banka hesap kartımı almak, domain almak ve e-posta adresimi aktifleştirtmek gibi işlemleri yaptım. İş bitiş saati gelene kadar genel hatlarıyla sadece şirket içinde IT departmanının işleyişini gözlemledim.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 1

Tarih 09/07/2013

Gün 2

Yapılan İş Git programı öğrenimi

Git, ücretsiz ve açık kaynak kodlu bir program. Bu program sayesinde büyük projelerde etkili ve hızlı şekilde farklı erişim noktalarından dağıtılmış kontrol sistem dizaynı ile erişim sağlıyor. IT Front-End Departmanı Lideri Sezgin Bey'in, bize gönderdiği tutorial üzerinden Git eğitimine başladım. Bu eğitimi http://try.github.io/levels/1/challenges/1 adresi üzerinden 25 adımda tamamladım. Tutorial süresince; git init komutu ile proje dizini oluşturmak ve sisteme giriş yaptığını, git add dosya_adi komutu ile dizine dosyayı atmayı, git status komutu ile dosyaların durumunu görmeyi, git diff komutu ile staged olmayan fakat yapılan değişiklikleri görmeyi (bunun diğer opsiyonu olan –cached ve –staged ile farklı erişimlerini), git commit komutu ile unstaged olan ve üzerinde değişiklik yaptığımız dosyaları staged üzerine atmayı, git rm komutu ile çalıştığım dizinden dosyalarımı sildiğini ve untracked dosyalar arasında bir dahaki sefere görülemeyeceğini, git log komutu ile Git'in kendi içinde tuttuğu geçmişi görebileceğimi, git branch komutu ile yaratılan ve varolan branchlerin gösterildiğini, git pull komutu ile verilen bir noktaya dosyaları alınabildiğini, git push komutu ile verilen bir noktaya dosyaları gönderebildiğini öğrendim.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 1

Tarih 10/07/2013

Gün 3

Yapılan İş Git programını öğrenim ve Python programalama

diline başlangıç

Stajımın 3. gününde sabah geldiğimde, Git'in tam kullanımına geçmeden önce dün yaptığım tutorial üzerine bir de kendi dökümantasyonu olarak verdiği dersleri de bugün http://git-scm.com/doc adresinden çalıştım. Bu sitede daha fazla ayrıntıya girip daha açıklayıcı şekilde komutların farklı opsiyonlarına da yer vererek anlattıklarını inceledim. Öğleden sonra ise Python programalama diline basit şekilde başladım. Önce Türkçe internetten bulduğum kaynaklardan çalıştım. http://www.istihza.com/py2/temel_bilgiler.html adresinden önce temel bilgileri öğrendim. Bu temel bilgiler içerisinde Python dilinin ilk başlangıcından, Windows ve Ubuntu kurulumlarına kadar bir çok konuda detaylı bilgiye sahip oldum. Python programlama dilinde Ubuntu terminalinden kod yazabildiğim gibi ayrıca .py uzantılı dosyalara yazarak da çalıştırabileceğimi öğrendim.

Temel bilgileri edindikten sonra ilk derslere başlayarak ilk print fonksiyonunu öğrendim. Print ile bir çok denemede bulundum. Alttaki örnek python için terminalde arayüz açmış oldum. Bu şekilde ilk hello world ü yazdım.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

Aşağıdaki örnek ile de .py uzantılı dosyayı derledim ve bu şekilde de output alınabileceğini gördüm.

Daha sonra kullanıcıdan input almayı öğrendim. Input alınımı için iki fonksiyon

bulunmakta bunlar,raw_input() ve input(). İkisi arasındaki fark aldığında gelen bilginin biri string olarak algılarken diğeri integer olarak algılayabilmekte. Bunun yanı sıra input() fonksiyonu artı olarak gelen inputları birer komut olarak algılayabilmekte ve bu nedenle güvenlik problemleri çıkartabilmektedir.

Bunların yanı sıra print fonksiyonunun farklı opsiyonlarını da denedim.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 1

Tarih 11/07/2013

Gün 4

Yapılan İş Python programlama dilinde control statement ve

Oryantasyon toplantısı

Stajın 4.gününde İnsan kaynakları ile oryantasyon toplantımız oldu. Bu toplantıda şirketin genel sunumu sonrası yapılan departmanların takım liderleri ile 15er dakikalık sunumları izledik. Daha sonrasında ise şirket içinde departmanların yerlerini ve fiziksel koşullarını inceledik.

Oryantasyon toplantısı sonrasında masama döndüğümde Python ile numeric ve aritmatik işlemleri öğrendim.

Bu işlemleri çeşitli şekillerde denedikten sonra control statementlar geçtim. İf, elif ve else syntaxlerini inceledikten sonra tek tek çeşitli örnekler yapmaya başladım.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 1

Tarih 12/07/2013

Gün 5

Yapılan İş Python programlama dilinde döngüler ve dosya

işlemleri

Stajımın 5. gününde, Python programlama dilinde döngülere (loop) başladım. Python'da 3 tip loop bulunmakta; for, while ve nested loop. Bunların tek tek sytax'lerini öğrendikten sonra alıştırmalara başladım.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

Öğleye kadar bu şekilde bir çok örnek yaptım. Çeşitli yıldız şekilleri, sayı dizileri ve farklı erişimleri denedim. Öğlen yemekten sonra yapılan Git oryantasyonuna katıldım. Git ile şirket içerisinde nasıl bir yol izlendiğini, nasıl kullanıldığını öğrendim. Bu bağlamda benim ne yetkilerim olacağı hakkında bilgiler edindim. Git kodlarından bahsedildikten sonra yemege çıktım. Daha sonra dosya işlemlerine başladım. Bu amaçla read, open write ve truncate fonksiyonlarını öğrendim. Çeşitli örnekler yaptım.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 2

Tarih 15/07/2013

Gün 6

Yapılan İş Python programlama dilinde dosya işlemleri ve

fonksiyonlar

Stajımın 2. haftasında ilk günüme önceki programların üzerinden hızlıca geçerek başladım. Kısaca programların üzerinden geçtikten sonra dosya işlemlerine devam ettim. Bu kez dosya işlemlerinde daha çok fonksiyonları kullanacağım için önce fonksiyon örneklerine baktım. Fonksiyonların python dilinde def ile tanımlandığını, yanına fonksiyon ismini yazdıktan sonra parantez içinde parametrelerini verdiğimi öğrendim. Bu şekilde birkaç örnek yaptım.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

Öğleden sonra yemek dönüşünde IT ekibi ile tanışma amaçlı oryantasyon toplantısı düzenlendi. Bu toplantıda IT ekibinin şirket içindeki konumu, Markafoni Ceo'su Sina Bey, IT Departmanı Lideri Kıvılcım Bey ve IT Uygulama Geliştirme Takım Lideri Tolga Bey'den dinledik.

Oryantasyon sonrası dosya işlemlerini fonksiyonlarla birleştirerek yapmaya çalıştım. Bununla ilgili iş bitiş saatine kadar birkaç örnek yaptım.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 2

Tarih 16/07/2013

Gün 7

Yapılan İş Python programlama dili ile array (listeler)

Bugün önceki programların üstünden geçtikten sonra arraylere başladım. Arraylerde ilk başta gerekli olan fonksiyonları araştırdım. Bunlar;

append: listeye yeni bir element eklememizi sağlar,

count: liste içinde kaç defa verilen elementin geçtiği sayar,

index: liste içinde verilen elementin indexini döner,

insert: listeye, istenilen indexe istenilen veriyi yazar,

pop: listenin en sonundakini listeden siler ve ekrana basar,

remove: istenilen elementin listeden silinmesini sağlar, reverse: listeyi tersine çevirir.

Bütün bunları içeren bir list.py yazarak çalıştırdım.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

Bu güne kadar hep Gedit editörünü kullanarak python programları yazmıştım. Bugün

öğleden sonra sublime text 2 editörünü yükledim. Terminalden, sudo add-apt-repository ppa:webupd8team/sublime-text-2 sudo apt-get update sudo apt-get install sublime-text şu kodları kullanarak yüklemesini tamamladım. İlk denemeleri yaparken karşılaştığım bir sorun oldu. Bu sorun userdan input alımının ST2'de desteklenmemesiydi. Bunun için internette aramalar yaptım. Sonuçta elde ettiğim bilgilerle sırasıyla,

1. View > Show Console 2. import urllib2, os; pf = ‘Package Control.sublime-package’; ipp =

sublime.installed_packages_path (); os.makedirs (ipp) if not os.path.exists (ipp) else None; open (os.path.join (ipp, pf), ‘wb’). write (urllib2.urlopen (‘http://sublime.wbond.net/’ + pf.replace (”, ‘% 20′)). read ())

komutunu console yazdım 3. Perferences-> package control 4. çıkan ekranda console'a sublimerepl yazdım 5. Tools >Sublimrepl>Python>Python seçip programı yeniden başlattım.

Bu şekilde artık input alımında sorunsuz şekilde sublime-text editörünü kullanmaya başladım.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI Hafta

2 Tarih

17/07/2013

Gün 8

Yapılan İş Python programlama dilinde dictionary,class,module

ve object

Tutorial akışını takip ederek bugün dictionary yapısını inceledim. Dictionary, key ve value çiftlerinden oluştuğunu ve decleration işleminin sozluk = {"elma": "meyve", "domates": "sebze", 1: "sayi"} şeklinde yapıldığını gördüm ve inceleyerek birkaç örnek kendim yazdım. Dictionary yapısı python programlama dilinde önemli bir veri tipi olduğunu ve birçok yerde kullanıldığını gördüm. Öğleden sonra, yemek dönüşü, module yapısını anlamaya ve öğrenmeye çalıştım. Module yapısının aslında yazdığımız her .py dosyası olduğunu ve from … import …. kalıbıyla yeni dosyalara eklenebildiğini gördüm.

Daha sonrasında buradan devam ederek class yapısını inceledim. Class tanımlaması, çağrılması ve çalıştırılmasıyla ilgili örnekler yaptım. Bu örneklerin script ve output ekranları aşağıdadır;

Bunları yaparken de object mantığını ve scriptlerin nasıl okunup nasıl yazıldığını ve tanımlandığını öğrendim. Python programlama dilinde ;

class : Python'a yeni bir tanımlama yapılması

object : herhangi bir classtan üretilen nesne,

instance : Python'da class üretip ne yapacağını söylediğimiz yerde elde ettiğimiz

def : Fonksiyon tanımlamak için kullanılan yöntem,

self : Class içindeki fonksiyonda, objenin erişimi için tanımlanması gerektiğini,

inheritance : Bir class ve onun attribute'ları kullanılarak yeni bir alt class üretilmesi ve üretilirken fonksiyonların subclass aktarılması olduğunu,

attribute :Bir class'a ait özellikler,fonksiyonlar, olduğunu

is-a : Başka bir class'tan kalıtımsal özelliklerin olduğu,

has-a : Başka bir sınıftan özelliklerini, fonksiyonlarını aldığı anlamı taşıdığını öğrendim.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 2

Tarih 18/07/2013

Gün 9

Yapılan İş Sistem analiz ve Test Ekibi ile oryantasyon toplantısı

ve class, object tekrarı

Sabahtan geldiğimde dünkü kodları inceleyip üstünden geçerek güne başladım. Saat 10.00- 11.30 arası Test Ekibinin stajyerler ve yeni çalışanlar için hazırladıkları SDLC ve Test tanıtım oryantasyonuna katıldım. Markafoni için SDLC’nin kullanımı ve yönetimi üzerine bilgilendirdiler. Daha sonrasında ise Markafoni’de Test operasyonlarının önemi ve uygulanması hakkında bilgiler üzerinde durdular. Genel şirket iş akışı içerisinde Analiz ekibinin yaptıkları ve iş akışındaki yerleri üzerine konuşuldu. Bunların yanı sıra tüm bu konular ve operasyonlar hakkında merak edilenler ve anlaşılmayan noktaları cevaplayarak toplantı sona erdi. Bu toplantı sonunda Test ve Analiz alanlarının bir e-ticaret şirketi için önemini kavramış oldum.

Öğle yemeği sonrasında class ve object üzerine birkaç siteden ve python documentation, tutoriallarını okuyup üzerlerinden bir kere daha geçtim. Orada verilen örnekleri inceleyerek uygulamalar yaptım.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

Saat 15.30-17.00 saatleri arasında geçen sürede ise, Teoman Dinç Bey’in bir önceki gün

yaptığı toplantının devamı olan, Database ve System alanı hakkında genel bilgileri kazanması

için yaptığı oryatasyona katıldık. Bu oryantasyonda, veritabanı sistemi, bu sistemleri üreten

şirketler ve ürünlerinin benzerlikleri ile farklılıkları, performans ölçütleri system analist, business

analyst ve dba meslekleri arasındaki uyumluluk ölçütleri ve çalışma mantıkları hakkında

konuşuldu. Mesai bitişine doğru oryantasyonu bitirirken, Teoman Bey bizim merak ettiklerimizi

ve öğrenmek istediklerimizi sordu.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 2

Tarih 19/07/2013

Gün 10

Yapılan İş Database ekibi ile Toplantı ve genel tekrar, Guake

Kurulumu

2. haftamın son gününde yaptıklarımın hepsinin üzerinden geçtim. Learn Python The Hard Way kitabının örneklerini tekrar ederek birer kez daha yaptım. Python kütüphanelerini araştırıp gördüğüm konular üzerinden kütüphanelerini uyguladım. File, sys ve os kütüphanelerini kullanarak örnekler yaptım. http://www.secnetix.de/olli/Python/ üzerinden yeni örnekleri denedim ve yeni örneklerin üzerinden scriptler yazdım. Bu şekilde Python programlama dilinde daha çok example görmüş ve incelemiş oldum. Daha sonrasında python kendi web sitesinden olan docs.python.org/2/contents.html tutoriallarını okuyarak örnekler yapmaya çalıştım. Yeni birkaç ince noktayla karşılaştım. Bunları denedim ve başka sitelere bakarak daha iyi anlamaya çalıştım. Öğleden sonra yemek dönüşü son kalan örnekleri tamamladıktan sonra Teoman Bey ile bir önceki günde yarım kalan toplantımıza devam ettik. Database alanı hakkında daha derinlemesine bir toplantı yapılmış oldu. Database dünyasındaki markalar, Türkiye ve Dünya'da piyasa payları, Database çalışma mekanizması, PGA ve SGA, background process ve database işlevleri üzerinde bilgilendirmeler yapıldı. Toplantı sonunda IT sektörü ve geleceği, kendi içinde meslek alanların kırılımları üzerine konuşmalar oldu. Kariyer planlaması ve genel IT iş piyasası hakkında bilgilendirilmeler yapıldı. Bu sektör içinde Markafoni'nin yeri anlatıldı. Bugün ayrıca öğrendiğim bir bilgi ile kolayca açabileceğimiz ve normal terminalden kullanımı farklı olan Guake terminalini indirdim. Bu programın kurulumunu yaparak ayarlarını düzelttim. Guake,Ubuntu Gnome için tasarlanan top-down bir terminal . Kısa yollarını öğrenerek mesai çıkışında ofisten ayrıldım.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 3

Tarih 22/07/2013

Gün 11

Yapılan İş Guake kurulumu ve unix tool assignmet

Bu hafta stajımın 3. haftası olması ve akademi programı dolayısıyla assignment uygulamalarına başladım. İlk örneğimizde bizden istenen unix commandlerinden head ve tail commandlerinin python dilinde uyarlanmasıydı. head ile iki switch istendi;

Birincisi arguman olarak command satırından scritp adı ve dosya adını alarak output olarak verilen dosyanın ilk 10 satırının basılması. (python head.py file_name )

İkincisi ise script adı, ”-n”, gösterilmesi istenen satır sayısı ve dosya adını alarak output olarak, istenilen sayıda satırı dosyanın başından başlayarak yazması. (python head.py -n 100 file_name)

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

tail ile üç tane switch istendi;

Bunlardan birincisi script adı ve dosya adını alarak output olarak dosyanın sonundan 10 satırın ekrana basılması. (python tail.py file_name)

İkincisi, script adı, “-n”, satır sayısı ve dosya adını alarak sonundan istenilen sayıda satırı basması. (python tail.py -n 100 file_name)

Üçüncü istediği swicth ise script adı, “-f” ve dosya adı alarak dosyanın son 10 satırı bastıktan sonra dosyada yapılan değişiklikleri anlık takip etmesi. (python tail.py -f file_name)

En sondaki swicthte bir terminalden istenilen şekilde açılan file, başka bir terminalde cat >> file_name ile çalıştırılıp üzerine değişiklik yapılırken okunmaya devam etmesini sağlamaktır. İkinci terminalde cat ile yapılan her işlemi anlık takip edip ilk terminalde göstermesidir.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

Karşılaştığım birkaç sorunda, çözümleri bulmak için çeşitli sitelerden yardım alarak blogları okudum. Yaptıklarımı parça parça deneyip uygulayarak scripti geliştirdim. En son ekran görüntülerinde olduğu gibi kodları tamamlayarak ilk assignment'ı bitirdim.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 3

Tarih 23/07/2013

Gün 12

Yapılan İş Log parser assignment başlangıç

Bugün bizlere verilen assignmentlardan 2. olana başladım. Bu assignmentta bizden istenen içinde bulunan url ile istenen bilgileri keserek almamız, daha sonra istenilen bilgilerin alınması. Bunu yapmak için öncelikle bize gönderilen test.log dosyasını inceledim. Dosyada kayıtlarda bulunan ortak noktaları analiz ederek algoritma oluşturmaya başladım.

(Test.log dosyası yukardaki olup içinde birçok değer tutmaktadır.) Bizden istenenler ise;

en çok tıklanan url,

kaç farklı url olduğu,

en çok süre harcanan url ve süresi Bunun için önce urlleri ve harcanan süreleri almam gerektiğine karar verdim. Daha sonrasında bu dosyayı okutup satırları nasıl keseceğimi bulmak için araştırma yaptım. Bu amaçla bulduğum kod; METHOD_AS_RE = 'GET |POST |DELETE |HEAD |OPTIONS |PUT |\?| HTTP|\n' url=re.split(METHOD_AS_RE,line)[1] oldu. Bu kod ile satır satır okuduğum kodu split ile bölebiliyordum. Bu script ile urlleri alırken, timestring = re.split(' ~ |\n',line)[1] ile harcanan süreleri aldım.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

Öğleden sonra, yemek dönüşünde, ise bu verileri nasıl tutmam gerektiğini ve hangi veri tipinde tutmak gerektiğini araştırdım. Python'da bulunan demet,sözlük ve list veri tiplerini ve performanslarını inceledim. Küçük uygulamalar yaparak en verimli olanın sözlükler(dictionary) olduğunu buldum.

Sözlük ile yapabileceğime karar verdikten sonra, dosyadan okuduğum verileri parçalayıp attığım variableları nasıl sözlüğe decleration edeceğimi araştırdım. Bunun için buldugum ve kullandığım kodlar şu şekilde oldu, log[url] = log.get(url,0) + 1 if time>utime.get(url, 0): utime.update({url: time}) İlk satırda urlleri log sözlüğünün içersine key olarak urli, value olarak kullanılma sayısını, geçmişte atanıp atanmadığını, atanmadıysa default olarak 0, atandıysa eski kullanılma sayısına bir ekleyerek kaydettim. İkinci satırda bulunan if bloğu ile ise utime sözlüğü içersine key olarak url, value için ise harcanan süreyi, eski süresiyle karşılaştırarak büyük olanı kaydedecek şekilde yazdım. Bu şekilde dosyayı okuyup, içinden istediğim bilgileri kesip, bunları dictionary sözlüğüne kaydetmeyi yapmış oldum. Mesai saati bitişinde son kalan kısmı yani istenilen süreleri ve urlleri döndürmeyi yarın yapmak üzere işten çıktım.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 3

Tarih 24/07/2013

Gün 13

Yapılan İş Log Parser Assignment bitişi

Bugün dünden yarım kalan log parser assignment için araştırma yaparak güne başladım. Sabah geldiğimde eski kodla ilgili eksikleri belirledikten sonra yapmam gerekenler için çalışmaya başladım. Time’ları eski ve yeni gelenleri karşılaştırmak için kullandığım if bloğu hata verdi. Bunun nedenini araştırmak için ipyd yükledik ve üzerinde çalışmaya başladık. Test.log dosyasındaki verilerde bazı yerlerde – işareti olduğunu farkettik. Karşılaştırmayı yapabilmek için float veri tipine değiştirmek ve atamayı doğru yapabilmek için şu scripti yazdım, if not timestring=="-": time=float(timestring) else: time=None if time>utime.get(url, 0): utime.update({url: time}) Bu şekilde atamalar doğru yapılır duruma geldi. Sıra istedikleri çıktıları vermek için gerekli maximum ve length değerlerini dönen functionları bulmaya gelmişti. Bunun için stackoverflow ve daniweb sitelerine baktım. Bu işlemleri de yapabilmek için şu şekilde bir script yazdım, max_requested_url=max(log, key=log.get) max_requested_url_num=log[max_requested_url] most_time_consuming_url=max(utime, key=utime.get) most_time_consuming_url_time=utime[most_time_consuming_url] Bu şekilde istenen herşeyi yapmış ve assignment’ı bitirmiş oldum.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 3

Tarih 25/07/2013

Gün 14

Yapılan İş Instagram assignment başlangıcı

Bugün assignmentların son sorusu olan challenger assignment’a başladım. Bu assignment iki adımdan oluşuyor; 1)İlk olarak kullanıcıdan bir tane imaj dosyası alınmalı, devamında ise verilen aralık sayısına göre pixelleri eşit parçalara böldükten sonra, parçaları shuffle yaparak farklı bir dosya adı ile kaydetmesi. 2)İkinci adımda ise parçalanmış ve karışık şekilde yerleştirilmiş imaj parçalarının sağ ve sol yanlarından RGBA ayarlarını alarak yan yana shredleri karşılaştırıp, en uygun parçalarını bulduktan sonra yanyana getirerek (eski haline dönmüş oluyor) bu haliyle jpeg olarak kaydetmesi. Bugün bu assignment için internetteki kaynakları taradım. Araştırmalarım sonucunda ilk kullanılması gerekenin PIL modulü olduğunu öğrendim. Bu amaçla ilgili dökümantasyonları okuduktan sonra örnek birkaç küçük denemelik program yazdım. Daha sonrasında bunu kendi assignment’ım için yani shredder.py, için yazdım. Bu kod ile imaj dosyasını parçalamış ve random olarak parçaları karıştırırak kaydetmiş oldum. Gün boyu modülle ilgili kodların denediğim için ve ayrıca internetteki kodları incelediğim için unshredder.py’yi yani imaj dosyasının parçalanmış halini düzelten kodu yarına bırakmış oldum.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 3

Tarih 26/07/2013

Gün 15

Yapılan İş Kurtköy Yerleşkesine gidilerek oryantasyona

katılınması ve sistemler hakkında bilgi edinilmesi

Dün gelen şirket maillerinden bilgi olarak düşülen Markafoni Kurtköy lokasyonunda bulunan şubenin oryantasyonu yapıldı. Sabah 8.30’da servis ile Markafoni IT Akademi’de bulunan stajyerler olarak servise bindik ve saat 9.30 civarında Kurtköy lokasyonunda olduk. Ilk önce Lojistik Direktörü olan Mehmethan Yallagöz Bey’in, bizlere kısa bir tanıtımını ve bilgilendirmesini dinledik. Daha sonra oryantasyon devamında, Mal kabul, mal kabulden sonra malların sisteme girilişi, stoklara gidişleri ve bunların sisteme nasıl bir ERP sistemi ile giriş yapıldığı, paketleme ve kargolama işlemlerinde kullanılan sistemin, faturalandırmalarda IT ekibi tarafından kurulmuş sistemlerin ve yazılımların mantığı anlatıldı ve bu konular hakkında bilgi edinilmemiz sağlandı. Bunun devamında Markafoni bünyesinde bulunan diğer şirketler olan Zizigo ve Ennmoda şirketleri için de aynı işlem akışları, sistemleri ve şirketlerin lojistik, ERP tanıtımları yapıldı. Öğle yemeği arasında burada yemeğimizi yedikten sonra MissPera için de lojistik ve ERP sistemlerinin tanıtımı yapıldı. Daha sonra Gaziosmanpaşa Lokasyonunda bulunan şirket binasına geri döndük. Trafiğin yoğunluğu nedeniyle saat 15.40 sularında şirkete dönebildik. Cuma günleri saat 16.00 -17.00 aralıklarında şirketimizde ”Happy Hour” uygulaması olduğundan dün ilk aşamasına başladığım assignmentın devamını haftaya bırakmış oldum.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 4

Tarih 28/07/2013

Gün 16

Yapılan İş Unshredder başlangıcı, github kurulumu ve Queue

Server, RabbitMQ, Redis kavram toplantısı

4. ve son haftama girdiğim için bu haftaya planlama yaparak başladım. Son assignmentların yapılması ve debug edilmesi, ayrıca staj defterimin toparlanması en başlıca yapacaklarımın arasında oldu. Sabah planlama yaptıktan sonra son assginment olan instagram challenge unshredder programı nın birinci basamağı olan shredder programını geçen hafta yazmıştım ve ilgili modül için araştırma yapmıştım. Bu hafta ikinci kısmına başlamak için bugün unshredder için gerekli modülleri incelemeye başladım. Yine shredder’da yaptığım gibi örnek kodları inceledikten sonra kendi algoritmamı çıkardım. Daha sonrasında tek tek her basamağı deneyerek yapmaya çalıştım. Tüm gün boyunca bununla uğraştım, deneme-yanılma yaparak temiz kodlar için debugging yaptım.

Öğle yemeğinden sonra Back-End ekibinden Berkant Aydın'ın stajyerler için yapmış olduğu Queue Server, RabbitMQ, Redis kavramlarını, kullanımlarını, avantaj ve dezavantajlarını anlattığı eğitime katıldım. Toplantı bitiminden sonra anlatılan kavramlar hakkında küçük çapta araştırmalar yaptım.

Akşama doğru ekip liderlerimizin staj bitiminde kontrol edebilmeleri için kodları githuba eklememiz gerektiği söylendi. Bu amaçla github hesabı açarak, bilgisayara github kurulumunu da bash terminalden yaptım ve kodlarımı git hub repository'me terminal üzerinden yolladım. Github kullanımında daha etkin olabilmek için mesai bitimine kadar github repository’si ile denemeler yaptım.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 4

Tarih 29/07/2013

Gün 17

Yapılan İş Geliştirilen kodların PEP8 kontrollerinin yapılması

Bugün bizden istenen, staj boyunca, Markafoni IT Akademi süresince, yaptığımız tüm kodları ve geliştirdiğimiz bütün programları belirli standartlara uygunluğunu ölçmemizdi. Bu konuda en bilindik ve yaygın olan PEP8 ve Pylint kullanımlarını öğrenmemiz, daha sonrasında kendi assignmentlarımız kontrol etmemizdi. Bu konuda bize yardımcı olan Back-End ekibiyle Markafoni bünyesinde kullanılan standartları da incelemiş olduk. Bu kontroller ve standartlarda karakter stilinde, karakter arası boşluk, satır uzunluğu, tab kuralları, fonksiyon yazılımları en başta gelen kurallardı. Bunların yanı sıra PEP8 hangi sürümün olacağı hangi kuralların Markafoni’de geçerli olduğunu öğrendik. Bu aşamadan sonra geçmişte yazdığım tüm kodları tek tek geri dönerek kontrollerini yaptım ve düzelmesi gereken yerleri düzelttim. Günün sonunda Sublime içinde PEP8 kullanımının yararlarını gördük. En büyük özelliği her kaydetme işleminde hataları tek tek göstermesiydi. Pylint kullanarak da ayrıca düzeltmeleri kontrol ettim. Bundaki en büyük yarar ise developer’a herşeyi analiz ederek getirmesiydi. Neyi kaç kez yanlış yapmış, toplam hataya göre puanlama yapması ve daha birçok özellikle Pylint öne çıkan toollardan biri olmuş durumda. Gün sonuna kadar bu şekilde düzeltmeler yaptım. Daha sonrasında da github hesabıma bunların düzeltilmiş hallerini yükledim. Günün öğleden sonra yemek dönüşündeki kısmında ise bilgisayarıma virtual environment yükledim. Bu ilerdeki assignmentlarda işime yaramasının yanında eski assignmentımın içinde bulunan incelenmesi gereken konuydu. Gerekli yüklemeleri yaptıktan sonra yeni bir environment açmak için virtualenv virtual_adi şeklinde bas terminalini yazarak ilk virtualenv ’imi kurmuş oldum. Mesai bitimine kadar bununla ilgili gerekli bilgileri okuyarak, çeşitli denemeler yaptım.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 4

Tarih 30/07/2013

Gün 18

Yapılan İş Yeni gelen assignment için gerekli adımların

tamamlanması

Bugün yeni bir assignment'ın gelmesi ile güne başladık. Assignment'ın içeriğinde Python programlama dili ve Django ramework'u kullanarak oluşturulacak bir blog sitesi olduğunu öğrendikten sonra gerekli araştırmalara başladım . Bu assignment için gelen mailde bana yapmam gereken adımlar, bunun yanı sıra siteyi nasıl yönlendireceğim nasıl bir akışı olacağını hakkında bilgiler mevcuttu. Bu bilgiler doğrultusunda bilgisayarımda bulunan virtual environment içerisine Django 1.4.5 kurarak ilk adımı tamamlamış oldum. Bundan sonra Django dökümantasyonunda anlatıldığı gibi gerekli ayarları ve işlemleri yaptım. Python terminalinde Django’nun doğru yüklenip yüklenmediğini öğrenmek için birkaç deneme yaptım.

Bundan sonra gün içersinden gerekli tutorialları okumanın yanı sıra açıklamalara bağlı kalarak Django öğrenmeye başladım. Django'nun framework olarak sağladığı en büyük yarar, Python gibi bir dil ile daha etkili dinamik ve güçlü siteler yazmak. Django’nun her ayrıntısını, bana gönderilen mail içinde yazan siteden, dökümantasyonlarını okuyarak çalışma prensiplerini öğrendim. Django’nun en büyük özelliğinin open source olması ve geliştirilmeye açık olmasını öğrendim. Gün sonuna kadar tutorialları okumaya devam ettim.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 4

Tarih 01/08/2013

Gün 19

Yapılan İş Back-end toplantısı, Django tutorial okunması

Bugün, Markafoni Back-End Takım Lideri olan Akın Kök'ün stajyerler için yapmış olduğu oryantasyona katıldım. Bu oryantasyonda bizlere Django blog sitesi için gerekli yönlendirmeleri yaptı, bunun yanı sıra bir e-ticaret sitesinin olmazsa olmazları, Django hakkında bilinmeyenler üzerine konuşuldu. Markafoni back-end'de kullanılan tool'lar, programlar, yapılar ve kavramlar hakkında merak edilenleri cevapladı. Bunlardan bazıları; Pep8, form validation, GenericForeignKey, posting, caching, Redis, python PIL lib, code reviewing, git hub, msgid, ugettext, django messages framework, hata kodları, template'lerde link ve view oluşturulması ve kullanımı, tree structure ve query'leridir. Bunları çeşitli örneklerle somutlaştırarak bizleri bilgilendirdi.

Öğle yemeğinden sonra Django tutorial ve dökümantasyonlarını okuyarak, bunları çalıştım. İlerlediğimiz Djangobook sitesinin adımlarını tek tek deneyerek, yaparal ve üzerinde deneme-yanılma yoluyla ilerleme kaydettim.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

YAPILAN ÇALIŞMANIN AÇIKLANMASI

Hafta 4

Tarih 02/08/2013

Gün 20

Yapılan İş Kurumsal Proje Süreçleri & Profesyonel Çalışma

Yöntemleri ve Üretkenlik oryantasyonu ve son

belgelerin doldurulması

Bugün, Markafoni IT Akademi stajyerleri olarak saat 09.30'dan öğlen 12.30 a kadar

Hasan Yalçın Bey'in, “Kurumsal Proje Süreçleri & Profesyonel Çalışma Yöntemleri ve Üretkenlik” konulu oryantasyonu ve sunumuna katıldık. Bu eğitimin amacı ve içeriği, proje süreçlerinde bir web projesinin süreçleri, planlama, tasarım, geliştirme ve sürdürme konuları, bunların profesyonel iş dünyasında, şirketlerin departmanları ve çalışanları arasındaki iş bölümü ve ilerleyişi, efektif çalışma yöntemleri, üretkenliğin ve performansın kontrolü ve ayarlanmasıdır. Ayrıca eğitimin ikinci yarısında, Hasan Bey, görsel tasarımın önemi, temel ve ince prensiplerinden bahsetti. Profesyonel hayatında geliştirdiği projeler üzerinden örnekler vererek toplantıyı daha somut kıldı. Bu süreçte bize önerdiği kitaplar oldu. Bu kitapların birisi Tony Buzan’dı. Tony Buzan tekniği ile bir proje geliştirme aşaması olan brainstorming evresini hep beraber yaptık. Zorunlu stajım bugün bitmiş oldu fakat bizler Akademi bünyesi altında bir ay daha kalacağımızdan Djangobook ve Django assignmentıma devam etmek için gerekli dosyalarımı toparladım. Artık tamamen Django üzerine eğilerek gerekli çalışmaları yapacağım.

Öğrencinin Adı, Soyadı, İmzası :...Başak DEMİREL…..........................

İşyeri Stajyer Sorumlusunun Onayı (İmza, Mühür) : …………………………………….

T . C . K AD İ R HAS

Ü N İ V E RSİ T ESİ

Adres:

Kadir Has Üniversitesi, Mühendislik ve Doğa Bilimleri Fakültesi

Cibali Kampüsü Fatih Haraçcı Karamehmet Mah. Hisaralti Cad. 34230 Fatih/İSTANBUL

Tel: (0212) 533 65 32, dahili:1402

Fax: (0212) 533 57 53