Python’da for döngüsü

Python’da kullandığımız for yapısı C’de ya da Pascal’da kullandığımız yapıdan farklı. C’de ve Pascal’da for yapılarında akışın hangi koşulda devam edeceği, nasıl bir artım gösterceği belirtilerbilir. Python’da ise for belirtilen bir dizi üzerinde belirtilen sırada ilerler.

Pascal

Pascal kodu

for i := 1 to 10 do writeln('Iteration: ', i:1);

C Programming Language
C kodu

for  (expression1; 2; expression3)
 			 statement;


 			 or {block of statements}
expression1 initialises; expression2 is the terminate test;expression3 is the modifier (which may be more than justsimple increment);

Python
Python kodu

a = ['cat', 'window', 'defenestrate']
for x in a:
print x, len(x)

Bilişim Sektörü Maaşları

Computer Engineering

En yüksek, en düşük bilişim sektörü ücretleri (net YTL)

2006 (Kaynak: Chip Dergisi)

 

IT Koordinatörü : 5000 – 9500
Bilgi İşlem Müdürü : 2500 – 8500
Uzman Sistem Programcısı : 2500 – 5000
Veri Tabanı Yöneticisi : 1000 – 4500
Analist Programcısı : 2000 – 4000
Network Mühendisi : 2500 – 5000
Sistem Analisti : 1500 – 3000
Sistem Yöneticisi : 2000 – 4000
E-Learning Uzmanı : 2500 – 4000
E-Güvenlik Yöneticisi : 3000 – 5500
Yazılım Test Uzmanı : 1800 – 5000
Network Yöneticisi : 2000 – 5000
Web Tasarımcı : 1000 – 2000
Yazılım Mühendisi : 3000 – 4500
Art Direktör : 3500 – 5000
Sayfa Sekreteri : 1500 – 2500
Grafiker : 1500 – 2500
3D Animatör : 2000 – 4000

 

2005 (Kaynak: İnproda İnsan Kaynakları)

Yazılım uzmanı : 1200 – 5000
Sistem mühendisi : 1400 – 4500
Network mühendisi : 1500 – 4500
Veritabanı yöneticisi : 1200 – 5000
Proje yöneticisi : 3000 – 6500
Bilgiişlem müdürü : 3000 – 8000
Satış yöneticisi (+prim) : 1500 – 4000

Satış müdürü (+prim) : 2500 – 7000

Teknik destek : 750 -1500

Computer Technician

Grinder Test sınıfı

Test, Grinder için ilgili işlerin toplandığı bir birim işi ifade eder. Herbir Test biricik numaralarla kaydedilir ve açıklama içerebilir.

eftYapTest = Test (1, "EFT Girisi Testi")

eftYapTest testimizin adı. Yordamın ilk parametresi, Test’in biricik numarası ve ikinci parametrede Test’in açıklaması.

Betik kodlar (script) aynı test için pek çok farklı rapor tipi üretebilir, Grinder bu raporları ilgili test için bir arada toplar.

request = eftYapTest.wrap(HTTPRequest(url = "http://localhost:8080/Projem/index.do" ))

Bu iş wrap yordamını kullanıyoruz. Wrap ilgili testin yapılacak işlemin sonuçlarını toplar.

ByteInputStream üstünden veri okunması

Grinder için kullandığımız Jython script’lerinde ByteInputStream ile sonuçlanan istem (request) leri incelemek üzere aşağıdaki kodu kullanabilirsiniz. Bu kod aracılığıyla bayt akımındaki veriyi “string” veri yapısına aktarabilirsiniz.
struct kütüphanesini uygulamanıza ekleyin. Bu kütüphane bayt yapısını karakter yapısına dönüştürmenizi sağlayacak pack yordamını içeriyor.


from struct import *


...


i = 0
j = 0
i = bytes.read()
strOfRes = ''
while i > 0:

strOfRes = strOfRes + pack('B',i)
j = j + 1
i = bytes.read()

print strOfRes

Rational Rose RealTime Kurulumu

Bölümden aldığım kurulum kütüklerini kullandım.

Sıkıştırılmış kütükleri ilave bir işlem yapmadan açtım.

Setup.exe’yi çalıştırdım. IBM Support Assistant (ISA) ‘nin kullanılması, kurulum yardım belgelerinde tavsiye ediliyordu. Ama IBM sitesinin o etkin performansı yine beni yıldırdı ve indirmekten vazgeçtim. Aslında sunduğu iki özellik işime yarayacak özelliklerdi.

  • Sorun Bildirimi
  • Education RoadPath (Öğrenim Yol Haritası)

Windows 2000’e özgü olarak “user path” e Rational Common dizininin eklenmesi gerekiyor.

Bütün IBM Rational ürünleri aynı dizine indiriliyor. Daha önce Rational öğeleri kurmuş iseniz aynı dizin kullanılıyor. InstallShield’in sürümü güncelleniyor. Bölgesel Ayarlarda (Regional Settings) sorun çıkmaması için Locale’ i English‘e çevirdim. Deployment Method olarak CD Image üzerinden kurma seçeneğini seçtim.

Kurulum esnasında birçok kurulumda olduğu üzere tüm uygulamaları kapatmanız isteniyor. Bunu yapmadım. Tüm kurulum boyunca boş boş oturmamızı beklemelerini anlayamıyorum. Ama Antivirus programını kapattım. Antivirus programını kapatmış olmama kurulum esnasında yinede Antivirus kapatmam yönünde uyarı aldım. Arka planda çalışmaya devam ediyordu sanırım. Aldırmadan Install ile başladım. Ardından sistemi yeniden başlattım. Sistem başlatılırken ilk karşınıza çıkan, IBM’in lisans anahtar yöneticisi. Daha önceden lisans anahtarınızı hazırlamış iseniz, import licence file seçeneği ile lisans kütüğünüzü yükleyebilirsiniz. Bu kütük sizin sisteminize özel üretiliyor. Bu sebeple bir program aracılığıyla (hostinfo.exe), kullandığınız sisteme özgü bir kütük oluşturuluyor. Bu kütüğe bağlı olarak lisans elde ediyorsunuz. Ben öğrenim lisansı için hocamdan ilgili lisansı aldım. Lisans *.upd uzantılı bir kütük.

Artık Rational Rose RealTime kullanıma hazır.

Rational Rose RealTime

Grinder Kullanımı

Performans testi için güvenlik kontrollerinin (“authentication”) ardından, bir istemin sonucuna işleyip, buna bağlı olarak yeni bir istem oluşturmam gerekiyor. Örneğin yapmak istediğim işlem için sunucu tarafından rasgele seçilen kişisel güvenlik soruları var ve bunlara karşılık gelen cevaplarla ikinci istemi başlatmam gerekiyor.

Güvenlik soruları xml formatında geliyor.

Bunları işleyebilmek için Grinder Script Gallery içinden Web Service’lere yönelik olan örneği kullandım. Xml ayrıştırma (parse) için eklentiler kullanmamız gerekiyor. Bunun için ek ayarlar yapmamız gerekiyor. Her ne kadar örnekte basit adımlarla ifade edilmiş olsa da, gerçekleştirimde sıkıntılar çıkıyor.

To run this script you must install the standard Python xml module.
# Here's one way to do that:
# 1. Download and install Jython 2.1
# 2. Add the following line to grinder.properties (changing the path
appropriately):
# grinder.jvm.arguments=-Dpython.home=c:/jython-2.1
# 3. Add Jakarta Xerces (or one of the other parsers supported by
# the xml module) to your CLASSPATH.
#
# You may also need to obtain your own Amazon.com web service license
# and replace the script text with the
# license key, although currently that doesn't appear to be necessary.

Jython’unu kurmak için Jython Kurulumu

bu kütüğü indirin. Blog sitesi .class kütüklerini yüklemeye izin vermediği için uzantısını .jpeg yapıp yükledim. Uzantıyı .class yapıp, yüklemeyi gerçekleştirebilirsiniz. Komut satırından java Install ile kurulum uygulamasını başlatabilirsiniz. Kurulum da dizin değiştirememek gibi bir sorun var. Ben deki asıl dizinin D: ye ayarlı olması da soruna sebep olmuş olabilir.

Grinder’la birlikte kurduğunuz jython ile ilgili ayarlardan kurtulmanız gerekiyor. Ve grinder.properties yaptığınız, Python dizini işaret ettiğiniz jvm argümanı bir işe yaramıyor. Doğrudan Grinder’ın kendi kullanıcı arabiriminden, başlattığımız zaman bu argumanı java -Dpython.home=D:/jython -classpath %CLASSPATH% şeklinde olmasını beklerken java -classpath %CLASSPATH% oluyor.

Classpath’de Grinder kurulumunda eklediğimiz jython tanımlarını çıkartıp, jython.jar‘ı classpath’e ekleyince sıkıntı ortadan kalktı. Python eğer python dizini belirtilmemişse, jython.jar nerede ise o dizini ana dizin kabul ediyor.

Genç Beyinler Neden Daha Kolay Öğrenir?

NoronOxford Üniversitesi’de yapılan araştırmalar, genç beyinlerin neden daha kolay öğrendiğini anlamak üzerine. Araştırmacılar kalsiyum iyonları olarak adlandırılan moleküllerinin hareketleri ve elektrik aktiviteleri üzerine yoğunlaştı. Genç beyinlerde ‘sessiz sinaps’ lerin daha yaygın olduğuydu. Sessiz sinapsler (silent synapses) hücreler arasında kimsayal sinyaller aktarıldığında aktif olmayan sinapsler. Bu sinapsler yeni bir hafıza öğesi oluştuğunda çağrılmaktalar. Yaşlı beyinlerde ise sessiz sinapsler daha az sayıda. Böyle olunca yeni bir hafıza öğesinin yerleştirilmesi daha güç olmakta. Çünkü büyük bir kısmı kullanılmış durumda. (http://news.bbc.co.uk/2/hi/health/6172048.stm)

Bu şu anlama geliyor. Yaşlı bir beyin yeni bir hafıza kaydı yapacağı zaman, zaten kullanılmakta olan artık sessiz olmayan sinapslerden kullanmak zorunda. Aktif olanları dönüştürmeli, yeni bilgiyi mevcut yapıyla ilişkilendirmeli. Tabii ki bu daha zor.

Nasrettin Hoca

Bu Nasrettin Hoca’nın fıkrasını hatırlatıyor. Hocaya köylülerden biri küçük oğlunu getirip, okuma öğretmesini ister. Oğlunun hiç okuma bilmediğini söyler. Nasrettin Hoca bu öğretim karşılığında 2 akçe ister. Bir kaç gün sonra aynı adam büyük oğlunu getirir ve az buçuk okuma bilen bu oğluna da okuma öğretmesini ister. Nasrettin Hoca bu sefer 4 akçe ister. Buna şaşan köylü :

-Hoca, hoca hiçbirşey bilmeyen oğlum için 2 akçe isterken, birşeyler bilen oğlum için 4 akçe istersin. Bu nasıl akıl.

der.

Bunun üzerine hoca:

-Hiçbir şey bilmeyene doğrudan öğreteceğim, ama birşeyler bilene ilk önce önceden öğrendiklerini unutturmam gerektirecek .

der.

🙂

JMeter, Grinder tercihi

Uygulama testi için açık kaynaklı performans araçlarından birini kullanacağım. Başat iki tercihimiz var: JMeter ve Grinder.

Değerlendirmelere göre;

Grinder: Uzun vadede, karmaşık testler için daha uygun. Jython betik dili kullanarak tüm ihtiyaçlarınıza cevap sunma yetisine sahip. Basit bir arayüzü var.

JMeter: İşlevleri görsel arayüzlerle sağlaması geliştirimin hızlı ve anlaşılabilir kılıyor.

Ana yaklaşım olarak farkları basit anlamda böyle ifade edilebilir. Ama test ortamında Grinder birden çok makinede çalışabilecek şekilde tasarlanabilirken, JMeter yerel makineye yönelik. Bu verilerin ışığında başlangıç için daha çok efor gerektirse de, Grinder ile çalışmanın daha iyi bir tecrübe olacağını ve uzun vadede daha faydalı olacağını düşünüyorum.

Cevap: Grinder.

Yük ve Performans Karşılaştırma

Grinder tecrübeleri

İskandinav ve Eski Doğu Bloğu Ülkeleri

(Bu yazı Erkan’ın yazısı üzerine yazılmıştır. http://www.aerkankoca.blogspot.com/ )

Bosluk hissinin ortak bir anlam karşılığı olup olmadığını bilmiyorum. En azından sonuçları açısından düşünürsek, insanı intihara sürükleyebilecek bir duygu olduğu kanısına vardım. İskandinav ülkelerinin intihar istatistikleri Erkan’ın söylediklerini doğruluyor.

http://wwwalt.uni-wuerzburg.de/IASR/suicide-table1.htm
http://www.who.int/mental_health/prevention/suicide_rates/en/index.html
(Değerler 100.000’de)
SWEDEN yıl:2001 Erkek:18.9 Kadın:8.1
NORWAY yıl:2002 Erkek:16.1 Kadın:5.8
DENMARK yıl:00 Erkek:20.2 Kadın:7.2

Doğru bir çıkış noktası mı bilmiyorum. Ama değerler doğu kültürüne göre çok ileri. Diğer erkeklerin oranın az olması çelişmiyor. Ama verileri bütünsel olarak incelediğimizde tüm dünya genelinde bayanların intihar olaylarının erkeklere göre 3te bir oranında olduğunu görüyoruz.

Ama diğer yandan İskandinav ülkelerini gölgede bırakan ülkeler var. Eski doğu bloğu ülkeleri. Hepsinin ortak özelliği 100000’de 40’lı hatta çok daha fazla oranlara sahip olmaları.

BELARUS yıl:2003 Erkek:63.3 Kadın:10.3
ESTONIA yıl:2002 Erkek:47.7 Kadın:9.8
RUSSIAN FEDERATION yıl:2002 Erkek:69.3 Kadın:11.9

İskandinavya’da ne yok bilmiyorum ama Eski Doğu Bloğu’ndan daha da YOK birşey olduğu kesin.

Stres Beynimize Ne Yapar?

Kronik stres altındaki kişi kendi beyniyle savaşmakta. Bu savaş beyin açısından yaralanmalarla sonuçlanıyor. Fareler üzerinde yapılan araştırmalar, stres altında tutulan farelerle, normal şartlar altındaki farelerin öğrenme yetenekleri üzerine ulaştığı bulguları yayınladı. Farelerin saklanmış yemi bulma, yemi başka bir kokuyla ilişkilendirme ve son olarak yemi daha öncekinden farklı bir kokuyla ilişkilendirmek bir önceki koku-yem ilişkisini unutmak. Bu iki aşamada stres altındaki farelerle, kontrol grubu fareler arasında fark yok iken, stres altındaki fareler son aşamayı başaramadı.

Farelerin ön lobundaki nöronlar incelendiğinde, stres altındaki farelerin nöronlarının daha kısa ve dallanmalarının daha kısıtlı olduğu gözlendi.

Normal nöron ve stres sonrası noronlar
http://newswire.rockefeller.edu/?page=engine&id=545