<?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>Povilas Balzaravičius &#187; Programavimas</title>
	<atom:link href="http://pawka.linija.net/category/programavimas/feed/" rel="self" type="application/rss+xml" />
	<link>http://pawka.linija.net</link>
	<description>Geek.</description>
	<lastBuildDate>Sun, 05 Feb 2012 15:16:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>VIM įskiepių tvarkymas su pathogen.vim ir Git</title>
		<link>http://pawka.linija.net/2011/11/13/vim-iskiepiu-tvarkymas-su-pathogen-vim-ir-git/</link>
		<comments>http://pawka.linija.net/2011/11/13/vim-iskiepiu-tvarkymas-su-pathogen-vim-ir-git/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 12:36:35 +0000</pubDate>
		<dc:creator>Pawka</dc:creator>
				<category><![CDATA[Programavimas]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[pathogen.vim]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://pawka.linija.net/?p=639</guid>
		<description><![CDATA[VIM įskiepių valdymas nėra pats patogiausias dalykas pasaulyje. Visi skriptai metami į bendrus katalogus, todėl ilgai netrunka kol .vim kataloge įsivyrauja chaosas. Pasidaro neaišku kurie failai kokiam įskiepiui priklauso, darosi painu juos šalinti ir sudėtinga atnaujinti. Dažnas VIM vartotojas naudoja daugiau nei 5 įskiepius, tad rankinis jų atnaujinimas gali tapti pain in da ass. Reik [...]]]></description>
			<content:encoded><![CDATA[<p>VIM įskiepių valdymas nėra pats patogiausias dalykas pasaulyje. Visi skriptai metami į bendrus katalogus, todėl ilgai netrunka kol .vim kataloge įsivyrauja chaosas. Pasidaro neaišku kurie failai kokiam įskiepiui priklauso, darosi painu juos šalinti ir sudėtinga atnaujinti. Dažnas VIM vartotojas naudoja daugiau nei 5 įskiepius, tad rankinis jų atnaujinimas gali tapti <em>pain in da ass</em>. Reik susigooglinti visų naudojamų skriptų puslapius, parsisiųsti jų naujas versijas ir sukelti į atitinkamus katalogus. Baisiai nepatogu, bet visą tai galima protingai išspręsti!</p>
<p>Pagaliau prisiverčiau susitvarkyti savo VIM konfigūraciją. Į pagalbą atėjo <a href="https://github.com/tpope/vim-pathogen">pathogen.vim</a>. Pathogen leidžia VIM įskiepius instaliuoti į atskirus katalogus. Taip išlaikoma tvarka .vim direktorijoje, įskiepius daug paprasčiau pašalinti. Norint naudoti pathogen, reikia įvykdyti šiuos žingsnius:</p>
<ul>
<li>Patalpinti <strong>pathogen.vim</strong> failą <strong>~/.vim/autoload</strong> direktorijoje.</li>
<li>Sukurti direktoriją <strong>~/.vim/bundle</strong></li>
<li>Į <strong>.vimrc</strong> pradžią patalpinti šią eilutę:

<div class="wp_syntax"><div class="code"><pre class="vim" style="font-family:monospace;"><span style="color: #804040;">call</span> pathogen#infect<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span></pre></div></div>

</li>
</ul>
<p>Nuo šiol visus VIM įskiepius reikia talpinti į atskirus pakatalogius, esančius anksčiau sukurtame kataloge <strong>bundle</strong>. Kadangi įskiepiai talpinami atskiruose kataloguose, helptag&#8217;ams generuoti yra sukurta komanda <strong>:Helptags</strong> (vietoj <strong>:helptags</strong>).</p>
<p>Dabar apie modulių atnaujinimą. Turiu gerą naujieną &#8211; GitHub.com yra toks vartotojas vim-scripts, kurio repozitorijoje talpinami VIM skriptai iš vim.org puslapio. Kitaip tariant, visi vim.org puslapyje esantys skriptai taip pat yra talpinami ir <a href="https://github.com/vim-scripts/">github.com/vim-scripts</a>. Beje, šio projekto kūrimą įtakojo būtent anksčiau minėtas pathogen.vim. Kas gali būti patogiau nei atnaujinti skriptus tiesiai iš GitHub&#8217;o? Žinoma, kai kurie VIM skriptų autoriai savo kodą taip pat saugo github&#8217;e, tad kodas jų repozitorijose bus atnaujinamas dažniau. Tačiau vim-scripts išsprendžia problemas, kai originalus kodas talpinamas pvz. kokioje nors Mercurial repozitorijoje.</p>
<p>Viliuosi, kad jau saugote vim konfigūraciją versijavimo sistemoje. Jei ne, tai&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>.vim
git init
git add .
git commit <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;Init commit.&quot;</span></pre></div></div>

<p>VIM skriptus pridėsim kaip GIT submodulius. Trumpai tariant, submodulis leidžia pridėti kitą GIT projektą į repozitoriją. Būdami ~/.vim direktorijoje rašom:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git submodule add git:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>vim-scripts<span style="color: #000000; font-weight: bold;">/</span>FuzzyFinder.git ~<span style="color: #000000; font-weight: bold;">/</span>.vim<span style="color: #000000; font-weight: bold;">/</span>bundle<span style="color: #000000; font-weight: bold;">/</span>FuzzyFinder
git submodule init
git submodule update
git add .
git commit <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;Added FuzzyFinder as bundle.&quot;</span></pre></div></div>

<p>Įskiepis pridėtas, jo kodas atnaujintas tiesiai iš jo repozitorijos ir patalpintas į bundle/FuzzyFinder katalogą. Analogiškai galime pridėti ir kitus įskiepius. Norint atnaujinti visus įskiepius rašome:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git submodule foreach git pull origin master</pre></div></div>

<p>Štai ir viskas. Jei naudojate Mercurial, vietoj Git submodulių galite bandyti naudoti <a href="http://mercurial.selenic.com/wiki/Subrepository">Subrepozitorijas</a>. Jos, beje, leidžia klonuoti projektus ne tik iš Mercurial versijavimo sistemų. Vietoj pathogen galite išbandyti analogišką paskirtį turinį įskiepį <a href="https://github.com/gmarik/vundle">Vundle</a>. Na, o jei reik veikiančio pavyzdžio, tai mano VIM konfigūracinius failus rasite <a href="https://github.com/pawka/VIM">github.com/pawka/VIM</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://pawka.linija.net/2011/11/13/vim-iskiepiu-tvarkymas-su-pathogen-vim-ir-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git default spalvų nustatymas konsolėje</title>
		<link>http://pawka.linija.net/2011/11/08/git-default-spalvu-nustatymas-konsoleje/</link>
		<comments>http://pawka.linija.net/2011/11/08/git-default-spalvu-nustatymas-konsoleje/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 12:10:04 +0000</pubDate>
		<dc:creator>Pawka</dc:creator>
				<category><![CDATA[Programavimas]]></category>

		<guid isPermaLink="false">http://pawka.linija.net/?p=633</guid>
		<description><![CDATA[Jis grįžta su nauju hitu! Git turi opciją &#8211;color, kuri naudojama su kai kuriomis komandomis (pvz. git-diff). Tačiau pagal nutylėjimą ji yra išjungta t.y. norint rodyti spalvas visad reik prirašinėt &#8211;color. Įjungti galima labai paprastai &#8211; į .git/config failą įrašius šias eilutes:

&#91;color&#93;
    branch = auto
    diff = auto
  [...]]]></description>
			<content:encoded><![CDATA[<p>Jis grįžta su nauju hitu! Git turi opciją <strong>&#8211;color</strong>, kuri naudojama su kai kuriomis komandomis (pvz. git-diff). Tačiau pagal nutylėjimą ji yra išjungta t.y. norint rodyti spalvas visad reik prirašinėt <strong>&#8211;color</strong>. Įjungti galima labai paprastai &#8211; į .git/config failą įrašius šias eilutes:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>color<span style="color: #7a0874; font-weight: bold;">&#93;</span>
    branch = auto
    <span style="color: #c20cb9; font-weight: bold;">diff</span> = auto
    status = auto
<span style="color: #7a0874; font-weight: bold;">&#91;</span>color <span style="color: #ff0000;">&quot;branch&quot;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
    current = yellow reverse
    <span style="color: #7a0874; font-weight: bold;">local</span> = yellow 
    remote = green
<span style="color: #7a0874; font-weight: bold;">&#91;</span>color <span style="color: #ff0000;">&quot;diff&quot;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
    meta = yellow
    frag = magenta
    old = <span style="color: #c20cb9; font-weight: bold;">red</span> 
    new = green
<span style="color: #7a0874; font-weight: bold;">&#91;</span>color <span style="color: #ff0000;">&quot;status&quot;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
    added = yellow
    changed = green
    untracked = cyan</pre></div></div>

<p>Gyvenimas iškart gražesnis.</p>
]]></content:encoded>
			<wfw:commentRss>http://pawka.linija.net/2011/11/08/git-default-spalvu-nustatymas-konsoleje/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Automatinis atsarginių kopijų kūrimas su rsync ir Notify-OSD pranešimai</title>
		<link>http://pawka.linija.net/2009/06/24/automatinis-atsarginiu-kopiju-kurimas-su-rsync-ir-notify-osd-pranesimai/</link>
		<comments>http://pawka.linija.net/2009/06/24/automatinis-atsarginiu-kopiju-kurimas-su-rsync-ir-notify-osd-pranesimai/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 16:01:19 +0000</pubDate>
		<dc:creator>Pawka</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programavimas]]></category>
		<category><![CDATA[atsarginės kopijos]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[crontab]]></category>
		<category><![CDATA[komandinė eilutė]]></category>
		<category><![CDATA[NotifyOSD]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://pawka.linija.net/?p=457</guid>
		<description><![CDATA[Iš pradžių norėjau papasakoti tik apie Ubuntu Notify-OSD pranešimų rodymą iš komandinės eilutės ir kaip juos privesti veikti iš crontab aplinkos. Tačiau galiausiai vistiek nusprendžiau papasakoti pilną istoriją, todėl kartu sužinosite ir apie atsarginiu kopijų darymą su rsync.
Notify-OSD pranešimai
Į Ubuntu 9.04 Jaunty Jackalope versiją buvo įdiegta nauja informacinių pranešimų sistema &#8211; Notify-OSD. Notify-OSD atsakinga už [...]]]></description>
			<content:encoded><![CDATA[<p>Iš pradžių norėjau papasakoti tik apie Ubuntu Notify-OSD pranešimų rodymą iš komandinės eilutės ir kaip juos privesti veikti iš crontab aplinkos. Tačiau galiausiai vistiek nusprendžiau papasakoti pilną istoriją, todėl kartu sužinosite ir apie atsarginiu kopijų darymą su rsync.</p>
<h3>Notify-OSD pranešimai</h3>
<p>Į Ubuntu 9.04 Jaunty Jackalope versiją buvo įdiegta nauja informacinių pranešimų sistema &#8211; Notify-OSD. Notify-OSD atsakinga už programų ir operacinės sistemos informacinių pranešimų valdymą ir rodymą vartotojui. Apie juos plačiau galite pasiskaityti <a href="http://www.markshuttleworth.com/archives/265">Mark Shuttleworth bloge</a> arba <a href="https://wiki.ubuntu.com/NotifyOSD">oficiame puslapyje</a>. Man iškart kilo klausimas, kaip rodyti custom pranešimus. Notify-OSD biblioteka turi C, C# ir Python API. O ką daryti kitiems? Kitiems siūloma naudotis komandine eilute. Tereikia susiinstaliuoti <strong>libnotify-bin</strong> biblioteką ir bus galima naudotis <strong>notify-send</strong> komanda:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">notify-send <span style="color: #ff0000;">&quot;Title&quot;</span> <span style="color: #ff0000;">&quot;Info message&quot;</span></pre></td></tr></table></div>

<p>Gausime štai tokį informacinį pranešimą su tekstu (jop, neiškenčiau kartu nepaspaudinėti ir ekrano šviesinimo mygtuko): </p>
<p><center><a href="http://pawka.linija.net/wp-content/uploads/2009/06/screenshot-2.png"><img src="http://pawka.linija.net/wp-content/uploads/2009/06/screenshot-2.png" alt="Ubuntu Notify-OSD popup" title="Ubuntu Notify-OSD popup" width="389" height="213" class="alignnone size-full wp-image-462" /></a></center></p>
<h3>Atsarginės kopijos</h3>
<p>Kad reikia daryti atsargines kopijas &#8211; žinom visi. Nuo tada, kai <a href="http://pawka.linija.net/2008/05/02/atsargiai-vagys/">pavogė mano seną nešiojamą kompiuterį</a>, į visą šį reikalą žiūriu daug rimčiau. Atsarginių kopijų darymo principai skiriasi priklausomai nuo to, kokios yra naudojamos sistemos. Serveriuose naudojami vienokie būdai, namų kompiuteriuose &#8211; kitokie. Aš pats turiu <a href="http://pawka.linija.net/2008/05/07/naujasis-darbo-irankis-dell-vostro-1400/">nešiojamą kompiuterį</a>. Mano atsarginių kopijų darymo tikslas &#8211; išsaugoti informaciją, jei kas nors nutiktų kompiuteriui, todėl dubliuoti duomenis tame pačiame diske yra nelogiška. Tam naudoju <a href="http://pawka.linija.net/2008/01/18/kai-laptope-truksta-vietos/">išorinį diską</a>, jungiamą per USB jungtį. Čia iškyla keletas klausimų, kuriuos reikia išspręsti:</p>
<ul>
<li>Diskas ne visada yra prijungtas.</li>
<li>Atsarginių kopijų kūrimas turi būti automatizuotas. Nesinori rankomis paleidinėti skripto, kai prijungiamas diskas.</li>
</ul>
<h3>Atsarginių kopijų kūrimo skriptas</h3>
<p>Problemą išsprendžiau pasirašęs nesudėtingą bash skriptą, tikrinantį ar yra prijungtas mano nurodytas diskas. Jei diskas prijungtas, vykdomi duomenų sinchronizavimo darbai. Skriptą leidžiu periodiškai, porą kartų per dieną. Kadangi duomenų pokyčiai nėra dideli, tai tokio dažnumo man pilnai užtenka, turint omenyje, kad sinchronizavimas bus atliktas vidutiniškai kas 2-3 dienas (tada būsiu prisijungęs išorinį diską). Kadangi skriptas vykdomas periodiškai su crontab pagalba, tai pasinaudodamas Notify-OSD išvedu į ekraną informacinius pranešimus. Skriptas atrodo taip:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #666666; font-style: italic;">#author: Povilas Balzaravičius 2009</span>
<span style="color: #666666; font-style: italic;">#</span>
&nbsp;
<span style="color: #007800;">BACKUP_DISK</span>=<span style="color: #ff0000;">&quot;/media/E&quot;</span>;
&nbsp;
<span style="color: #666666; font-style: italic;">#Checks if disk passed as parameter $1 is mounted to the system.</span>
is_mounted <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-z</span> <span style="color: #ff0000;">&quot;$1&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
	<span style="color: #000000; font-weight: bold;">then</span>
		notify <span style="color: #ff0000;">&quot;Disk path is zero length.&quot;</span>
	<span style="color: #000000; font-weight: bold;">else</span>
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #c20cb9; font-weight: bold;">mount</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #c20cb9; font-weight: bold;">grep</span> $<span style="color: #000000;">1</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null;
		<span style="color: #000000; font-weight: bold;">then</span>
			<span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #000000;">1</span>;
		<span style="color: #000000; font-weight: bold;">else</span>
			<span style="color: #7a0874; font-weight: bold;">return</span> <span style="color: #000000;">0</span>;
		<span style="color: #000000; font-weight: bold;">fi</span>
	<span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#Displays notify message balloon.</span>
notify <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>notify-send <span style="color: #ff0000;">&quot;Backup&quot;</span> <span style="color: #ff0000;">&quot;$1&quot;</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
is_mounted <span style="color: #007800;">$BACKUP_DISK</span>
<span style="color: #007800;">disk_mounted</span>=<span style="color: #007800;">$?</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">DISPLAY</span>=:<span style="color: #000000;">0</span> <span style="color: #666666; font-style: italic;">#For cronjob using gui notifications.</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#If disk is mounted, let's do backups.</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$disk_mounted</span>&quot;</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">then</span>
	notify <span style="color: #ff0000;">&quot;Started&quot;</span>
	rsync <span style="color: #660033;">-Pva</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>pawka<span style="color: #000000; font-weight: bold;">/</span>C<span style="color: #000000; font-weight: bold;">/</span>Documents<span style="color: #000000; font-weight: bold;">/*</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$BACKUP_DISK</span>/backup/Documents&quot;</span>; 
	rsync <span style="color: #660033;">-Pva</span> <span style="color: #660033;">--delete</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>pawka<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/*</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$BACKUP_DISK</span>/backup/www&quot;</span>; 
	rsync <span style="color: #660033;">-Pva</span> <span style="color: #660033;">--delete</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>pawka<span style="color: #000000; font-weight: bold;">/</span>darbai<span style="color: #000000; font-weight: bold;">/*</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$BACKUP_DISK</span>/backup/darbai&quot;</span>; 
	rsync <span style="color: #660033;">-Pva</span> <span style="color: #660033;">--delete</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>pawka<span style="color: #000000; font-weight: bold;">/</span>tools<span style="color: #000000; font-weight: bold;">/*</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$BACKUP_DISK</span>/backup/tools&quot;</span>; 
	notify <span style="color: #ff0000;">&quot;Finished&quot;</span>
<span style="color: #000000; font-weight: bold;">else</span>
	notify <span style="color: #ff0000;">&quot;Disk <span style="color: #007800;">$BACKUP_DISK</span> is not mounted.&quot;</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span>;</pre></td></tr></table></div>

<p>Atkreipkite dėmesį į šią eilutę:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>31
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">DISPLAY</span>=:<span style="color: #000000;">0</span> <span style="color: #666666; font-style: italic;">#For cronjob using gui notifications.</span></pre></td></tr></table></div>

<p>Ji reikalinga, kad vykdant <strike>blow</strike>cronjob būtų galima rodyti pranešimus vartotojo grafinėje aplinkoje. 0 (nulis) nurodo darbalaukio numerį. Jei nebūtų šios eilutės, informaciniai pranešimai nebūtų rodomi. Analogiškai, jei iš cron aplinkos norite paleisti kokią nors grafinę programą, taip pat turite nurodyti šį parametrą. Pavyzdžiui norėdami ryte atsibusti su muzika, į cron&#8217;ą turite įrašyti šią eilutę:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000;">30</span> <span style="color: #000000;">6</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">DISPLAY</span>=:<span style="color: #000000;">0</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> vlc http:<span style="color: #000000; font-weight: bold;">//</span>jungletrain.net<span style="color: #000000; font-weight: bold;">/</span>64kbps.m3u</pre></td></tr></table></div>

<p>Atsarginių kopijų darymo skripte nusirodykite savo diską į kurį norite kopijuoti duomenis (BACKUP_DISK kintamasis), pakeiskite rsync katalogus, kuriuos norite išsaugoti ir naudokit į sveikatą.</p>
]]></content:encoded>
			<wfw:commentRss>http://pawka.linija.net/2009/06/24/automatinis-atsarginiu-kopiju-kurimas-su-rsync-ir-notify-osd-pranesimai/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
<enclosure url="http://jungletrain.net/64kbps.m3u" length="298" type="audio/x-mpegurl" />
		</item>
		<item>
		<title>Python konferencija PyCon-LT 2009</title>
		<link>http://pawka.linija.net/2009/04/16/python-konferencija-pycon-lt-2009/</link>
		<comments>http://pawka.linija.net/2009/04/16/python-konferencija-pycon-lt-2009/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 16:50:38 +0000</pubDate>
		<dc:creator>Pawka</dc:creator>
				<category><![CDATA[Programavimas]]></category>
		<category><![CDATA[Renginiai]]></category>
		<category><![CDATA[konferencija]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://pawka.linija.net/?p=423</guid>
		<description><![CDATA[Šiomis dviem savaitėmis bus jaučiamas ITšnykų suintensyvėjimas Kaune. Didelį indėlį duoda KTU informatikų organizuojamas kasmetinis festivalis InfoShow, tačiau tai dar ne viskas. Balandžio 24 d. visoje Lietuvoje, o tame tarpe ir Kaune, vyks Ubuntu Jaunty Jackalope release party. Tačiau ir tai dar ne viskas!
Balandžio 26 d. (sekmadienį) KTU Gimnazijoje Studentų g. 65 vyks bene pirmoji, [...]]]></description>
			<content:encoded><![CDATA[<p>Šiomis dviem savaitėmis bus jaučiamas ITšnykų suintensyvėjimas Kaune. Didelį indėlį duoda KTU informatikų organizuojamas kasmetinis festivalis <a href="http://www.infoshow.info/">InfoShow</a>, tačiau tai dar ne viskas. Balandžio 24 d. visoje Lietuvoje, o tame tarpe ir Kaune, vyks <a href="http://www.ubuntu.lt/render/News;nid,413">Ubuntu Jaunty Jackalope release party</a>. Tačiau ir tai dar ne viskas!</p>
<p>Balandžio 26 d. (sekmadienį) KTU Gimnazijoje Studentų g. 65 vyks bene pirmoji, Lietuvos Python entuziastų rengiama Python konferencija &#8211; <a href="http://pycon.akl.lt/">PyCon-LT 2009</a>. Jei domitės ar norite pradėti domėtis &#8211; užsiregistruokite konferencijos puslapyje ir būtinai ateikite!</p>
]]></content:encoded>
			<wfw:commentRss>http://pawka.linija.net/2009/04/16/python-konferencija-pycon-lt-2009/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Ieškomas PHP programuotojas</title>
		<link>http://pawka.linija.net/2008/09/24/ieskomas-php-programuotojas/</link>
		<comments>http://pawka.linija.net/2008/09/24/ieskomas-php-programuotojas/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 09:06:21 +0000</pubDate>
		<dc:creator>Pawka</dc:creator>
				<category><![CDATA[Darbas]]></category>
		<category><![CDATA[Programavimas]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://pawka.linija.net/?p=263</guid>
		<description><![CDATA[Į darbą Kaune priimtumėm pradedantį (na gal ne visai, bet ir profesionalų šiuo metu neieškome :) PHP/WEB programuotoją. Jei atsirastų keli tinkami kandidatai &#8211; tai gal net ir ne vieną.
Darbo pobūdis &#8211; www.level.lt, www.paveikslai.lt, www.obuolys.lt (šiuo metu baigiama nauja versija) bei mūsų klientų internetinių projektų priežiūra, vystymas.
Taip pat esame sukūrę skaitmeninės reklamos valdymo sistemą CinemaAds, [...]]]></description>
			<content:encoded><![CDATA[<p>Į darbą Kaune priimtumėm pradedantį (na gal ne visai, bet ir profesionalų šiuo metu neieškome :) PHP/WEB programuotoją. Jei atsirastų keli tinkami kandidatai &#8211; tai gal net ir ne vieną.</p>
<p>Darbo pobūdis &#8211; <a href="http://www.level.lt/">www.level.lt</a>, <a href="http://www.paveikslai.lt/">www.paveikslai.lt</a>, <a href="http://www.obuolys.lt/">www.obuolys.lt</a> (šiuo metu baigiama nauja versija) bei mūsų klientų internetinių projektų priežiūra, vystymas.</p>
<p>Taip pat esame sukūrę skaitmeninės reklamos valdymo sistemą CinemaAds, kuri jau metus sėkmingai veikia Forum Cinemas kino centruose, bei yra diegiama į Latvijos bei Estijos kino teatrus. Priklausomai nuo kompetencijos, galimas darbas ir prie šio produkto.</p>
<p>Gali būti studentas. Studijas galima derinti su darbu.</p>
<p>Gyvenimo aprašymą su darbų pavyzdžiais/aprašymais siųskite vaidas.zlotkus@incognito.lt</p>
]]></content:encoded>
			<wfw:commentRss>http://pawka.linija.net/2008/09/24/ieskomas-php-programuotojas/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Infoshow PHP ir Ruby konferencijos 2008</title>
		<link>http://pawka.linija.net/2008/04/14/infoshow-php-ir-ruby-konferencijos-2008/</link>
		<comments>http://pawka.linija.net/2008/04/14/infoshow-php-ir-ruby-konferencijos-2008/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 20:18:49 +0000</pubDate>
		<dc:creator>Pawka</dc:creator>
				<category><![CDATA[Gyvenimas]]></category>
		<category><![CDATA[Programavimas]]></category>

		<guid isPermaLink="false">http://pawka.linija.net/2008/04/14/infoshow-php-ir-ruby-konferencijos-2008/</guid>
		<description><![CDATA[Šį savaitgalį Kaune galima būtų vadinti programavimo konferencijų savaitgaliu. Penktadienį vyko jau penktoji &#8211; jubiliejinė PHP konferencija Kaune, o vakar &#8211; šeštadienį &#8211; pirmoji Ruby konferencija.  Pradžioje norėjau rašyt du atskirus pranešimus, tačiau kol vakar išsikrapščiau iš lovos ir pavalgiau, iškart teko skubėti į Ruby renginį. Jei ne Eimanto laiškas, informavęs apie PHP konferenciją, [...]]]></description>
			<content:encoded><![CDATA[<p>Šį savaitgalį Kaune galima būtų vadinti programavimo konferencijų savaitgaliu. Penktadienį vyko jau penktoji &#8211; jubiliejinė PHP konferencija Kaune, o vakar &#8211; šeštadienį &#8211; pirmoji Ruby konferencija.  Pradžioje norėjau rašyt du atskirus pranešimus, tačiau kol vakar išsikrapščiau iš lovos ir pavalgiau, iškart teko skubėti į Ruby renginį. Jei ne <a href="http://www.tygas.net/">Eimanto</a> laiškas, informavęs apie PHP konferenciją, tai tikriausiai būčiau ir pražiopsojęs (nors buvau užsiregistravęs ir laukiau). Tas pats būtų nutikę ir su Ruby &#8211; galvojau, kad vyks kitą savaitgalį.</p>
<h3>PHP Konferencija</h3>
<p>Tokie renginiai man labai patinka, tačiau gaila, kad pranešėjų buvo ganėtinai mažai, lyginant su ankstesniais kartais. Galbūt krenta PHP populiarumas (nemanau), o gal tiesiog nepavyko surinkti žmonių. Viso turėjo būti penki pranešimai, tačiau jau renginio pradžioje sužinojome, kad bus tik keturi. Povilas, turėjęs kalbėti apie saugumą negalėjo atvykti. Apie viską iš eilės:</p>
<ul>
<li>Tomas Liubinas &#8211; Perfomance. Tomas kalbėjo apie sistemos (ne tik PHP) veikimo spartą ir optimizavimą. Tema aktuali kiekvienam. Tačiau mano nuomone pranešėjas į kaikurias smulkmenas gilinosi kiek permažai ir tik greitai apibūdino į ką reiktų atkreipti dėmesį. Prezentacijoj figūravo tokie teiginiai, kad prieš ciklą reiktų iškelti count() funkciją, nes viduj ją naudoti netikslinga (šitą manau dar mokykloje visi mokėmės) arba, kad vietoj $x / 2 reiktų naudoti $2 * 0.5. Neišdrįsau paklaust ar Oxid&#8217;e (Tomas dirba NFQ) jie visur vietoj dalybos tikrai naudoja daugybą. :-) Neabejoju Tomo profesionalumu (apie tai negali būti net kalbos), tačiau norėjosi, kad tema būtų pakrapštyta truputį giliau.</li>
<li><a href="http://emilis.info/">Emilis Dambauskas</a> &#8211; Kodo interpretacija ir analizė. Už skambaus pavadinimo slepiasi paprasta tema. Jis tiesiog papasakojo kaip paprastai svetainei rinkosi platformą iš Wordpress, Joomla ir Drupal, pasinaudodamas esminiais testavimo ir palyginimo metodais. Viskas aišku, suprantama, paprasta, o svarbiausia &#8211; malonu klausyt. Beje, Emilio testavimo metodika buvo naudojama &#8220;ant&#8221; Ubuntu (galima pritaikyti ir kitoms OS), kas leido jam surinkti daugiau pliusų iš mano pusės :-)</li>
<li><a href="http://kurakin.info/">Sergej Kurakin</a> &#8211; Pasiimam duomenis iš trečios šalies šaltinių. Tema įdomi, papasakota gerai. Jei nesate su tuo susidūrę, peržiūrėkite kai atsiras vaizdo įrašai.</li>
<li><a href="http://rimantas.com/">Rimtantas Liubertas, imCat</a> &#8211; CSRF. Pranešėjas kalbėjo apie CSRF atakas, kurių pagalba gali būti vogiami duomenys ar vykdomi kiti pikti veiksmai (ar atakos būna kitokios?). Vėlgi &#8211; viskas greita ir paprasta. Prezentacijos metu Rimantas pastebėjo, kad trūksta kaikurių skaidrių, tad pranešimas turbūt dar labiau sutrumpėjo. Skaidrių dingimas vėl pasikartojo kitą dieną vykusioje Ruby konferencijoje.</li>
</ul>
<p>Kaip minėjau, renginys praėjo labai greitai, tad dauguma nubildėjome į netoliese esančią kavinę pasiafterpartinti. Prisėdę pratesėm konferenciją, šiek tiek padiskutavome aktualiomis temomis ir išsiskirstėme.</p>
<h3>Ruby konferencija</h3>
<p>Vakar nuo 11 ryto vyko pirmoji Lietuvoje Ruby konferencija. Dieną prieš, kalbėjau su <a href="http://www.arturaz.net/">Artūru</a> apie prie konferencijos norėjusius prisijungti Python&#8217;istus, šis paminėjo, kad papildomiems pranešimams nelabai yra laiko, nes ir pačius laikas spaudžia. Tad maniau, jog renginys vyks gal iki 18 valandos vėliausiai. Kaip paaiškėjo vėliau &#8211; klydau. Pats renginys užsitesė iki vėlumos ir baigėsi truputį po 21, tačiau aš galo taip ir nesulaukiau &#8211; išlėkiau paskutinio pranešimo viduryje. Nenuostabu, kad per tokį laiką sugeneruotos informacijos srautas buvo didžiulis, tad visko nuosekliai atkurti nesugebėsiu. Trumpai papasakosiu kas kokias roles atliko. Konferencijoje dalyvavo 5 pranešėjai:</p>
<ul>
<li>Artūras ‘arturaz’ Šlajus. Oficialiai &#8211; renginio organizatorius. Taip pat turbūt daugiausiai kalbėjęs pranešėjas &#8211; pasakojo kelias prezentacijas. Artūras pradėjo nuo susipažinimo &#8220;Kas yra Ruby?&#8221;, pateikė keletą gyvų pavyzdžių suprogramuodamas registraciją ar dar kažką ir  gilindamasis į sudėtingesnius dalykus. Man asmeniškai nepatiko Artūro kalbėjimo stilius. Pranešimo metu keli bajeriai yra ok, bet kai jų kiekis lenkia pranešimo turinį tai jau negerai. Reikia gerbti klausytoją ir taupyt jo, tiek ir savo laiką. Artūrai, tiesiog kitą kartą (kuris, manau tikrai bus) perdaug neatsipalaiduok ir bus ok :-)</li>
<li>Laurynas Liutkus pasakojo apie Rubio modulių rašymą su C. Kadangi jaučiu simpatijas C/C++, tai prezentaciją stebėjau su malonumu.</li>
<li>Saulius Grigaitis, <a href="http://www.rubyonrails.lt">Rubyonrails.lt</a> autorius, buvo tas pranešėjas kurio klausyti tikras malonumas. Praktiškai kiekvienas jo pasakytas sakinys yra naudingas &#8211; malonu ir aišku klausyti. Saulius pasakojo apie testavimą, saugumą ir dar kažką.</li>
<li><a href="http://vaiciunas.info/">Eimantas ‘enc’ Vaičiūnas</a> turėjo pasakot apie kažką su JavaScript, tačiau galiausiai pats apsigalvojo, tad supažindino su rake naudojimu. Trumpa, paprasta ir aišku. Tiesa, tikėjausi, kad Eimantas daugiau pasireikš konferencijos metu :-)</li>
<li>Fiodor Vereščiaka pasakojo apie kito Ruby karkaso &#8211; MERB naudojimą. Manau, prezentacija daugiau skirta įsigilinusiems į Rails karkasą ir galintiems jį palyginti su MERB&#8217;u. Kadangi Fiodor kalbėjo paskutinis, o konferencija, kaip minėjau, užtruko, tai jo pranešimo pabaigos taip ir nesulaukiau.</li>
</ul>
<p>Dėkoju organizatoriams ir laukiu kitų renginių. Girdėjau gandų, kad galbūt jo netgi nereiks laukti iki kitų metų (kalbu apie PHP) :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://pawka.linija.net/2008/04/14/infoshow-php-ir-ruby-konferencijos-2008/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Komodo Edit nuo šiol atviro kodo produktas</title>
		<link>http://pawka.linija.net/2008/03/11/komodo-edit-nuo-siol-atviro-kodo-produktas/</link>
		<comments>http://pawka.linija.net/2008/03/11/komodo-edit-nuo-siol-atviro-kodo-produktas/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 10:34:57 +0000</pubDate>
		<dc:creator>Pawka</dc:creator>
				<category><![CDATA[Programavimas]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://pawka.linija.net/2008/03/11/komodo-edit-nuo-siol-atviro-kodo-produktas/</guid>
		<description><![CDATA[Komodo Edit &#8211; galingas multiplatforminis tekstinis redaktorius, skirtas programuotojms. Prieš kelias dienas pasirodė naujoji 4.3 versija. Sulig šios versijos pasirodymu, redaktorius tapo atviro kodo produktu. Komodo Edit yra daug apdovanojimų pelniusio Komodo IDE supaprastinta ir nemokama versija. Produktas palaiko daugelį dinaminių programavimo kalbų, įskaitant PHP, Python, Ruby, Perl, Tcl ir kt., taip pat web programavimui: [...]]]></description>
			<content:encoded><![CDATA[<p>Komodo Edit &#8211; galingas multiplatforminis tekstinis redaktorius, skirtas programuotojms. Prieš kelias dienas pasirodė naujoji 4.3 versija. Sulig šios versijos pasirodymu, redaktorius tapo atviro kodo produktu. Komodo Edit yra daug apdovanojimų pelniusio Komodo IDE supaprastinta ir nemokama versija. Produktas palaiko daugelį dinaminių programavimo kalbų, įskaitant PHP, Python, Ruby, Perl, Tcl ir kt., taip pat web programavimui: JavaScript, CSS, HTML, XML. Be to yra sintaksės žymėjimo, <em>autocomplete</em>, paieškos pagal reguliarias išraiškas, projektų valdymo ir kitos naudingos funkcijos, be kurių šiais laikais sunkiai įsivaizduojame programavimo įrankius. Komodo Edit sukurtas Mozilla kodo pagrindu, tad yra platinamas pagal tas pačias licenzijas kaip ir Firefox. Be to įdiegta įskiepių (<em>plug-ins</em>) sistema, analogiška Firefox naršyklei, leidžianti nesunkiai valdyti ir kurti priedus. Palaikomų įskiepių sąrašą galite rasti <a href="http://community.activestate.com/addons">čia</a>. Ten jau dabar yra neblogų dalykų.</p>
<p>Pats asmeniškai jau kurį laiką dirbu būtent su šiuo produktu ir esu patenkintas jo teikiamomis galimybėmis. Tuo labiau, kai visiškai nemokamai ir teisėtai gaunu tokį galimybių rinkinį, kuris netgi lenkia kaikuriuos mokamus produktus.</p>
<ul>
<li><a href="http://www.activestate.com/Products/komodo_ide/komodo_edit.mhtml">Komodo Edit</a></li>
<li><a href="http://community.activestate.com/addons">Oficialus įskiepių archyvas</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://pawka.linija.net/2008/03/11/komodo-edit-nuo-siol-atviro-kodo-produktas/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>IT Kovos &#8216;08 &#8211; programavimo turnyras</title>
		<link>http://pawka.linija.net/2008/02/12/it-kovos-08-programavimo-turnyras/</link>
		<comments>http://pawka.linija.net/2008/02/12/it-kovos-08-programavimo-turnyras/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 15:51:43 +0000</pubDate>
		<dc:creator>Pawka</dc:creator>
				<category><![CDATA[Programavimas]]></category>

		<guid isPermaLink="false">http://pawka.linija.net/2008/02/12/it-kovos-08-programavimo-turnyras/</guid>
		<description><![CDATA[Šiais metais pastebėjau programavimo turnyrų suaktyvėjimą Lietuvoje. Tam tikriausiai turėjo įtakos Plat_Forms 2007. Vakar buvęs kolega Antanas paprašė pranešti apie 7d organizuojamą programavimo turnyrą &#8211; IT Kovos { nukauk priešininką kodu }. Organizatoriai kviečia suburti komandas iš 2-3 asmenų, dirbančių web kūrimo srityje ir programuojančių PHP bei JavaScript kalbomis. Dalyvauti gali IT įmonių arba studentų [...]]]></description>
			<content:encoded><![CDATA[<p>Šiais metais pastebėjau programavimo turnyrų suaktyvėjimą Lietuvoje. Tam tikriausiai turėjo įtakos <a href="http://www.plat-forms.org/2007/overview">Plat_Forms 2007</a>. Vakar buvęs kolega Antanas paprašė pranešti apie <a href="http://www.7d.lt/">7d</a> organizuojamą programavimo turnyrą &#8211; <a href="http://www.itkovos.lt/">IT Kovos { nukauk priešininką kodu }</a>. Organizatoriai kviečia suburti komandas iš 2-3 asmenų, dirbančių web kūrimo srityje ir programuojančių PHP bei JavaScript kalbomis. Dalyvauti gali IT įmonių arba studentų komandos. Paklausiau Antano, kaip dėl mišrių komandų, jis patikino, kad dėl to problemų tikrai nebus :-) Dalyviai gaus užduotį, kurią turės įgyvendinti per 10 valandų. Organizatoriai pabrėžia, kad bus siekiama atkreipti dėmesį į problemas su kuriomis susiduria aklieji ir silpnaregiai, naršydami internete. Tai labai opi problema šių dienų lietuviškame internete. Tad vertinant darbus bus atsižvelgiama į suderinamumą, o vienas iš komisijos narių bus atstovas iš Lietuvos Aklųjų ir Silpnaregių Sąjungos.</p>
<p>Turnyras vyks KTU regioniniame mokslo parke (tam pačiam pastate kur vyko PHP Security konferencija) Kovo 21 dieną (penktadienį), o registracija vyksta iki Kovo 10 dienos. Dalyvio mokestis studentų komandoms: 2<sup>8</sup> Lt, o imonėms: 2<sup>9</sup> Lt. Bendras prizinis fondas: 6000 Lt, tačiau Antanas teigė, kad tikrai nenori, jog dalyvavimas būtų dėl prizų. Turnyro tikslas susipažinti, pabendrauti, parodyti savo žinias ir sugebėjimus. Laiko suburti komandą ir pasiruošti dar yra pakankamai, tad nemiegokit!</p>
<p>Daugiau informacijos oficialiame turnyro puslapyje <a href="http://www.itkovos.lt/">www.itkovos.lt</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://pawka.linija.net/2008/02/12/it-kovos-08-programavimo-turnyras/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>UNIX filosofijos galia</title>
		<link>http://pawka.linija.net/2008/01/08/unix-filosofijos-galia/</link>
		<comments>http://pawka.linija.net/2008/01/08/unix-filosofijos-galia/#comments</comments>
		<pubDate>Tue, 08 Jan 2008 21:43:00 +0000</pubDate>
		<dc:creator>Pawka</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programavimas]]></category>

		<guid isPermaLink="false">http://pawka.linija.net/2008/01/08/unix-filosofijos-galia/</guid>
		<description><![CDATA[UNIX operacinė sistema ir jai skirtos programos (kad ir sort, join ir t.t.) buvo kuriamos remiantis tam tikromis taisyklėmis. Šios taisyklės apibrėžia kaip kurti ne tik švarų ir paprastą programos kodą, tačiau ir programos sąsają, bei išlaikyti kūrinio efektyvumą. Didžiausi UNIX guru, kaip Doug McIlroy, Eric Raymond ar Rob Pike skelbė savuosius taisyklių rinkinius &#8220;kaip [...]]]></description>
			<content:encoded><![CDATA[<p>UNIX operacinė sistema ir jai skirtos programos (kad ir <em>sort</em>, <em>join</em> ir t.t.) buvo kuriamos remiantis tam tikromis taisyklėmis. Šios taisyklės apibrėžia kaip kurti ne tik švarų ir paprastą programos kodą, tačiau ir programos sąsają, bei išlaikyti kūrinio efektyvumą. Didžiausi UNIX guru, kaip Doug McIlroy, Eric Raymond ar Rob Pike skelbė savuosius taisyklių rinkinius &#8220;kaip rašyti patogų kodą&#8221;, tačiau jie skiriasi nedaug &#8211; pati esmė išlaikoma visuose rinkiniuose. Žemiau pateikiu Mike Gancarz&#8217;o suformuluotas <em>devynias pagrindines taisykles</em>, kurios ir yra vadinamos UNIX filosofija:</p>
<ul>
<li>Mažas reiškia gražus.</li>
<li>Rašyk kiekvieną programą taip, kad ji gerai atliktų vieną darbą.</li>
<li>Susikurk programos prototipą kuo anksčiau.</li>
<li>Rinkis mobilumą vietoj efektyvumo.</li>
<li>Saugok skaitinius duomenis tekstiniuose failiuose.</li>
<li>Naudok pakartotinį kodo panaudojimą (nebūtinai savo :-P).</li>
<li>Naudokis shell skriptais veiksmingumui ir mobilumui užtikrinti.</li>
<li>Venk sudėtingos vartotojo sąsajos.</li>
<li>Kiekvieną programą rašyk kaip filtrą, kad jos išvedamus duomenis galėtų panaudoti kitos programos.</li>
</ul>
<p>Jei apie šias išvardintas dogmas norisi paskaityti daugiau, tai galite padaryti čia: <a href="http://hebb.cis.uoguelph.ca/~dave/27320/new/unixphil.html">&#8220;The Unix Philosophy&#8221;</a>. Žinoma, nereikia visko priimti kaip šventos tiesos ir girežtai pulti laikytis, rašant betkokias programas be išimties. Taip pat nereikia pamiršti, kad pagrindinė UNIX veikimo sąsaja buvo komandinė eilutė, tad nuo tų laikų daug kas pasikeitę. Tačiau ir šiais laikais šiuose žodžiuose galima rasti daug tiesos. Kaikurios taisyklės labiau linksta link inžinerijos ar struktūrinių šablonų, o kitos labiau susijusios su pačiu programavimu. Manau ne vienas jūsų laikotęs panašių principų.</p>
<p>Neseniai pačiam teko susidurti rašant vieną klientinę aplikaciją. Aplikacija parsisiunčia duomenis iš serverio, vykdo tam tikrus veiksmus (atsižvelgiant į duomenis ir atskirai), registruoja informaciją serveryje, yra valdoma per grafinę vartotojo sąsają. Visų pirma visus vykdomus išorinius veikmus (vaizdo grotuvo paleidimas, raportavimas, garso reguliavimas ir t.t.) aprašiau shell skriptais. Tai leidžia nesunkiai ir greitai atlikti pakeitimus ir pritaikyti programą skirtingiems kompiuteriams. Tam netgi nereikia žinoti programos kodo &#8211; užtenka žinoti kokie parametrai paduodami konkrečiam skriptui. Nereikia programos perkompiliuoti. Duomenų parsiuntimui ar išsiuntimui paprastai reiktų pasirašyti kokią klasę. Bet kam, jei yra <em>wget</em> arba <em>fetch</em>? <em>Wget</em> programos iškvietimą taip pat įrašiau į skirptą ir nesuku galvos. Duomenų registravimui nutolusiame serveryje irgi panaudojau tą patį <em>wget</em>, nes man tiesiog užtenka kreiptis į URL nurodžius tam tikrus parametrus. Esant reikalui, galima patogiai pasiimti betkokią sistemos informaciją, ją išsifiltruoti ir susirikiuoti prieš paduodant jūsų programai. Vieną iš rikiavimo pavyzdžių buvau pateikęs įraše <a href="http://pawka.linija.net/2007/11/02/jusu-top-10-dazniausiai-naudojamu-konsoles-komandu/">Jūsų TOP 10 dažniausiai naudojamų konsolės komandų</a>. Čia ir slypi programavimo UNIX aplinkoje galia, palengvinanti darbą mums &#8211; programuotojams. Norėdami plačiau apsišviesti galite paskaityti <a href="http://www.faqs.org/docs/artu/ch01s06.html">Basics of the Unix Philosophy</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://pawka.linija.net/2008/01/08/unix-filosofijos-galia/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PHP savaitgalis ir saugumo spragos Lietuvos vyriausiybės puslapiuose</title>
		<link>http://pawka.linija.net/2007/04/17/php-savaitgalis-ir-saugumo-spragos-lietuvos-vyriausiybes-puslapiuose/</link>
		<comments>http://pawka.linija.net/2007/04/17/php-savaitgalis-ir-saugumo-spragos-lietuvos-vyriausiybes-puslapiuose/#comments</comments>
		<pubDate>Tue, 17 Apr 2007 19:42:00 +0000</pubDate>
		<dc:creator>Pawka</dc:creator>
				<category><![CDATA[Gyvenimas]]></category>
		<category><![CDATA[Laisvalaikis]]></category>
		<category><![CDATA[Programavimas]]></category>
		<category><![CDATA[Visi]]></category>

		<guid isPermaLink="false">http://pawka.linija.net/2007/04/17/php-savaitgalis-ir-saugumo-spragos-lietuvos-vyriausiybes-puslapiuose/</guid>
		<description><![CDATA[Savaitgalis truputį užsitesė, nes pirmadienį ir antradienį vyko PHP Secutiry Conference. Dar pridėjus šeštadienį vykusią (ir kokybės prasme vykusią) Infoshow PHP konferenciją (feedbackas čia) gavosi tikras PHP savaigalis.
Infoshow PHP konferencija 2007
Matosi, kad su kiekvienais metais Lietuvoje rengiamos PHP konferencijos tobulėja tiek pranešimų, tiek ir organizavimo atžvilgiu. Šiemet netgi turėjom remėją, kuris labai protingai viliojo programerius [...]]]></description>
			<content:encoded><![CDATA[<p>Savaitgalis truputį užsitesė, nes pirmadienį ir antradienį vyko <a href="http://www.technopark.lt/conference.html">PHP Secutiry Conference</a>. Dar pridėjus šeštadienį vykusią (ir kokybės prasme vykusią) <a href="http://www.infosa.lt/infoshow/main.php/id/112/lang/1">Infoshow PHP konferenciją</a> (feedbackas <a href="http://php.lt/render/News;nid,716">čia</a>) gavosi tikras PHP savaigalis.</p>
<h1>Infoshow PHP konferencija 2007</h1>
<p>Matosi, kad su kiekvienais metais Lietuvoje rengiamos PHP konferencijos tobulėja tiek pranešimų, tiek ir organizavimo atžvilgiu. Šiemet netgi turėjom remėją, kuris labai protingai viliojo programerius pas save :-) Pranešimų nevertinsiu, nes tai puikiausiai galėsit padaryt patys, kai bus įdėta filmuota medžiaga (turėtų pasirodyti dviejų savaičių bėgyje). Galiu tik pasakyti, kad praktiškai visi pranešimai yra verti dėmsio. Norėčiau išskirti tik R. Švarplio temą &#8220;PHP ir dideli duomenų kiekiai&#8221;. Savo pranešime Ričardas papasakojo apie braškilijoninių duomenų kiekių apdorojimą, siekiant kuo didesnės spartos, bei patvirtino kaikuriuos mano teiginius (pvz., kad nėra būtina visad normalizuoti duomenų bazę). Kaip pavyzdį pateikė <a href="http://www.nfq.lt/">NFQ</a> projektą <a href="http://www.swoodoo.de/">Swoodoo.de</a>, kurio vienas iš reikalavimų buvo iš milijoninių duomenų išrinkti reikiamus ir tai atlikti ne daugiau, kaip per 0.1 sekundės.</p>
<h1>PHP Security Conference</h1>
<p>Pirmadienį prasidėjo kitas renginys. Ši konferencija truko dvi dienas, nuo 9:00 iki 17:00. Konferenciją vedė Johann-Peter Hartmann &#8211; PHP saugumo specialistas. Į renginį susirinko tie patys matyti veidai. Pasakoti kas ir kaip nelabai gaunasi, nes reiktų išdėstyti praktiškai visą medžiagą. Pirmąją dieną teko išgirsti plačią saugumo teoriją apie XSS, SQL bei kodo injekcijas, kritines funkcijas ir t.t. Na o šiandien prasidėjo visos linksmybės. Neturėdamas piktų kėslų, vedėjas gyvai pravedė hack sesiją, kurios metu pademonstravo saugumo spragas įvairiuose puslapiuose. Kaikurie taikiniai buvo pasirinkti atsitiktinai, kitus pasiūlė konferencijos klausytojai. Vienas taikinių buvo Lietuvos vyriausybės puslapis, kurio klaidomis pasinaudoti užteko vos pusvalandžio. Hartmann&#8217;as rimtu veidu žurnalistę tikino, kad tokį atvėjį mato tik Lietuvoje. Žinoma jis juokavo :-) Taip jau yra, kad valstybinės organizacijos rūpinasi savo puslapių saugumu per mažai. Ne menkesnės klaidos buvo aptiktos ir kituose puslapiuose. Apibendrinus, renginys, kaip ir visas savaitgalis, vertas dėmesio.</p>
]]></content:encoded>
			<wfw:commentRss>http://pawka.linija.net/2007/04/17/php-savaitgalis-ir-saugumo-spragos-lietuvos-vyriausiybes-puslapiuose/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

