Mathematics in IronPython

Perşembe, 11 Mart 2010 14:19 by ikivanc
In this article we will see Numeric Funtions and calculations in IronPython

Here is 4 basic mathematical operators in IronPython ;

Addition         +
Substraction    -
Division          /
Multiplication   *


>>> 2+2     #we can use this expressions same as math in daily life
 4
 
 >>> 5-6
 -1
 
 >>> 4-3
 1
 
 >>> 52*9
 468
 
 >>> 12*-1
 -12
 
 >>> 4/3  
 1                  #After division result returns as an integer
 
 >>> x=2.1
 >>> y=3.1
 >>> z=x/y
 >>> z=float(z)     #if we set z as a float, result returns as a float.
 >>> print z
 0.677419354839
 >>> z=int(z)    #if we set z as an integer, result returns as a integer.
 >>> print z
 0
 
 >>> x=3
 >>> y=8
 >>> x=str(x)   #Let's see what happens when add converted intergers as strings
 >>> y=str(y)
 print x+y
 38 

Bacause of no pre-declaration, division restult retuns defaultly as an integer. We can convert this result to other types.

Power of a number
This method retuns x to the power of y the value of xy.
 
 4^3 = >>> 4**3
 64 
 
 4^(2^6) = 4**2**6 
 >>> 4**2**2
 256 
 

Complex Numbers

This gives us the form of x + yj ,real and imaginery numbers. "j" represents the square of (-1)
 
 >>> (4+4j)+(2-5j)
 (6-1j) 
 >>> (4+4j)/(2-5j)
 (-0.41379310344827586+0.96551724137931039j)
 
 >>> (4+4j)*(2-5j)
 (28-12j) 

We can use 4 basic mathematical operations with complex numbers.

Other Common Numeric Funtions
 >>> import math        # we imported Math library
 >>> math.pi           # we call PI in Math library
 3.14159265359 

Now we can use math library of python or math library of .NET with IronPython.


Abs(), Pow() Functions
Abs function returns absolute value of negative numbers. Pow function returns the value x to the power of y (xy)

 >>> abs(-42), 2**4, pow(2, 4)
 (42, 16, 16) 

PDF version of this article >> 9 - Mathematics in IronPython

If you have any questions or discover any errors / typos please let me know ik@ibrahimkivanc.com
 
All The Best! 

Püf Noktası #40 - IronPython Yeni Silverlight Proje

Salı, 9 Şubat 2010 14:38 by ikivanc
IronPython ile silverlight proje geliştirirken yeni proje oluşturmanın yolu ya "templates" klasöründeki python klasörünü kopyalayıp onun üzerinden projeye devam etmek ya da komut satırı ile aşağıdaki kodu girip otomatik olarak bunu oluşturmak.

Bunun için komut satırını script klasörüne getirip daha sonra aşağıdaki

sl python uygulama_adi

komutunu vermek.


Daha sonra işlem durumu size bildirilecek, yukarıdaki örnekte de görüldüğü gibi komutun sonucunda proje365 isminde bir proje klasörü oluşturulmuş oldu. Bu aşamadan sonra da proje geliştirmeye VS2010 içerisinden rahatlıkla devam edebilirsiniz.

Kolay gelsin.

Püf Noktası #39 - IronPython Chiron Here Kullanımı

Pazar, 7 Şubat 2010 15:06 by ikivanc
Bir önceki püf noktamızdaki dosyamızı sistemimize kaydettikten sonra klasör tıklayarak mouse'umuzun sağ tuşuna otomatik olarak "Chiron'ı Başlat" ve "Buraya XAP Oluştur" seçenekleri gelmektedir.


Projemizin içerisindeki app klasörüne sağ tıklayarak "Buraya XAP Oluştur" diyerek projemizin kullanacağı xap dosyasını oluşturabiliriz.

Bu xap dosyasını oluşturduktan sonra projenin klasörüne sağ tıklyarak Chiron'ı Başlat dediğimizde web server'ı oluşturarak localdan bir port açmakta ve bu port üzerinden erişebilmekteyiz.

Daha sonra da o localhost'U portu ile beraber internet browser'ımıza yazdığımız takdirde sayfamız çalışır bir halde karşımıza gelecek.

Bu işlemlerle birlikte IronPython ile Silverlight uygulamamız tamamlanmış oldu. Artık bu dosyaları ftp'mize koyarak sunabilirz.

Kolay gelsin.

Püf Noktası #38 - IronPython Chiron Here

Pazar, 7 Şubat 2010 14:56 by ikivanc
"Chiron Here" reg kayıt dosyası, IronPython ile silverlight uygulama geliştirme için çok büyük yardımcımız olacak. 

Bunu sistemimize kaydettiğimiz takdirde klasörlere sağ tıkladığımız zaman Chiron ile yapacağımız web server işlemleri ve xap oluşturma işlemlerini yapabilmekteyiz.

Aşağıda kayıt dosyası mevcut

chiron-here.reg (570,00 bytes)

Kolay gelsin.

Püf Noktası #37 - IronPython Console'u Kapatma

Cuma, 5 Şubat 2010 16:29 by ikivanc
IronPython silverlight uygulamalarında, IronPython sürümü ile gelen taslak projede alttaraftaki console ekranını kapatmak için index.html dosyasında konsol özelliğini kapatmamız gerekir.

Bunun için aşağıdaki orjinal kodu

<param name="initParams" value="reportErrors=errorLocation, console=true" /> 

Console'u false yapılmış ile değiştirmemiz gerekir.

<param name="initParams" value="reportErrors=errorLocation, console=false" /> 

Kolay gelsin.

Püf Noktası #36 - IronPython Silverlight XAML Tasarımı

Perşembe, 4 Şubat 2010 18:01 by ikivanc
IronPython Silverlight uygulamalarında sorunlardan birisi de xaml tarafında kod yazma sorunu, bunun için püf noktası olarak, nasıl kolay bir şekilde tasarım yapıp bunu IronPython projemizde gösteriririz buna bir göz atalım.

IronPython'ın xaml kodlarını düzenlemek için ben Blend içerisinde tasarımımı yaparak, bu tasarımın xaml kodunu, IronPython tarafına yapıştırmak.



Daha sonra da py uzantılı IronPython dosyasından da bu xaml koduna erişerek daha rahat ve görsel bir şekilde geliştirmemize devam edebiliriz.

Kolay gelsin.

Püf Noktası #35 - IronPython Silverlight Proje Yapısı

Perşembe, 4 Şubat 2010 17:10 by ikivanc
IronPython ile Silverlight geliştirmesine bir önceki püf noktamızda değindik, şimdi de isterseniz hangi parçaları mevcut bunlara bir göz atalım.

app klasörünün içerisinde "app.xaml" ve "app.py" klasörleri. Silverlight'ın ara yüzü tarafında xaml dosyası ve kod tarafında da py uzantılı IronPython dosyası yer almakta.

Default olarak gelen kodlara bakacak olursak

app.xaml

<UserControl x:Class="System.Windows.Controls.UserControl"
  xmlns="http://schemas.microsoft.com/client/2007"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
 
  <Grid x:Name="layout_root" Background="White">
    <TextBlock x:Name="Message" FontSize="30" />
  </Grid>
 
</UserControl>

app.py


from System.Windows import Application
from System.Windows.Controls import UserControl
 
class App:
  def __init__(self):
    root = Application.Current.LoadRootVisual(UserControl(), "app.xaml")
    root.Message.Text = "Welcome to Python and Silverlight!"
App()


Görüldüğü gibi xaml tarafı bizim C# ve VB projelerimizden alışık olduğumuz arayüz tasarımı olan taraftır, IronPython dosyasında da bu xaml dosyasını kullanarak ekrana bir mesaj yazdırmaktadır. Burada dikkat etmemiz gereken her seferinde xaml elementlerine "root." diyerek erişebiliyoruz.

IronPython tarafında intellisense olmadığı için, kodları otomatik olarak tamamlatamıyoruz, şimdilik biraz zahmetli geliştirme. VS2010 için güzel eklentiler gelecek ve IronPython programı geliştirme daha pratik bir halde olacak. 

Kolay gelsin.

Püf Noktası #34 - IronPython VS2010 ile Silverlight

Çarşamba, 3 Şubat 2010 14:53 by ikivanc
IronPython ile silverlight uygulama daha rahat uygulama geliştirmek için Silverlight klasörünün içeriğini kopyalayarak "C:\" sürücümüzde konumlandıralım ve projelerimizi Silverlight adındaki klasörde burada geliştirelim.

Bu klasörde bin klasörümüz ve script klasörümüz yer alacak, kendimiz de oluşturacağımız projeler için projects isminde bir klasör oluşturalım.

"scripts" klasörümüzün içerisinde "templates" klasöründe python adında örnek ironpython projesi mevcut durumda. Bu projemiz bizim başlangıç projemiz olacak her zaman. Bunu projects içine kopyalayalım ve VS2010 içerisinde açalım.

Bunun için File > Open > Web Site diyerek "C:\Silverlight\projects\python" dizinimizden projem  izi Visual Studio 2010 içerisine alalım. Solution Explorer'da projemiz aşağıdaki dosyalara sahip olacaktır.


Daha sonra Web Site > Start Options'tan aşağıdaki ayarlar yaparak Visual Studio içerisinde IronPython ile çalışan silverlight uygulamaları geliştirebiliriz. Ayar olarak Chiron'ın bulunduğu yeri, çalışması için "/b" yani web sayfasında görüntüleme komutu ve projenin bulunduğu klasörü belirtmekteyiz.

 
Yukarıdaki ayarları yaptıktan projeyi çalıştırdığımızda aşağıdaki gibi örnek proje çalışacak aşağıdaki gibi olacaktır. Sayfanın altında python interpreter'ı da hali hazırda gelmektedir.


Visual Studio bu derleme işlemini arka planda Chiron'a yaptırmakta bunu da konsol ekranında görebilmekteyiz.  


Özet olarak Visual Studio bu geliştirme işlemini Chiron'a otomatik olarak yaptırarak bizi büyük bir iş yükünden korumakta. IronPython ile Silverlight uygulamalarımızı artık rahatlıkla geliştirebiliriz.

Kolay gelsin.

Püf Noktası #33 - IronPython Silverlight

Salı, 2 Şubat 2010 00:00 by ikivanc
IronPython ile daha önceden Silverlight uygulamalar geliştirmek için AgDLR isminde codeplexte yürütülen açık kaynak bir proje ile birlikte yapılmaktaydı. Artık IronPython 2.6 versiyonuyla birlikte stabil bir şekilde Silverlight geliştirme araçları gelmekte. Daha önceden ayrı olan bu araçların artık bir arada gelmesi, Silverlight'ın IronPython projesi üzerinde önemini göstermekte.


Peki Chiron Nedir?
Chrion DLR(Dynamic Language Runtime) tabanlı diller için Silverlight geliştirme aracıdır. XAP dosyası oluşturur ve web server gibi çalışır. XAML kodlarının altında IronPython kodlarının çalıştığı silverlight uygulamalarını browserde çalışır hale getirir.

Chiron geliştirdiğimiz projelerde XAP dosyası oluşturur ve localhostta server’inde uygulamamızı çalıştırmamıza yardımcı olur.

Chiron IronPython 2.6 ile beraber gelmekte Bin klasörünün içersindedir. Bin ve script klasörlerinde, bin de geliştirme için gerekli olan araç ve dll'ler mevcut. Chiron exe halinde bulunur ve cmd ile birlikte çalışır.

Chiron’un tüm özelliklerine onu aşağıdaki gibi çağırdığımızda erişebiliriz.

chiron_cmd

Bu püf noktasında sadece Chiron nedir buna değindik, isterseniz sadece konsol'da Silverlight uygulamaları için xap paketi oluşturabilir, IronPython uygulamalarını çalıştırabilir veya çeşitli düzenlemeler yapabilirsiniz. Bir sonraki püf noktasında daha kolay yol olan Visual Studio içerisindeki kullanımından bahsedeceğim için çok fazla konsol tarafına değinmek istemiyorum. Konsol tarafında eskiden geliştirme nasıl yapılırdı detaylı bir şekilde göz atmak için buraya bakabilirsiniz.

Kolay gelsin.

Püf Noktası #32 - IronPython Interaktif Console

Cuma, 29 Ocak 2010 20:00 by ikivanc
IronPython Interaktif Console, (Python)IronPython'ın temel özelliklerini uygulayıp, projede araştırma ve geliştirme işlemlerinin nasıl yapıldığını öğrenmemize yarayan geliştirme ortamıdır.



IronPython Console, live şekilde anında geliştirme yaparken aynı zamanda da var olan modülleri inceleyerek öğrenmemizi sağlar. Bu şekilde Dynamic bir dil olmasının güzelliklerini rahatlıkla görebiliriz . Bu özellikleri sayesinde yeni başlayanlar bu dile hızlı bir şekilde alışır ve zengin .NET kütüphanelerinin nasıl kullanıldığını görmelerini sağlar. IronPython Console ile COM interaktif uygulamalar,WPF,XNA, C#’ı IronPython’a gömme gibi çeşitli uygulamaları rahatlıkla önizleyerek kodlamamızı sağlar.

Bu console içerisinde direkt olarak uygulama geliştirebilir ve test edebiliriz.

Kolay gelsin.