<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>gurcanozturk.com &#187; Perl</title>
	<atom:link href="http://gurcanozturk.com/category/perl/feed/" rel="self" type="application/rss+xml" />
	<link>http://gurcanozturk.com</link>
	<description>başka türlü birşey benim istediğim</description>
	<lastBuildDate>Fri, 20 Apr 2012 14:09:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Perl / SOAP ile Citrix Netscaler policy kontrolü</title>
		<link>http://gurcanozturk.com/2011/01/perl-soap-ile-citrix-netscaler-policy-kontrolu/</link>
		<comments>http://gurcanozturk.com/2011/01/perl-soap-ile-citrix-netscaler-policy-kontrolu/#comments</comments>
		<pubDate>Sat, 29 Jan 2011 11:16:06 +0000</pubDate>
		<dc:creator>gurcan</dc:creator>
				<category><![CDATA[NetScaler]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[netscaler]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[policy]]></category>
		<category><![CDATA[soap]]></category>

		<guid isPermaLink="false">http://gurcanozturk.com/?p=131</guid>
		<description><![CDATA[Eğer siz de load-balancing için Citrix NetScaler kullanıyorsanız cihazın yapılandırma kolaylığını ve gücünü görmüş olmalısınız. Benim en sevdiğim özelliklerinden biri de SOAP arayüzü ile XML API kullanarak yönetilebilmesi ve kontrol edilebilmesi. Uzun zamandır denemeyi istediğim şeylerden biri de PERL veya PHP kullanarak SOAP arayüzü ile her hafta yaptığımız rutin bir cache operasyonunu otomatik hale getirmekti. [...]]]></description>
			<content:encoded><![CDATA[<p>Eğer siz de load-balancing için Citrix NetScaler kullanıyorsanız cihazın yapılandırma kolaylığını ve gücünü görmüş olmalısınız. Benim en sevdiğim özelliklerinden biri de SOAP arayüzü ile XML API kullanarak yönetilebilmesi ve kontrol edilebilmesi.</p>
<p>Uzun zamandır denemeyi istediğim şeylerden biri de PERL veya PHP kullanarak SOAP arayüzü ile her hafta yaptığımız rutin bir cache operasyonunu otomatik hale getirmekti. Kısaca işlem, önceden hazırlanmış bir cache policy&#8217;yi otomatik olarak bir vserver&#8217;a bağlamak. (Ingilizcesi çok kolay da, Türkçe anlatması problem <img src='http://gurcanozturk.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )<br />
<span id="more-131"></span><br />
Netscaler SOAP arayüzüne erişmek için sadece NetScaler WDSL&#8217;e ve SOAP arayüzü adresine ihtiyacınız var. SOAP arayüzü adresine http://[netscaler-ip]/soap/ şeklinde istek gönderilebiliyor. </p>
<p>Otomatikleştirme scriptine gelince, aşağıdaki perl scripti işinizi görecektir. Scriptin cron ile çalışmasını ayarlayarak her şeyi otomatik hale getirmiş olursunuz. SOAP bağlantısı için gerekli perl modüllerini <a href="http://search.cpan.org">http://search.cpan.org</a> adresinden bulabilirsiniz.</p>
<blockquote><p>#!/usr/bin/perl</p>
<p># SOAP ile baglanti icin gerekli perl modulleri.<br />
use HTTP::Cookies;<br />
use SOAP::Lite;<br />
import SOAP::Data &#8216;name&#8217;;</p>
<p># Ayarlar<br />
my $option   = shift;<br />
my $NS       = &#8220;10.10.1.1&#8243;;<br />
my $username = &#8220;nsoperator&#8221;;<br />
my $password = &#8220;operator_password&#8221;;<br />
my $webhost  = &#8220;web.example.org&#8221;;<br />
my $policy   = &#8220;WEB-CACHE&#8221;;<br />
my $priority = &#8220;100&#8243;;<br />
my $gotoexp  = &#8220;END&#8221;;<br />
my $type     = &#8220;RESPONSE&#8221;;</p>
<p>my $cookies = HTTP::Cookies->new(ignore_discard => 1, hide_cookie2 => 1);<br />
my $soap = SOAP::Lite -> proxy(&#8220;http://$NS/soap&#8221;, cookie_jar=>$cookies);<br />
my $result = $soap->login( name(&#8216;username&#8217;=>$username), name(&#8216;password&#8217;=>$password) ) ->result;</p>
<p>if ($option  eq &#8216;BIND&#8217;)<br />
{<br />
  $result  = $soap->bindlbvserver_policy(name(&#8216;name&#8217; => $webhost) , name(&#8216;policyname&#8217; => $policy) , name(&#8216;priority&#8217; => $priority) , name(&#8216;gotopriorityexpress<br />
ion&#8217; => $gotoexp), name(&#8216;type&#8217; => $type) )  ->result;<br />
  $operand = &#8220;enabled&#8221;;<br />
}<br />
elsif ($option eq &#8220;UNBIND&#8221;)<br />
{<br />
  $result  = $soap->unbindlbvserver_policy(name(&#8216;name&#8217; => $webhost) , name(&#8216;policyname&#8217; => $policy) ,  name(&#8216;type&#8217; => $type) )  ->result;<br />
  $operand = &#8220;disabled&#8221;;<br />
}<br />
else<br />
{<br />
 # Cache isleminin tipini secin, bind/unbind ?<br />
 print &#8220;Usage : nsmon [ BIND | UNBIND ]n&#8221;;<br />
 exit;<br />
}<br />
$message = $result->{&#8216;message&#8217;};</p>
<p># Policy atama islemi basarili degilse admine mail gonder.<br />
if ($message ne &#8220;Done&#8221;)<br />
{<br />
 print &#8220;Hmmm&#8230;i sense a disturbance in the force&#8221;;<br />
 system(&#8220;mail -s CACHE_BIND_OPERATION_ERROR admin@example.org < /tmp/error.txt");<br />
}<br />
$result = $soap->logout()->result;</p>
</blockquote>
<p>Crontab &#8216;a eklenecek ayarlama; her perşembe saat 19:00 da cache ayarını aktif et, her perşembe saat 23:00&#8242; da cache ayarını deaktif et.</p>
<blockquote><p># WEB-CACHE operation<br />
00 19 * * 4 /usr/bin/perl /usr/local/bin/web_cache_operation.pl BIND<br />
00 23 * * 4 /usr/bin/perl /usr/local/bin/web_cache_operation.pl UNBIND</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://gurcanozturk.com/2011/01/perl-soap-ile-citrix-netscaler-policy-kontrolu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Otomatik doğumgünü kutlamak</title>
		<link>http://gurcanozturk.com/2007/03/otomatik-dogumgunu-kutlamak/</link>
		<comments>http://gurcanozturk.com/2007/03/otomatik-dogumgunu-kutlamak/#comments</comments>
		<pubDate>Fri, 23 Mar 2007 22:33:20 +0000</pubDate>
		<dc:creator>gurcan</dc:creator>
				<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://gurcanozturk.com/2007/03/24/otomatik-dogumgunu-kutlamak/</guid>
		<description><![CDATA[Unutkan biri misiniz? Akrabalarınızın, sevdiklerinizin, arkadaşlarınızın doğum gününü hep unutuyor musunuz? Ben unuturum genelde. Birkaç yıl önce Perl ile yazdığım ve mySQL&#8217;deki doğumgünü bilgilerini alan bir scriptle bu dertten az da olsa kurtuldum. Size de yarayabilir, deneyin. Scriptin çalışması için Perl-DBI modülü gerekiyor. Ancak Perl bilginiz varsa mySQL dışında bir veritabanı ya da belirli bir [...]]]></description>
			<content:encoded><![CDATA[<p> Unutkan biri misiniz? Akrabalarınızın, sevdiklerinizin, arkadaşlarınızın doğum gününü hep unutuyor musunuz? Ben unuturum genelde. Birkaç yıl önce Perl ile yazdığım ve mySQL&#8217;deki doğumgünü bilgilerini alan bir scriptle bu dertten az da olsa kurtuldum. Size de yarayabilir, deneyin. Scriptin çalışması için Perl-DBI modülü gerekiyor. Ancak Perl bilginiz varsa mySQL dışında bir veritabanı  ya da belirli bir formattaki metin dosyası kullanabilirsiniz.<br />
<span id="more-16"></span><br />
mySQL tablomuzun içeriği/görünümü basitçe aşağıdaki gibi olmalıdır.</p>
<blockquote><p>
mysql> select isim,email,dogumgunu from rehber limit 1;<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+<br />
| isim                | email                  | dogumgunu |<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+<br />
| İsim CİSİM       |isim@cisim.com.tr  | 10/02/1977 |<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;+<br />
1 row in set (0.00 sec)
</p></blockquote>
<p>Kutlama scriptimiz de aşağıdaki gibi olmalıdır.</p>
<blockquote><p>
# Otomatik dogum gunu kutlama scripti.<br />
# A. Gurcan OZTURK</p>
<p># Kutlama scriptimizin ayarlarını yapalım.<br />
my $owner =&#8221; A. Gurcan Ozturk&#8221;;                  # Epostada görünecek isim<br />
my $mail_prog = &#8220;/usr/sbin/sendmail&#8221;;            # Sendmail binary<br />
my $from = &#8220;gurcan@gurcanozturk.com&#8221;;      # Eposta adresi<br />
my $subject = &#8220;Dogum gununuz kutlu olsun.&#8221;; # Eposta konusu</p>
<p>($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();<br />
$mon=$mon+1;<br />
$len1= length($mon);<br />
$len2= length($mday);</p>
<p>if ($len1 < 2 ) { $mon ="0"."$mon";}<br />
if ($len2 < 2 ) { $mday ="0"."$mday";}</p>
<p>my $gun="$mday/$mon";</p>
<p>use DBI;<br />
use strict;<br />
my $dbh = DBI->connect(&#8216;DBI:mysql:database_ismi:localhost&#8217;,'mysql_kullanici_adi&#8217;,'mysql_parolasi&#8217;,{ RaiseError => 1});<br />
if (!$dbh) { die &#8220;Cannot connect to database&#8221; }</p>
<p>my $query = &#8220;SELECT isim,email FROM rehber WHERE dogumgunu=&#8217;$gun%&#8217;&#8221;;</p>
<p>my $sth = $dbh->prepare($query);<br />
if (!$sth) { die &#8220;Illegal query: $query&#8221; };<br />
$sth ->execute;<br />
while (my @row = $sth->fetchrow_array) {</p>
<p>        if ($row[1] ne &#8220;&#8221;)<br />
        {<br />
        open (MAIL, &#8220;|$mail_prog -t&#8221;);<br />
        print MAIL &#8220;From: $owner <$from>n&#8221;;<br />
        print MAIL &#8220;To: $row[0] <$row[1]>n&#8221;;<br />
        print MAIL &#8220;Cc: $owner <$from>n&#8221;;<br />
        print MAIL &#8220;Subject: $subjectn&#8221;;<br />
        print MAIL &#8220;nn&#8221;;<br />
        print MAIL &#8221; Merhaba $row[0] ,n &#8220;;<br />
        print MAIL &#8220;Dogum gunun kutlu olsun,iyi ki dogmussun.n&#8221;;<br />
        print MAIL &#8221; Daha nice saglikli ve mutlu yillar dileklerimle&#8230; nn$ownern&#8221;;<br />
        print MAIL &#8221; http://www.gurcanozturk.comnn&#8221; ;<br />
        close(MAIL);<br />
        }<br />
}<br />
$sth->finish;
</p></blockquote>
<p>Scriptimiz hazır, birkaç test yaptıktan sonra scripti cron yardımıyla her gün bir kez çalıştırarak, o gün doğmuş arkadaşlarınızı otomatik olarak kutlayabilir, unutulmadıklarını gösterebilirsiniz. Cron sistemine aşağıdaki gibi bir satır ekleyin.</p>
<blockquote><p>00 01 * * * /home/gurcanozturk/kutlama.pl</p></blockquote>
<p><em>Not: Yılbaşında kutlama mesajını değiştirmeyi unutmayın <img src='http://gurcanozturk.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em></p>
]]></content:encoded>
			<wfw:commentRss>http://gurcanozturk.com/2007/03/otomatik-dogumgunu-kutlamak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mpg123 ve last.fm</title>
		<link>http://gurcanozturk.com/2007/03/mpg123-ve-lastfm/</link>
		<comments>http://gurcanozturk.com/2007/03/mpg123-ve-lastfm/#comments</comments>
		<pubDate>Fri, 23 Mar 2007 22:17:02 +0000</pubDate>
		<dc:creator>gurcan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[last.fm]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[mpg123]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://gurcanozturk.com/2007/03/24/mpg123-ve-lastfm/</guid>
		<description><![CDATA[Last.FM dünya üzerinde farklı müzik zevkleri olan dinleyicilerin buluştuğu, birbirlerinin beğenilerini görebildikleri ve dinleyebildikleri bir internet sitesi. Siteye üye olarak arkadaşlarınızla ya da sizinle aynı zevklere sahip kullanıcılarla haberleşmek, yazışmak ve onların seçtikleri müzikleri radyo gibi dinleyebilirsiniz. last.fm &#8216;in kendi müzik çalarını kullanarak veya bilgisayarınızdaki mp3 çalar programınıza bu desteği vererek o an dinlemekte olduğunuz [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://last.fm">Last.FM</a> dünya üzerinde farklı müzik zevkleri olan dinleyicilerin buluştuğu, birbirlerinin beğenilerini görebildikleri ve dinleyebildikleri bir internet sitesi. Siteye üye olarak arkadaşlarınızla ya da sizinle aynı zevklere sahip kullanıcılarla haberleşmek, yazışmak ve onların seçtikleri müzikleri radyo gibi dinleyebilirsiniz. last.fm &#8216;in kendi müzik çalarını kullanarak veya bilgisayarınızdaki mp3 çalar programınıza bu desteği vererek o an dinlemekte olduğunuz mp3 dosyasına ait artist ve isim bilgilerinin last.fm sitesinde o an görünmesini sağlayabilirsiniz.<br />
<span id="more-14"></span><br />
Linuxta last.fm &#8216;in scrobbling denen bu özelliğini kullanan birçok mp3 çalar program var. <a href="http://amarok.kde.org">amaroK</a>, <a href="http://www.banshee-project.org/">Banshee</a>, <a href="http://www.gnome.org/projects/rhythmbox/">Rhythmbox</a> bu programlardan bazıları. Ancak linuxta konsolda çalışmayı seviyorsanız veya konsolda çalışmanız gereken bir ortamdaysanız grafik arayüzlü mp3 programlarını kullanamıyorsunuz. Linux dünyasında konsolda mp3 dinlemek için kullanılan en gözde programlardan biri <a href="http://www.mpg123.org">mpg123</a>. mpg123 programının scrobbling desteği yok, ancak <a href="http://backpan.perl.org/authors/id/J/JW/JWHEELER/mp3play-1.00">bu adresteki</a> Perl scripti ile bu desteği vermek mümkün.  </p>
]]></content:encoded>
			<wfw:commentRss>http://gurcanozturk.com/2007/03/mpg123-ve-lastfm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perl ile MP3 Server</title>
		<link>http://gurcanozturk.com/2007/03/perl-ile-mp3-server/</link>
		<comments>http://gurcanozturk.com/2007/03/perl-ile-mp3-server/#comments</comments>
		<pubDate>Thu, 22 Mar 2007 18:12:53 +0000</pubDate>
		<dc:creator>gurcan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://gurcanozturk.com/2007/03/22/perl-ile-mp3-server/</guid>
		<description><![CDATA[İzmir &#8216;deki evimde base Debian kurulu bir linux sunucum var. Bu sunucunun firewall, web server, ftp server, file server görevlerinin dışında bir görevi de download ettiğim dosyaların tek bir yerde durmasını sağlamak. Bu amaçla üzerinde Samba servisi de kurulu durumda. Ancak bu sunucuya vermek istediğim görevlerden biri de mp3 dosyalarımı tek bir dizinde tutup ağdaki [...]]]></description>
			<content:encoded><![CDATA[<p> İzmir &#8216;deki evimde base <a href="http://www.debian.org">Debian</a> kurulu bir linux sunucum var. Bu sunucunun firewall, web server, ftp server, file server görevlerinin dışında bir görevi de download ettiğim dosyaların tek bir yerde durmasını sağlamak. Bu amaçla üzerinde Samba servisi de kurulu durumda. Ancak bu sunucuya vermek istediğim görevlerden biri de mp3 dosyalarımı tek bir dizinde tutup ağdaki diğer bilgisayarların müziği buradan dinlemesini sağlamaktı. Bunun için linux üzerinde konsolda çalışan, az bellek harcayan, basit bir programa ihtiyacım vardı, ama bulduklarım genelde grafik ekranda çalışan ya da web sunucu üzerinden yayın yapan programlardı. Sonunda Perl ile çalışan, kolayca özelliklerini değiştirebileceğim bir program buldum.<br />
<span id="more-13"></span><br />
<a href="http://mirror.arcticnetwork.ca/pub/CPAN/authors/id/S/SP/SPARKS/whisper_1_2.pl">http://mirror.arcticnetwork.ca/pub/CPAN/authors/id/S/SP/SPARKS/whisper_1_2.pl</a> adresinden download edilebilen bu Perl scripti ile bir dizindeki tüm mp3 dosyaları ağdaki diğer bilgisayarlarla kolayca dinlenebiliyor. Test ortamında <a href="http://www.winamp.com">Winamp</a> kullandım. Kendi mp3 sunucunuzu kurmak için ihtiyacınız olan sadece bu script. Scriptin çalışması için gereken Perl modüllerine <a href="http://search.cpan.org">CPAN Perl Module Search</a> sayfasından arama yaparak ulaşabilirsiniz. Sunucuyu çalıştırmak için linux komut satırında</p>
<p>
<strong>arcadian@arcadia:~# perl whisper_1_2.pl -d <mp3_dizini> &#038;</strong><br />
</p>
<p>yazmanız yeterli. Herşey beklendiği gibi çalışırsa programı çalıştırdığınız konsolda aşağıdaki gibi bir bilgi göreceksiniz.</p>
<p><strong>Searching for mp3&#8242;s, one moment&#8230;<br />
121 mp3&#8242;s in list.<br />
Listening on port 2020&#8230;</strong></p>
<p></p>
<p>Artık Winamp programınızı açıp Play Location/URL seçeneğini seçip adres kısmına <strong>http://sunucu.adresiniz:2020</strong> yazdığınızda mp3 dosyalarınızı ağınızdaki diğer bilgisayarlardan dinleyebilirsiniz. İyi eğlenceler.</p>
]]></content:encoded>
			<wfw:commentRss>http://gurcanozturk.com/2007/03/perl-ile-mp3-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

