Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Témata - petrakis

Stran: [1] 2 3
1
Pred par dny se mi stala nevidana vec. Za behu, pocas prace mi zblbnul system tak ze zmenil prava uzivatele na pulse audio (ano dobre ctete)  ;D . Dusledkem bylo ze v domovskem adresari mohl mazat, vytvaret a pracovat s dokumenty jenom root a pulse  ;D . Pro prolezeni syslogu, jsem to videl a zacal manualne nastavovat group a prava. Tak kdyz sem skoncil, pracoval jsem dal. Asi 2 hodiny pote po updatu systemu jsem byl nucen restartovat a zjistil jsem ze mi uzivatele vyhodilo z admin group-u. No proste k zlosti. Vysledkem bylo Live-CD a manualni uprava souboru /etc/group. Nez jsem se vsak pres LIVE-CD dostal do systemu, nez jsem to vsechno ponastavoval tak jsem stravil dost casu.

Moje pouceni je ze ted na USB-ku jiz mam par souboru zkopirovanych ktere muzu rychle pouzit , kdyz muj system ma sve dny  ;D ;D

Dotaz: ktere soubory podle vas je dobre mit v supliku ?

2
Nejcastejsim neduhem na zdejsim foru je ze mnoho novacku aniz by si precetli zakladni veci na WIKI anebo nejdriv zkusili hledat zde na foru, se pta zpusobem napr. Nejde mi internet ..... Nasledujicich 8 odpovedi se nese v duchu , jakou mas sitovou kartu, browser atd. Proto (berte to jako navrh) ale pro novacky by to mohlo byt povinne , jsem pripravil velice jednoduchy skript ktery nam vygeneruje podpis pro zdejsi forum u profilu. (jak to vypada muzete videt v mem podpisu. Pro odpovidajici to bude dost uzitecna pomucka. Jelikoz novacci potrebuji graficke znazorneni, dana pomucka jej obsahuje.

Samotnej skript uvedu na konci, pred samotnym zpustenim PROSIM INSTALUJTE SI NEJDRIV ZAVISLOSTI ktere budou potrebne k detekci pozadovanych informaci z vaseho systemu. Zpusteni skriptu bude vyzadovat od vas heslo, jelikoz bude zjistovat systemove pozadavky.

Zde jsou potrebne zavislosti:

Kód: [Vybrat]
sudo apt-get install lshw lsb-release
Ted jak spustit samotnej skript?
Velice jednoduse, stahnete si prilozenej skript a spustite jej prikazem
Kód: [Vybrat]
python signature.py Zadate heslo a otevre se vam okno jake vidite na screenshotu. Nasledne si zkopirujete udaje do vase podpisu v profilu.

link pro samotnej skript: http://dl.dropbox.com/u/11001258/signature.py

a zde ukazka v praxi:





[attachment deleted by admin]

3
Ti co znaji DesktopNexus, mebudu opisovat, ti co neznaji, je to jeden z nejvetsich webu na wallpapery, ktery se snazi mit wallpaper pro jakykoliv rozliseni

http://www.desktopnexus.com/

Tak sem si hral a o vikendu jsem vytvoril tohle:

http://gnome-look.org/content/show.php/GUI+for+DesktopNexus+Wallpapers?content=129180

Popis je na gnome-look, ale k pochopeni neni treba moc vysvetlovat, chce to vyzkouset.

P.S. jak jsem uz napsal na gnome-look, jsetli se najde nekdo kdo by pomohol s instalacnim scriptem pro KDE,LXDE,XFCE (nevim jak maji tyhle prostredi reseno menu) budu rad



[attachment deleted by admin]

4
Vim ze ti co programujou php-ka maji jako jednu z prvnich veci instalovanej apache, ale treba i ja zrovna na tomhle disku apache nemam a nekdy bych chtel aby se mi php-kovej skript mohl spustit i bez nej. Tak pro tyhle pripady zde je navod:


potrebujeme k tomu dva balicky: php5-cli a debianutils
Kód: [Vybrat]
sudo apt-get install php5-cli debianutils
prvni balicek nam bude vykonavat php prikaz a druhej bude vykonavat tempfile prikaz

nasledne si ted vytvorime bash skript kterej nam bude delat konverzi z php-ka na html

Otevreme terminal a zadame:
Kód: [Vybrat]
gedit $HOME/phpview.sh
nasledne do dokumentu vlozime nasledujici:

Kód: [Vybrat]
#!/bin/bash
file=`tempfile -d . -s .html`
echo "Creating file: $file"
php5 $1 > $file
firefox $file
read
rm $file

Ulozime a zavreme editor, nasledne musime udelat nas soubor phpview.sh zpustitelny takze do terminalu zadame:

Kód: [Vybrat]
chmod +x $HOME/phpview.sh
Nasleduje premisteni do skriptu pod nautilem

Kód: [Vybrat]
mv phpview.sh $HOME/.gnome2/nautilus-scripts

Poslednim ukonem bude vytvoreni si testovaciho php souboru

Kód: [Vybrat]
gedit $HOME/Desktop/test.php
a vlozime do nej

Kód: [Vybrat]
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en">
<head><title>Moo</title></head>
<body><?php echo "Hello world!"?></body>
</html>

ulozime a zavreme editor

no a ted pravej klik na soubor test.php a pod skriptama v nautilu menu vybereme phpview.sh

soubor test.php se otevre ve firefoxu zkonvertovany na docasnej html soubor



[attachment deleted by admin]

5
Dlouho jsem si pohraval s myslenkou, udelat si nejaky skriptik ktery by dokazal nasledujici:

Priklad, v adresari downloads mam vsechno mozny a potreboval bych aby jednim klikem se vse presunulo tam kam ma, hezky uklizene. (fotky do fotek, scripty do scriptu atd). To same treba kdyz programuji, tak desktop se zaprasi fotkama, scriptama, poznamkama atd. Dulezite vsak bylo ne presunout to jenom nekam , ale zaroven roztridit.

No a tak jsem si udelal: File-Organizer

Script funguje presne tak jako chci, je zalozenej na zaklade detekce koncovky. Podporuje vice nez 470 formatu, pri cisteni plochy zastupci programu co maji koncovku .desktop jsou opetovne vytvareny, takze je nemaze. Funkcnost je ciste jenom vuci souborum, nema vlyv na adresare.


K dispozici jsou dve verze pouziti. Prvni je spousteni jenom samotneho skriptu, kde vsak treba dbat na to aby jste neuklizeli adresar ve kterym se samotnej skript nachazi, jinak se uklidi take. Tou druhou moznosti, je za pomoci install.sh skriptu provest instalaci systemove, co nasledne zobrazi take novou polozku v menu pod "Accessories" jako "File-organizer".

Samotne nastaveni cilovych adresaru je jednoduchy, po zpusteni si staci vybrat moznost "edit settings" a zde je videt jak cilove adresare vypadaji. Adresare je mozne si editovat anebo ponechat preddefinovane. Jestli adresar ktery je preddefinovanej , nemate tak ten bude automaticky vytvoren. Pri editaci pozor na dodrzovani radku , jsou totiz detekovany za pomoci readline, takze radky ktere potrebujeme jsou radky 3 az 8.

Samotnej script je dostupnej ke stazeni zde: http://gnome-look.org/content/show.php/Directory+cleaner+and+files+organizer?content=128808

[attachment deleted by admin]

6
Nebudu moc rozebirat co je to openstreetmaps, ti co to neznaji kliknout zde: http://www.openstreetmap.org/

To co mi chybelo byla aplikace ktera s tim dovede pracovat. Tou aplikaci je Emerillon. Je tu zde vsak jedno velke ALE !

Emerillon je aplikace pro Debian Sid co by nebyl takovej problem, problemem vsak je ze jedna ze zavislosti je gconf2 (>= 2.28.1-2), kdezto v Ubuntu zatim gconf2 je jenom 2.28.1. Takze aby byla mozna instalace v ubuntu , je potreba si celej balik upravit. Zde uvedu postup jak toho muzeme docilit a taky prikladam screenshoty jak emerillon vypada v praxi.

1.)
otevreme si terminal

2.)
stahneme si instalacni deb balicek, budeme jej stahovat do systemoveho /tmp adresare a zaroven si jej  pojmenujeme treba emerillon.deb
Kód: [Vybrat]
wget -O /tmp/emerillon.deb http://ftp.de.debian.org/debian/pool/main/e/emerillon/emerillon_0.1.1-2_i386.deb
3.)
kdyz se koukneme do adresare /tmp (je pod systemem) vidime tam balicek emerillon.deb, ted jej musime rozbalit, takze nasledujicim prikazem si vytvorime adresar do kteryho obsah balicku rozbalime . Jmeno adresare dame emerillonfix
Kód: [Vybrat]
dpkg-deb -x /tmp/emerillon.deb /tmp/emerillonfix
4.)
ted potrebujeme vyexportovat soubor s kontrolnima informacema takze nasleduje
Kód: [Vybrat]
dpkg-deb --control /tmp/emerillon.deb /tmp/emerillonfix/DEBIAN
5.)
nasleduje uprava pozadovane zavislosti
Kód: [Vybrat]
gedit /tmp/emerillonfix/DEBIAN/control
zde si najdeme gconf2 (>= 2.28.1-2) a zmenime to na gconf2 (>= 2.28.1)
ulozime zmeny a zavreme soubor

6.)
predposlednim ukonem je vytvoreni instalacniho deb ktere jiz bude bez problemu
Kód: [Vybrat]
dpkg -b /tmp/emerillonfix /tmp/emerillon_fixed.deb
7.)
v adresari /tmp se objevil soubor emerillon_fixed.deb ten muzeme ted nainstalovat
Kód: [Vybrat]
sudo dpkg -i /tmp/emerillon_fixed.deb
Nasledne pv hlavnim menu pod Accesories (u anglickych verzi) se objevi polozka emerillon, klinutim na ni ji zpustite


A ted slibene screenshoty:


[attachment deleted by admin]

7
Tipy a triky pro Linux / Fotokoláž rychle a snadno
« kdy: 02 Srpna 2010, 13:56:23 »
Pri zmene pozadi dektopu jsem si pohraval s myslenkou, ze si pozadi udelam jako fotokoláž z fotek me dcery. Zde je zpusob na jeden klik, za pouziti imagemagic-u.

Vytvorime si slozku do ktere dame fotky co chceme pouzit na fotokoláž. Do te same slozky si dame nasledujici script, kteremu nastavime prava aby byl zpustitelnej. V scriptu fotky maji priponu JPG, jestli vase fotky maji jinou priponu, staci si script upravit a zmenit v nem priponu. V mem pripade fotografie byli hodne velike, proto je pouzit -resize 80%, staci si s tim vyhrat na pozadovanej vysledek. Ve scriptu si muzete nastavit zpusob jak se ma koláž provadet (horizontalne anebo vertikalne), v ukazce je zpusob horizontalni po 3 fotografiich. V pripade ze budete delat koláž z hodne velkych fotek a z velkyho poctu, je treba byt trpelivy (chvili to bude trvat). Na zaver se vam zobrazi ve slozce fotografie s nazvem finalcollage.JPG (pokud si nebudete menit nastaveni). Samotnej kod je velice jednoduchej a da se krasne upravit (barvy pozadi , atd). Pri nastavovani doporucuji zkouset to na malych fotkach, do te doby, az jej nebudete mit odladenej na miru.

Zde je samotnej kod:
Kód: [Vybrat]
#!/bin/bash
for f in `ls *.JPG`; do mv $f $RANDOM.JPG; done
montage '*.JPG' -border 2x2 -background black +polaroid -resize 80% -background LightGray -geometry -50-50 -tile y3 finalcollage.JPG

a vysledek muze vypadat asi takhle:



[attachment deleted by admin]

8
Tipy a triky pro Linux / Ubuntu CZ Start Page - Chromium extension
« kdy: 23 Dubna 2010, 23:02:02 »
No jak jsem uz predpovidal , dnes je ceska verze Ubuntu CZ Start Page hotova:

Jak tohle extension funguje? Velice jednoduse, kdyz si otevrete novy tab zobrazi se vam prave tohle extension. Co je tam jinyho nez v doplncich a jake jsou pozadavky?

Pozadavek je mit rozliseni monitoru s vysokym rozlisenim minimalne 1280x1024. Je mi lito, kdo ma mensi musi se spokojit s predeslima rozsirenima. Co je  tam nove? Novinky jsou 2. Tou prvni je pristup jednim klinutim do menu kde mate serazeny vsechny moznosti chrome to jest memory,dns, historii, cache atd. ruhou novinkou je jednoduchy notepad. Muzete si napsat poznamky , neni treba nic ukladat, uklada se sam automaticky takze kdyz se tam vratite jsou tam poznamky zpatky. Pristup na google pro rychle hledani, s moznosti hledat na foru pres google. Rychlej pristup k nejnovejsim neprectenym zpravam. Top stranky zdroje softwaru a bisigi project s temama jsou k dispozici.Samozrejme ze pristup k zalozkam je tam take, se stromovym razenim.

Nejdulezitejsi zmena nastala u rss zprav. Puvodni reseni jsem provadel jak u predeslych doplnku pres vlastni server, a dokonce jsem napsal jquery plugin pro asynchronni import iframu z myho servru s jiz rozparsovanym rss a slo to velice rychle ale mel jsem obavu. Ta obava zpocivala ze , v pripade ze ubuntu.czbude nedostupne anebo nedej buh muj server, trvalo by pomerne dlouho nez se novej tab otevre. Z toho duvodu to resim pres google API , preci jenom google by nemel padnout a je pomerne stabilnejsi a jede to primo z ubuntu.cz a neni treba treti stranu.

Mozne potize:
jako mozny problem vidim u prvniho nacitani , jelikoz je tam dost obrazku ale hlavne javascriptu. Nasledny nacitani by meli jit v pohode.

No a na zaver par obrazku a soudic dle stazeni predeslich pluginu, tohle by melo uspokojit i ty narocne.

Stahovat muzete zde:
https://chrome.google.com/extensions/detail/lcdkonocabenaiaiiokpnlgbnhdgkpig














9
Chci podekovat vsem co testujou extension a mam tu odlehcenou lightweight verzi. Timto bych chtel take poprosit o vyjadreni se v ankete jestli maji byt podporovany obe verze anebo nekterou zrusit.

NEJDULEZITEJSI EXTRA + v nove verzi:

Pridana podpora bookmark-u primo v extension. Rozbaluje se vam ve stromu, a po stlaceni pravyho tlacitka si slozku anebo konkretni zalozku muzete editovat, zmazat a pod. (niz bude zcasti videt na poslednim scrrenshotu).

Samozrejme je moznost aktivace - deaktivace jednotlivych modulu

Celkove zobrazeni je za pomoci jquery s pouzitim efektu anime + fading, co ve vysledku velice hezky vypada.

Verzi stahovat muzete zde:
https://chrome.google.com/extensions/detail/cmcngkhcpmhdpdhnkmeamnmmjhdacabk























10
Tipy a triky pro Linux / UBUNTU CZ Menu Chromium Edition
« kdy: 17 Dubna 2010, 19:53:45 »
Trochu odlehcena verze pro Chrome/Chromium

Jestli je zajem o pridani vice linku do odkazu a pro zdroje, staci jenom udelat seznam a rad to upravim

Link pro stazeni/instalaci:

https://chrome.google.com/extensions/detail/jgblhkmghdlokmpoalegcdblgmphjfil

[attachment deleted by admin]

11
Pred par dny jsem mel jeden problem. Potreboval jsem vytvorit animace s co nejnizzsi velikosti gif-u. Samotna animace by s Photoshopem byla otazka par minut, ale ja jsem potreboval aby byla animace pomerne dlouha,tim padem pocet framu se zvetsoval a velikost gif-u rostla. Nakonec jsem to vyresil zpusobem k me plne spokojenosti. Mozna nekomu to prijde vhod a tak zde je navod:

nejdriv ukazka ( jsetli animace skoncila udelejte refresh anebo pravej klik a zobrazit obrazek):



zobrazeni kostky je provedeno jednoduse ( priklad zobrazeni 6 kostek):

Kód: [Vybrat]
<?php
$k 
6;

for (
$i 1$i <= $k$i++) {
echo 
"<img src='dd2.php?rl=$i' alt='$i' />";
}
?>


jako vidite obrazek je zobrazen jako php kod za pouziti header-u kde je definovanej content type image/gif

soubor dd2.php tedy vypada takhle:

Kód: [Vybrat]
<?php
header
('Content-type: image/gif');
require(
'GifCreator.class.php');
$r $_GET['rl'];
if(
$r=="1"){
$i2 = array("die-2.gif","die-4.gif","die-6.gif","die-5.gif","die-1.gif","die-1.gif");
}
if(
$r=="2"){
$i2 = array("die-1.gif","die-3.gif","die-5.gif","die-6.gif","die-4.gif","die-2.gif");
}
if(
$r=="3"){
$i2 = array("die-4.gif","die-2.gif","die-1.gif","die-5.gif","die-6.gif","die-3.gif");
}
if(
$r=="4"){
$i2 = array("die-6.gif","die-3.gif","die-1.gif","die-2.gif","die-5.gif","die-4.gif");
}
if(
$r=="5"){
$i2 = array("die-3.gif","die-4.gif","die-2.gif","die-1.gif","die-6.gif","die-5.gif");
}

if(
$r=="6"){
$i2 = array("die-5.gif","die-3.gif","die-4.gif","die-2.gif","die-1.gif","die-6.gif");
}

$d = array(303030303030);
 
//interval v ms mezi jednotlivejma framy
$y = array(000000);
$y = array(000000);

$anim2 = new GifCreator($i225525525510$d$x$y'C_FILE');
  
// cislo 10 je pocet animacii (loop)
echo  $anim2->getAnimation();
?>


no a na zaver soubor GifCreator.class.php:

Kód: [Vybrat]
<?php



class GifCreator

{

var $ver '1.1';

var $dly 50;

var $mod 'C_FILE';



var $first true;

var $debug  false;

var $use_loop false;

var $transparent false;

var $use_global_in false;



var $x 0;

var $y 0;

var $ch 0;

var $fin 0;

var $fout '';

var $loop 0;

var $delay 0;

var $width 0;

var $height 0;

var $trans1  255;

var $trans2  255;

var $trans3  255;

var $disposal 2;

var $out_color_table_size 0;

var $local_color_table_flag 0;

var $global_color_table_size 0;

var $out_color_table_sizecode 0;

var $global_color_table_sizecode 0;



var $gif = array(0x470x490x46);

var $buffer = array();

var $local_in = array();

var $global_in = array();

var $global_out = array();

var $logical_screen_descriptor = array();



function GifCreator($images$t1$t2$t3$loop$dl$xpos$ypos$model$debug false)

{

$debug $this->debug true $this->debug false;

if($this->debug) print "<b>GifCreator $this->ver debugger:</b><br>\n";

if($model)

$this->mod $model;

if($loop > -1)

{

$this->loop floor($loop 1);

$this->use_loop true;

}

if($t1 > -&& $t2 > -&& $t3 > -1)

{

$this->trans1 $t1;

$this->trans2 $t2;

$this->trans3 $t3;

$this->transparent true;

}

for($i 0$i count($images); $i++)

{

$dl[$i] $this->delay $dl[$i] $this->delay $this->dly;

$xpos[$i $this->x $xpos[$i] : $this->0;

$ypos[$i $this->y $ypos[$i] : $this->0;

$this->start_GifCreator_process($images[$i]);

}

$this->fout .= "\x3b";

}

function start_GifCreator_process($fp)

{

if($this->mod == 'C_FILE')

{

if(!$this->fin fopen($fp'rb'))

{

if($this->debug) print "Error file open: $fp\<br>";

return;

}

}

else if($this->mod == 'C_MEMORY')

{

$this->ch  0;

$this->fin $fp;

}

$this->getbytes (6);

if(!$this->arrcmp($this->buffer$this->gif3))

{

if($this->debug) print "Isn't GIF file!\n<br>";

return;

}

$this->getbytes (7);

if($this->first$this->logical_screen_descriptor $this->buffer;

$this->global_color_table_sizecode $this->buffer[4] & 0x07;

$this->global_color_table_size << $this->global_color_table_sizecode;

if($this->buffer[4] & 0x80)

{

$this->getbytes(($this->global_color_table_size));

for($i 0$i < (($this->global_color_table_size)); $i++)

{

$this->global_in[$i] = $this->buffer[$i];

}

if($this->out_color_table_size == 0)

{

$this->out_color_table_size $this->global_color_table_size;

$out_color_table_sizecode $this->global_color_table_sizecode;

$this->global_out $this->global_in;

}

if($this->global_color_table_size != $this->out_color_table_size || $this->arrcmp($this->global_out$this->global_in, ($this->global_color_table_size)))

{

$this->use_global_in true;

}

}

for($loop true$loop;)

{

$this->getbytes(1);

switch ($this->buffer[0])

{

case 0x21:

$this->read_extension();

break;

case 0x2c:

$this->read_image_descriptor();

break;

case 0x3b:

$loop false;

break;

default:

            
if($this->debugprintf("Unrecognized byte code 0x%x, truncating file!\n<br>"$this->buffer[0]);

$loop false;

}

}

if($this->mod == 'C_FILE')

fclose($this->fin);

}



function read_image_descriptor()

{

$this->getbytes(9);

$head $this->buffer;

    
$this->local_color_table_flag = ($this->buffer[8] & 0x80) ? true false;

    
if($this->local_color_table_flag)

    
{

        
$sizecode $this->buffer[8] & 0x07;

$size << $sizecode;

$this->getbytes($size);

for($i 0$i < ($size); $i++)

{

        
$this->local_in[$i] = $this->buffer[$i];

        
}

        
if($this->out_color_table_size == 0)

        
{

        
$this->out_color_table_size $size;

        
$out_color_table_sizecode $sizecode;

for($i 0$i < ($size); $i++)

{

$this->global_out[$i] = $this->local_in[$i];

}

        
}

    
}

    
if($this->first)

    
{

$this->first false;

$this->fout .= "\x47\x49\x46\x38\x39\x61"// <= 'GIF89a'

if($this->width && $this->height)

{

$this->logical_screen_descriptor[0] = $this->width 0xFF;

$this->logical_screen_descriptor[1] = ($this->width 0xFF00) >> 8;

$this->logical_screen_descriptor[2] = $this->height 0xFF;

$this->logical_screen_descriptor[3] = ($this->height 0xFF00) >> 8;

}

$this->logical_screen_descriptor[4] |= 0x80;

$this->logical_screen_descriptor[5] &= 0xF0;

$this->logical_screen_descriptor[6] |= $this->out_color_table_sizecode;

$this->putbytes($this->logical_screen_descriptor7);

        
$this->putbytes($this->global_out, ($this->out_color_table_size 3));

if($this->use_loop)

{

$ns[0] = 0x21;

$ns[1] = 0xFF;

$ns[2] = 0x0B;

$ns[3] = 0x4e;  // N

$ns[4] = 0x45;  // E

$ns[5] = 0x54;  // T

$ns[6] = 0x53;  // S

$ns[7] = 0x43;  // C

$ns[8] = 0x41;  // A

$ns[9] = 0x50;  // P

$ns[10] = 0x45// E

$ns[11] = 0x32// 2

$ns[12] = 0x2e// .

$ns[13] = 0x30// 0

$ns[14] = 0x03;

$ns[15] = 0x01;

$ns[16] = $this->loop 255;

    
$ns[17] = $this->loop >> 8;

$ns[18] = 0x00;

$this->putbytes($ns19);

}

    
}

  
if($this->use_global_in)

{

$outtable $this->global_in;

$outsize $this->global_color_table_size;

$outsizecode $this->global_color_table_sizecode;

}

else

{

$outtable $this->global_out;

$outsize $this->out_color_table_size;

}

if ($this->local_color_table_flag)

{

if ($size == $this->out_color_table_size && !$this->arrcmp($this->local_in$this->global_out$size))

{

$outtable $global_out;

$outsize $this->out_color_table_size;

}

else

{

$outtable $this->local_in;

$outsize $size;

$outsizecode $sizecode;

}

}

$use_trans false;

if($this->transparent)

{

for ($i 0$i $outsize$i++)

if (   $outtable [$i ] == $this->trans1

&& $outtable [$i 1] == $this->trans2

&& $outtable [$i 2] == $this->trans3

)

break;

if ($i $outsize)

{

$transindex $i;

$use_trans true;

}

else

{

if($this->debug) print "Transparent color not found!\n<br>";

}

}

if($this->delay || $use_trans)

{

$this->buffer[0] = 0x21;

$this->buffer[1] = 0xf9;

$this->buffer[2] = 0x04;

$this->buffer[3] = ($this->disposal << 2) + ($use_trans 0);

$this->buffer[4] = $this->delay 0xff;

$this->buffer[5] = ($this->delay 0xff00) >> 8;

$this->buffer[6] = $use_trans $transindex 0;

$this->buffer[7] = 0x00;

$this->putbytes($this->buffer,8);

}

$this->buffer[0] = 0x2c;

$this->putbytes($this->buffer,1);

$head[0] = $this->0xff;

$head[1] = ($this->0xff00) >> 8;

$head[2] = $this->0xff;

$head[3] = ($this->0xff00) >> 8;

$head[8] &= 0x40;

if($outtable != $this->global_out)

{

$head[8] |= 0x80;

$head[8] |= $outsizecode;

}

$this->putbytes($head,9);

if($outtable != $this->global_out)

{

if($this->debug) print "Using local color table.\n<br>";

$this->putbytes($outtable, ($outsize));

}

$this->getbytes(1);

$this->putbytes($this->buffer,1);

for (;;)

{

$this->getbytes(1);

$this->putbytes($this->buffer,1);

if(($u $this->buffer[0]) == 0)

{

break;

}

$this->getbytes($u);

$this->putbytes($this->buffer$u);

    
}

}



function read_extension()

{

    
$this->getbytes(1);

    
switch($this->buffer[0])

    
{

case 0xf9:

if($this->debug) print "Skipping Graphic Control Extension.\n<br>";

     $this->getbytes(6);

    break;

case 0xfe:

if($this->debug) print "Skipping Comment Extension.\n<br>";

     for (;;)

     {

$this->getbytes(1);

                
if (($u $this->buffer[0]) == 0)

     break;

$this->getbytes($u);

     }

     break;

case 0x01:

if($this->debug) print "Skipping Plain Text Extension.\n<br>";

     $this->getbytes(13);

     for (;;)

     {

$this->getbytes(0);

                
if (($u $this->buffer[0]) == 0)

     break;

$this->getbytes($u);

     }

break;

       
case 0xff:

if($this->debug) print "Skipping Application Extension.\n<br>";

     $this->getbytes(9);

     $this->getbytes(3);

     for (;;)

     {

$this->getbytes(1);

                
if (!$this->buffer[0])

                
break;

                
$this->getbytes($this->buffer[0]);

            
}

break;

default:

if($this->debug) print "Skipping unrecognized extension.\n<br>";

     for (;;)

     {

$this->getbytes(1);

        
if(!$this->buffer[0])

        
break;

$this->getbytes($this->buffer[0]);

}

    
}

}







function arrcmp($b$s$l)

{

for($i 0$i $l$i++)

{

if($s{$i} != $b{$i}) return false;

}

return true;

}







function getbytes($l)

{

for($i 0$i $l$i++)

{

if($this->mod == 'C_FILE')

{

        
$bin unpack('C*'fread($this->fin1));

        
$this->buffer[$i] = $bin[1];

        
}

        
else if($this->mod == 'C_MEMORY')

        
{

                
$bin unpack('C*'substr($this->fin$this->ch1));

                
$this->buffer[$i] = $bin[1];

                
$this->ch++;

        
}

}

return $this->buffer;

}







function putbytes($s$l)

{

for($i 0$i $l$i++)

{

$this->fout .= pack('C*'$s[$i]);

}

}







function getAnimation()

{

return $this->fout;

}

}

?>



pouzity gify v animacich:



12
Tipy a triky pro Linux / Rss Desktop Widget
« kdy: 12 Března 2010, 22:59:19 »
Elegantni Rss desktop widget ( python + pygtk)

Z duvodu vetsiho mnozstvi zavislosti nejdrive:
Kód: [Vybrat]
sudo apt-get install python-webkit python-gobject python-gtk2 python-gtk2-dev python-glade2 python-cairo
a zde je samotnej kod v pythonu, z duvodu ze ma vsak vice nez povolenej pocet radku prikladam jej ako txt domument. Je to script v pythonu, takze si vytvorime prazdnej soubor, pastneme do nej kod a nastavime jej aby byl zpustitelnej. Nasledne pro spousteni je dobry udelat si spoustec. To je vse.

Script je v priloze


[attachment deleted by admin]

13
Tipy a triky pro Linux / Undo/Redo patch pro Nautilus
« kdy: 15 Ledna 2010, 23:16:01 »
Velice zajimavy a uzitecny patch pro nautilus podporujici undo/redo. Myslim ze neni potreba obsahle vysvetlovat co Undo/Redo znaci, jako priklad uvedu treba smazete nejaky soubor a chcete jej obnovit , neni potreba lezt do kose staci  hned v prvni polozce pod EDIT udelat krok zpatky (Undo) .

Na screenshotu je ukazka spjena s nasledujicim. V adresari jsem vytvoril txt document a prejmenoval jsem jej na test.txt . Pod EDIT jako prvni mam Undo rename of 1 Item, co znaci vratit posledni krok zpet a tim bylo prejmenovani dokumentu.



a ted postup (tenhle patch je pro nautilus 2.28 a 2.29 to znamena Karmic a Lucid):

Otevreme terminal a zadame:

Kód: [Vybrat]
sudo apt-get install wget
wget http://diuf.unifr.ch/pai/people/broccoa/nautilus/nautilus_2.28.1-81attila1_i386.deb
wget http://diuf.unifr.ch/pai/people/broccoa/nautilus/nautilus-data_2.28.1-81attila1_all.deb
wget http://diuf.unifr.ch/pai/people/broccoa/nautilus/libnautilus-extension1_2.28.1-81attila1_i386.deb
sudo dpkg -i *.deb

nasledne je potreba restartnout nautilus takze:

Kód: [Vybrat]
sudo killall nautilus

no a muzeme nautilus obnovit , ALT + F2 a zadame

Kód: [Vybrat]
nautilus

Nasledne nas nautilus jiz obsahuje velice uzitecny Undo/Redo

Za patch samozrejme patri podekovani pro uzivatele mriya3 publikovanem na http://ubuntuforums.org/showthread.php?t=1360763 + video ktere ukazuje tuhle funkcionalitu je zde: http://www.youtube.com/watch?v=YCf94_p2SyA

Dalsi moznost instalace uz je dostupna take pres launchpad : https://launchpad.net/~mriya3/+archive/ppa/+packages

14
Tipy a triky pro Linux / Earth Wallpaper v realnem case
« kdy: 29 Prosince 2009, 14:23:44 »
Udelat si plochu aby vypadala jako pohled na nasi planetu tak, ze bude videt kde je den, kde je noc a povetrnostni situace. Je krasne videt jak v noci sviti velky mesta. Za pouziti scriptu se kazdych 10 minut meni zaber, takze nas wallpaper je prakticky v realnem case.

Nejdriv ukazka:



A ted postup:

1.) otevreme si editor a pastneme do nej nasledujici kod

Kód: [Vybrat]
#!/bin/bash

cd ~/.gnome2/
while :; do
COUNTER=0
while [  $COUNTER -lt 60 ]; do
wget http://www.opentopia.com/images/cams/world_sunlight_map_rectangular.jpg -O world.jpg
temp=$(stat -c%s world.jpg)
if [[ $temp > 1000 ]]
then rm world_sunlight_Wallpaper.jpg
mv world.jpg world_sunlight_Wallpaper.jpg
break
fi
sleep 5
         let COUNTER=COUNTER+1
done
sleep 3600
done

ulozime si dokument jako changer.sh, ulozime si jej treba do domovskeho adresare

2.) nastavime mu prava aby byl zpustitelny

3.) ve Startup Applications (aplikace zpoustejici se pri startu) si vytvorime novy zapis a zadame cestu k nasemu souboru

4.) udelame logout (odhlaseni)

5.) po prihlaseni si udelame zmenu pozadi plochy, tak ze  pujdeme do slozky .gnome2 (nachazi se v nasem domovskem adresari, povolime zobrazovani skrytych souboru) a tam uvidime foto s nazvem world_sunlight_Wallpaper.jpg, a tu si dame jako pozadi.
Kazdych 10 minut se nam pozadi bude menit dle realneho pohledu na nasi planetu



[attachment deleted by admin]

15
Tipy a triky pro Linux / Karmic Koala Bible !
« kdy: 20 Prosince 2009, 23:53:46 »
Neobvykly nazev topicu, jedna se vsak o striktni zachovani titulu zdroje. Na serveru makeuseof.com byl zverejnen pefektne zpracovan navod k uzivani Ubuntu Karmic Koala. Navod je zverejnen jako stahnutelne PDF a take jako online  dokument na scribd.com. Dokumenty jsou v anglictine, myslim si vsak, ze pro zacatecniky to muze byt opravdu vhodna literatura. Pokud vsak moderatori usoudi ze to zde nema co hledat, tak at topic locknou.


Dokument ke stazeni jako PDF : http://makeuseof.org/ubuntu

A online verze na Scribd.com : http://www.scribd.com/doc/23070146/MakeUseOf-com-Ubuntu-Karmic-Koala-Bible

16
Tipy a triky pro Linux / Dalsi tip co zrychli Firefox
« kdy: 14 Prosince 2009, 17:34:05 »
Ohledne zrychleni Firefoxu zde na foru najdete hezkych par tipu a vicemene vsechny jsou ucinne. Ted predstavim jeden kterej neni moc znamej.

Firefox od verze 3.0 uklada do jedne ze svych databaz informace ohledne podezrelych strankach a tahle databaze muze hezky narust . Kdyz navstivite jakoukoliv stranku, nejdriv se koukne do tyhle databaze a az pak jede dal. Jestli databaze narostla na 50 - 80 MB tak zacina pomalu ale jiste zpomalovat prvni nacitani stranky. Neni to zpomaleni extremni, ale casem muze byt znatelny. Takze postup je zde:

1.) otevreme si domovskej adresar
2.) povolime zobrazeni skrytejch souboru
3.) najdeme si adresar .mozilla
4.) nasledne v nem adresar firefox/vasprofil.default
5.) zde ted hledame soubor urlclassifier3.sqlite , ktery proste smazeme, nemusite se niceho bat soubor se automaticky znovu vytvori. Rozdil je v tom ze predtim nez ho smazete , kouknete se pro zajimavost jakou ma velikost ( u mne to bylo 55 MB), nasledne to zkontrolujte po znovuvytvoreni souboru ( 32 Kb )
6.) tuto cinnost muzete prubezne praktizovat
7.) sikovni kluci muzou klidne napsat script ktery to muze delat pres cron v pravidelnych intervalech


17
Otevřená diskuze kolem Linuxu a OSS / Prosim o radu ohledne UPS
« kdy: 14 Prosince 2009, 16:23:42 »
Prosim o radu spise ty zkusenejsi, co se zabivaji administraci rozlicnych reseni. Potreboval bych udelat zabezpeceni pri vypadku elektrickyho proudu alespon po dobu 10 minut, do ty doby by se zpustil zalozni agregat. Znacek jsem nasel vice, ale recenze zadne. Musi to fungovat zpusobem, ze pri vypadku, cinnost ktera bezi na PC (je to automatizovaj proces) musi pokracovat dal bez preruseni. UPS musi byt kompatibilni jak s UBUNTU tak s Windowsem.

Modelova situace:

1.) 10 x Desktop s pribliznou konfiguraci: Intel Dual Core 2 - 3 Ghz, Sata II Disk, 2 GB Ram,  CD Mechanika, Zakl. Deska Intel s integrovanou VGA, 17" Monitor
2.) 2 modemy (2 provideri)
3.) 2 x Fast Ethernet switch (Micronet 8 ports + Micronet 4 Ports)
4.) pozadavek ohledne zalohy je : 10 x PC +  2 x modem + 2 x switch
5.) monitory nejsou dulezite
6.) potrebna minimalni doba vydrze musi byt alespon 10 minut
7.) odhadovana vyse investice do 80 000 - 100 000  Kc

Poprosil bych o jednu laskavost. Na googlu hledat umim, takze bych prosil o rady vyslovene z praxe t.j. ze zkusenosti.

Dekuji

18
Tipy a triky pro Linux / Obnova GRUB 2 za pouziti Live CD
« kdy: 11 Prosince 2009, 19:59:06 »
Tenhle navod je urcen z duvodu stale vice mnozicich se problemu s GRUB 2 . Stava se to hlavne po nasledne instalaci Windowsu, ktere nam GRUB 2 rozbijou. Na Wiki je navod: http://wiki.ubuntu.cz/GRUB2#Obnoven.2BAO0_GRUB2_pomoc.2BAO0_LiveCD, to co budu popisovat , je temer identicky, zda se mi to vsak vice srozumitelny pro nezkusene uzivatele .

Tenhle zpusob se tyka jenom distribuci co jsou zalozeny na GRUB 2 (Karmic, Lucid a všechny další verze Ubuntu)

1.) nabootujeme se za pomoci Live CD
2.) otevreme terminal a zadame prikaz za pomoci kteryho zjistime kde mame nainstalovanej system
Kód: [Vybrat]
sudo fdisk -l
v tyhle ukazce mam system nainstalovanej na sda1 (koukni screenshot)

3.)nasledne si tenhle oddil primountujeme
Kód: [Vybrat]
sudo mount /dev/sda1 /mnt
sda1 jako vidite je ten oddil co jsme videli u predchoziho bodu ( u vas to klidne muze byt sda4, sda5 ...)

4.)ted pristoupime k instalaci u tohletoho bodu POZOR !!

Kód: [Vybrat]
sudo grub-install --root-directory=/mnt/ /dev/sda
DULEZITE : jako vidite instalaci jsme provedli na sda a ne na sda1 jak jsme celou dobu zjistovali. Je to z duvodu ze GRUB 2 instalujeme do MBR na pozadovanem HARD DISKU a sda1 byl oddil s Linuxem, kdezto Hard Disk je sda

5.) poslednim krokem je update nasi instalace

nejdriv restartujeme pocitac a po zpusteni zadame
Kód: [Vybrat]
sudo update-grub

Screenshot s postupem + pouzity zdroje:



anglicka verze: http://www.webupd8.org/2009/12/how-to-recover-grub2-linux.html
original : http://mundogeek.net/archivos/2009/12/08/recuperar-grub-2/

19
Google zrychluje Internet.

Vsichni ti co znaji Open DNS zde ted dostavaji lahudku v podobe Google Public DNS. co si budeme namlouvat, podle miho mineni, tnhle krok Google je hodne zajimavy. Presny a podrobny popis zprovozneni naleznete zde pro veschny platformy.

http://code.google.com/intl/es/speed/public-dns/docs/using.html


20
Otevřená diskuze kolem Linuxu a OSS / 5 mesicu s Ubuntu
« kdy: 03 Prosince 2009, 22:15:08 »
K napsani tohletoho postu mne privedl precteni si clanku na "renomovanem blogisku" jednoho pana (http://myego.cz/item/proc-zustanu-i-nadale-u-windows) . Je tomu zrovna 5 mesicu co jsem se zacal seznamovat podstatne blizsim zpusobem s desktopovou verzi Ubuntu, pro historicke fakty svedci muj tehdejsi post. http://forum.ubuntu.cz/index.php/topic,37405.msg274739.html#msg274739.

Jak vypada situace po 5 mesicich u mne ted ? Asi to shrneme nejdriv co vlastne v pocitaci mam. V pocitaci jsou zapojeny 3 harddisky ktere jsou premapovany takze grub krasne vyplyvne vsechno co ma a ja bootuji disk kterej potrebuji.
1 HD - Karmic na ext4 + Jaunty na ext3
2 HD - Jaunty na ext3
3 HD - windows XP + Jaunty pres Wubi

Puzivani 1 HD s pravidelnou synchronizaci dat ktere jsou kopirovana na druhej HD. Pred par dny jsem se odhodlal ke kroku kterym bylo instalace Virtual Boxu. Na tom by nebylo nic zvlastniho KDYBY. To kdyby ma jmeno windows. Uz po par tydnech mi bylo jasne ze windows budu pouzivat jen pokud to jinak nepujde a tak jsem se pokazde prepinal kdyz to bylo nevyhnutne. Po case jsem zjistil, ze veci co programuju a potrebuji k tomu windows zabiraji asi tak cca 0.02% casu stravenyho za PC. A z toho duvodu VIRTUAL. A to jeste nemluvim o tom ze prakticky posledni veci co potrebuji jsou ze potrebuji psat macra v excelu kvuli prenosu dat z Microsoft-ackyho serveru na linuxovej v realnym case, a kdybych nebyl linej tak to cely prepisu do OOO. (take k tomu dojde). Suma sumarum windows nepotrebuji. Pred 10 dny jsme s manzelkou se prestehovali docasne do Prahy (kvuli dceri ktera co nevidet rozsiri rady Ubuntaku  :) ) a kdyz posilate letecky kolem 800 kil veci, tak si rozmyslite co vsechno pujde. A tak jsem ze 4 mych pocitacu udelal dva a manzelcin pocitac necestoval vubec. Po prijezdu jsem zprovoznil nejakej vydobytek 15 stoleti a mel sem na vyber co tam dat. moznosti byli tyhle:

1.) dat tam windowsy a kazdou chvili se zapodivat s blbostema
2.) dat tam Karmic-a a poslouchat 2 dny , nez si na to zvykne

moznost jsem vybral druhou a uz po prvnim dnu jsem zacal asi v hodinovych intervalech slyset jeee,juuu

Dalsi WINDOWS-ak vymrel  ;D (myslim tim moji zenu )

Zpatky k rekapitulaci. Odkaz pro vsechny co rikaji "Proc zustanu u Windowsu", pro vsechny co po prvnich nezdarech , delaji hned instalaci piratskych windowsu zpatky je asi tenhleten.

Tohleto forum, k nemu patrici WIKI, a strycek google v kombinaci s troskou trpelivosti ti daji do rukou system , ktery muzes tvarovat jak jenom chces a bude delat presne to co potrebujes. Chces se hrat ? Chces programovat ? Chces jenom brouzdat po internetu? To vsechno muzes a usetrene penize (a to plati hlavne pro mladsi rocniky je vas zde dost ) radsi investujte do dalsiho vzdelani a ne placenim nesmyslnych licenci. A nejdulezitejsi je ze hlavne se naucite chapat jak ten cely system funguje.

Tak a dost agitace. Rozhodne zustanu dal u Ubuntu a windows uz jenom pres vitual box i kdyz nerad.

21
Tipy a triky pro Linux / Akcelerace apt-get-u pres axel
« kdy: 29 Listopadu 2009, 07:18:56 »
Nekdy se stava ze stahovani upgradu anebo instalacnich souboru je pomale.Stava se to z duvodu, protoze nektere FTP servery limitujou rychlost jednotlivych spojeni. Akcelerator Axel zpusobuje otevreni vice spojeni najednou a jako pisou autori dosahuje rychlost az 26-krat vetsi. Na zaver diky Matt-u Parnellovi mame script ktery nam vsechno zaridi.

1.) nejdriv potrebujeme mit instalovanej Axel
Kód: [Vybrat]
sudo apt-get install axel
2,) nasledne si vytvorime prazdnej soubor kterej pojmenujeme apt-fast a vlozime do nej
Kód: [Vybrat]
#!/bin/sh
#apt-fast by Matt Parnell http://www.mattparnell.com , this thing is FOSS
#please feel free to suggest improvements to admin@mattparnell.com
# Use this just like apt-get for faster package downloading. Make sure to have axel installed

#If the first user entered variable string contains apt-get, and the second string entered is either install or dist-upgrade
if echo "$1" | grep -q "[upgrade]" || echo "$2" | grep -q "[install]" || echo "$2" | grep -q "[dist-upgrade]"; then
echo "Working...";

#Go into the directory apt-get normally puts downloaded packages
cd /var/cache/apt/archives/;

#Have apt-get print the information, including the URI's to the packages
apt-get -y --print-uris $1 $2 $3 $4 > debs.list;

#Strip out the URI's, and download the packages with Axel for speediness
egrep -o -e "(ht|f)tp://[^\']+" debs.list | xargs -l1 axel -a;

#Perform the user's reqested action via apt-get
apt-get -y $1 $2 $3 $4;

echo "Done! Make sure and check to see that the packages all were installed properly. If a package is erred, run sudo apt-get autoclean and try installing it again without the use of this script.";

elif echo "$1" | grep -q "[*]"; then
apt-get $1;
else
echo "Sorry, but you appear to be entering invalid options. You must use apt-get and one of apt-get's options in order to use this script.";
fi

nastavime souboru prava
Kód: [Vybrat]
chmod +x apt-fast
a premistime ho do slozky /usr/bin


vysledek je ze instalaci jakyhokoliv balicku muzeme ted provadet zpusobem
Kód: [Vybrat]
sudo apt-fast install novybalicek

anebo updaty s upgradama

Kód: [Vybrat]
sudo apt-fast update && sudo apt-fast dist-upgrade
Na zaver podekovani za script: http://www.mattparnell.com/projects/apt-fast-and-axel-roughly-26x-faster-apt-get-installations-and-upgrades.html



[attachment deleted by admin]

22
Tipy a triky pro Linux / Firefox Ubuntu CZ Menu + Aplikace
« kdy: 01 Listopadu 2009, 11:56:10 »
Zpocatku jsem nechtel psat nove tema, kdyz moderatori usoudi tak to presunou do hlavniho ohladne addonu. Tenhle zpusob je napsan hlavne pro Ubuntu pod Gnome (upravit si to vsak pro jine prostredi je velice snadne). Po nejake dobe jsem se dostal k tomu abych zprovoznil zpousteni aplikaci primo z menu. Bezpecnostni opatreni ze strany mozilly jsou dost striktni a nedoporucuje se propojeni shellu s jadrem firefoxu coz ma svou logiku. Dalsi problem je ze k podpore vsech moznych aplikaci kod addounu bude hodne velkej. Jelikoz jsem to vsak chctel i kvuli svym potrebam , pomoci pythonu to jde. Mozilla jeste nepodporuje primou integraci pythonu tak jako javascriptu ale zpusob implementace ktery popisu je eleganti, jednoduchej a kazdej si to muze nastavit na miru.

V Ubuntu Cz menu si staci aktivovat submenu Extra's kde muzeme umistnovat javascriptove snippety (http://forum.ubuntu.cz/index.php/topic,38943.0.html)

Vybereme si jedno pole , nazev pojmenujeme treba super launcher a do url zadame cestu k souboru pack.py ktery si ted popiseme, takze kdyz soubor pack.py mame ulozenej treba v domovskym adresai cesta bude vypadat takhle -> /home/petrakis/pack.py  (samozrejmosti je ze uzivatelske jmeno si zmenite na sve)
Nasledne kdys klikneme na na nami vytvorenou polozku v menu firefox se nas zepta jestli script chceme otevrit anebo ulozit. My jej chceme otevrit, treba vsak vybrat program kterym ho chceme otevirat. Otevirat jej budeme pythonem , nekdo vsak ma defaultni verzi pythonu 2.4, nekdo 2.5 anebo 2.6 a 3.0. Zadame si cestu k nasi verzi -> File System/usr/bin/python2.4 (verze 2.4 je jako priklad, zkousejte svou verzi az se vam otevre popup okno s aplikaci, kdyz se vam otevre, zavrete jej a otevrete znovu a az pak potvrdte aby firefox oteviral pyhon asociaci vami zvolenou verzi pythonu). Od tehle chvile se vam bude otevirat aplikace s vami zvolenima programama k rychlemu zpousteni primo z firefoxu.

screenshot:



A ted k souboru pack.py

V souboru jsem schvalne ponechal take spousteni programu pres wine aby kazdy kdo chce videl jak to jde. Dulezite veci budu popisovat niz.

Radky ktere musite zmenit podle sve konfigurace jsou cesty k Wine aplikacim a cesta k ikonce aplikace

radek ikonky aplikace je tenhle:
self.win.set_icon_from_file('/usr/share/icons/exotic/scalable/apps/browser.png')

A ted k wine aplikacim. V souboru kterej popisuji se nachazeji 3 Wine Aplikace (Dreamweaver,Photoshop a Flash)

zakladni prefix vypada asi takhle (cestu k vasi wine aplikaci si najdete v editaci vaseho hlavniho menu systemu (prikaz v terminalu-> alacarte)):

env WINEPREFIX="/home/petrakis/.wine" wine "C:\Program Files\Macromedia\Dreamweaver 8\Dreamweaver.exe"

nakolik v pythonove syntaxi jak budete videt v kodu se dvojite uvozovky jiz nachazeji, syntaxe bude takovahle:

env WINEPREFIX='/home/petrakis/.wine' wine 'C:\Program Files\Macromedia\Dreamweaver 8\Dreamweaver.exe'

zmenili sme dvojite uvozovky za obycejne


Pri editaci souboru musite dbat na nasledujici:


Priklad vytvoreni zpoustece terminalu:

button = gtk.Button("Terminal")
button.connect("clicked",self.term,self.moz)
button.set_size_request(110,30)
hbox.pack_start(button)
button.show()

zde dulezity je self.term

nasledne si zadefinujeme tuhle funkci:

def term(self,widget,data):
subprocess.Popen("gnome-terminal", shell=True)
gtk.main_quit()


Je potrebne davat si pozor aby jse nemeli duplicitni nazev definice v tomhle pripade term


To uz by asi stacilo, zde je kod souboru pack.py (Aplikace ktere chcete smazat, proste smazte ale nazapominejte take mazat jejich definice, priklad uvedu smazani dreamwaeveru)

smazeme nasledujici:

button = gtk.Button("Dreamweaver")
button.connect("clicked",self.dr,self.moz)
button.set_size_request(110,30)
hbox.pack_start(button)
button.show()

a ted definici:

def dr(self,widget,data):
subprocess.Popen("env WINEPREFIX='/home/petrakis/.wine' wine 'C:\Program Files\Macromedia\Dreamweaver 8\Dreamweaver.exe' ", shell=True)
gtk.main_quit()



pack.py

Kód: [Vybrat]
#!/usr/bin/python

import pygtk
pygtk.require('2.0')
import gtk
import subprocess
import gtkmozembed



class PyMoz:
       

        def open_folder_selection(self,widget,data):
dialog = gtk.FileChooserDialog(title = "Open Folder" ,
action=gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER,
buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
                              gtk.STOCK_OK, gtk.RESPONSE_OK))
response = dialog.run()

if (response == gtk.RESPONSE_OK):
self.change_path(dialog.get_filename())
dialog.destroy()

return
       
        def delete_event(self,widget,data=None):
print("Exit")
return False

def destroy(self,widget,data=None):
gtk.main_quit()

        def term(self,widget,data):
subprocess.Popen("gnome-terminal", shell=True)
                gtk.main_quit()

        def editor(self,widget,data):
subprocess.Popen("gedit", shell=True)
                gtk.main_quit()

        def google(self,widget,data):
subprocess.Popen("evolution --component=mail", shell=True)
                gtk.main_quit()

       
        def screen(self,widget,data):
             subprocess.Popen("gnome-screenshot --interactive", shell=True)
             gtk.main_quit()

        def fir(self,widget,data):
             subprocess.Popen("firefox", shell=True)
             gtk.main_quit()

       
        def op(self,widget,data):
             subprocess.Popen("opera", shell=True)
             gtk.main_quit()

        def ch(self,widget,data):
             subprocess.Popen("chromium-browser --enable-plugins", shell=True)
             gtk.main_quit()

        def cc(self,widget,data):
             subprocess.Popen("gnome-control-center", shell=True)
             gtk.main_quit()

        def ch2(self,widget,data):
             subprocess.Popen("gftp", shell=True)
             gtk.main_quit()
       

        def calc(self,widget,data):
             subprocess.Popen("gcalctool", shell=True)
             gtk.main_quit()

        def char(self,widget,data):
             subprocess.Popen("gucharmap", shell=True)
             gtk.main_quit()

        def scr(self,widget,data):
             subprocess.Popen("screenlets-manager > /dev/null", shell=True)
             gtk.main_quit()

        def sea(self,widget,data):
             subprocess.Popen("gnome-search-tool", shell=True)
             gtk.main_quit()

        def ut(self,widget,data):
             subprocess.Popen("ubuntu-tweak", shell=True)
             gtk.main_quit()

        def dr(self,widget,data):
             subprocess.Popen("env WINEPREFIX='/home/petrakis/.wine' wine 'C:\Program Files\Macromedia\Dreamweaver 8\Dreamweaver.exe' ", shell=True)
             gtk.main_quit()

        def ph(self,widget,data):
             subprocess.Popen("env WINEPREFIX='/home/petrakis/.wine' wine 'C:\Program Files\Adobe\Photoshop CS\Photoshop.exe'  ", shell=True)
             gtk.main_quit()

        def fl(self,widget,data):
             subprocess.Popen("env WINEPREFIX='/home/petrakis/.wine' wine 'C:\Program Files\Macromedia\Flash 8\Flash.exe' ", shell=True)
             gtk.main_quit()

       
       
def __init__(self):
             
                self.moz = gtkmozembed.MozEmbed()
                box = gtk.VBox(False,0)

self.win = gtk.Window()
               
                self.win.add(box)
               
                hbox = gtk.HBox(5,5)
                frame = gtk.Frame("Tools")
                hbox.pack_start(frame)
                frame.show()
                box.pack_start(hbox,False,False,5)
                hbox.show()
               
               
                hbox = gtk.HBox(5,5)
                button = gtk.Button("Terminal")
button.connect("clicked",self.term,self.moz)
                button.set_size_request(110,30)
hbox.pack_start(button)
                button.show()

               
                button = gtk.Button(" Editor ")
button.connect("clicked",self.editor,self.moz)
                button.set_size_request(110,30)
                hbox.pack_start(button)
                button.show()

               
                button = gtk.Button("Calculator")
button.connect("clicked",self.calc,self.moz)
                button.set_size_request(110,30)
hbox.pack_start(button)
                button.show()
               
               
                button = gtk.Button("Screenshot")
button.connect("clicked",self.screen,self.moz)
                button.set_size_request(110,30)
                hbox.pack_start(button)
                button.show()

                box.pack_start(hbox,False,False)
                hbox.show()

                hbox = gtk.HBox(5,5)
                button = gtk.Button("Char. Map")
button.connect("clicked",self.char,self.moz)
                button.set_size_request(110,30)
                hbox.pack_start(button)
                button.show()
               
               
                button = gtk.Button("Screenlets")
button.connect("clicked",self.scr,self.moz)
                button.set_size_request(110,30)
                hbox.pack_start(button)
                button.show()

               
                button = gtk.Button("Ubuntu Tweak")
button.connect("clicked",self.ut,self.moz)
                button.set_size_request(110,30)
                hbox.pack_start(button)
                button.show()

               
                button = gtk.Button("Search Files")
button.connect("clicked",self.sea,self.moz)
                button.set_size_request(110,30)
                hbox.pack_start(button)
                button.show()

                box.pack_start(hbox,False,False,5)
                hbox.show()


                hbox = gtk.HBox(5,5)
                frame = gtk.Frame("Browsers")
                hbox.pack_start(frame)
                frame.show()
                box.pack_start(hbox,False,False,5)
                hbox.show()

                hbox = gtk.HBox(5,5)
                button = gtk.Button("Evolution")
button.connect("clicked",self.google,self.moz)
                button.set_size_request(110,30)
hbox.pack_start(button)
                button.show()

               
                button = gtk.Button("Firefox")
button.connect("clicked",self.fir,self.moz)
                button.set_size_request(110,30)
                hbox.pack_start(button)
                button.show()

               
                button = gtk.Button("Chromium")
button.connect("clicked",self.ch,self.moz)
                button.set_size_request(110,30)
                hbox.pack_start(button)
                button.show()
               
               
                button = gtk.Button("Opera")
button.connect("clicked",self.op,self.moz)
                button.set_size_request(110,30)
                hbox.pack_start(button)
                button.show()

               
                button = gtk.Button("Gftp")
button.connect("clicked",self.ch2,self.moz)
                button.set_size_request(110,30)
                hbox.pack_start(button)
                button.show()

                box.pack_start(hbox,False,False,5)
                hbox.show()

                hbox = gtk.HBox(5,5)
                frame = gtk.Frame("Programming")
                hbox.pack_start(frame)
                frame.show()
                box.pack_start(hbox,False,False,5)
                hbox.show()

                hbox = gtk.HBox(5,5)
                button = gtk.Button("Dreamweaver")
button.connect("clicked",self.dr,self.moz)
                button.set_size_request(110,30)
hbox.pack_start(button)
                button.show()

               
                button = gtk.Button("Photoshop")
button.connect("clicked",self.ph,self.moz)
                button.set_size_request(110,30)
                hbox.pack_start(button)
                button.show()

               
                button = gtk.Button("Macromedia Flash")
button.connect("clicked",self.fl,self.moz)
                button.set_size_request(110,30)
                hbox.pack_start(button)
                button.show()
               
                box.pack_start(hbox,False,False,5)
                hbox.show()


                hbox = gtk.HBox(5,5)
                frame = gtk.Frame("Home- Control Center - Close")
                hbox.pack_start(frame)
                frame.show()
                box.pack_start(hbox,False,False,5)
                hbox.show()

                hbox = gtk.HBox(5,5)
                button = gtk.Button("Home Folder")
button.connect("clicked",self.open_folder_selection,self.moz)
                button.set_size_request(110,30)
hbox.pack_start(button)
                button.show()

                button = gtk.Button("Control Center")
button.connect("clicked",self.cc,self.moz)
                button.set_size_request(110,30)
hbox.pack_start(button)
                button.show()

               
                button = gtk.Button("Close Super Launcher")
button.connect("clicked",self.destroy,self.moz)
                button.set_size_request(110,30)
                hbox.pack_start(button)
                button.show()

                box.pack_start(hbox,False,False,5)
                hbox.show()
box.pack_start(self.moz,True,True,0)
self.moz.show()
                self.moz.set_size_request(550,0)
                title=self.moz.get_title()
self.win.set_title("Super Launcher")
self.win.set_icon_from_file('/usr/share/icons/exotic/scalable/apps/browser.png')
self.win.show_all()


       

if __name__ == "__main__":
PyMoz()
gtk.main()

Soubor si ulozte a nezapomente nastavit mu prava aby byl zpustitelny.

PS: samozrejmosti je ze si muzete vytvorit zpoustec a otevirat pack.py jako vasi desktopovou aplikaci.

23
Tipy a triky pro Linux / UBUTNU CZ Python Pack
« kdy: 24 Října 2009, 12:35:15 »
Posledni 3 dny jsem si psal nekolik scriptu v pythonu a u toho me napadlo take zkouset par veci. Vysledek ukazu zde. Mozna to absolutne nikdo nevyuzije, mozna jo. Rozdil mezi praci v browseru a timhle je o dost nizzsi vytizeni CPU a RAM + mam hned po ruce par potrebnych nastroju. Nevim jestli to bude funkcni u Windowsu (ani mne to moc nezajima), testovano to bylo jak na jaunty tak na Karmicu. Snazil jsem se pouzivat knihovny pythonu ktere by z 98% mel mit kazdej. Jestli nekdo bude mit problemy je potreba se kouknout do kazdeho pythonovskeho souboru a zjistit co chybi, pripadne pomuzu.

Ubuntu CZ Forum v Pythonu



Otevrene vsechny dostupne nastroje (Google,terminal,Editor,Scriptbook, Screenshot)



Jak to funguje ?

1.) vsechny scripty si ulozte do nejakeho spolecneho adresare (musi byt spolu, pokud nechcete menit strukturu kodu v jednotlivych pythonovych scriptech)

2.) vsem scriptum nastavte prava aby byli zpustitelne


3.) soubor ubrowser.py je nastaven tak ze vas automaticky prihlasuje na forum takze v pripade ze to chcete nechat takhle, otevrete si soubor ubrowser.py v textovem editoru a najdete si tenhle radek:

self.moz.load_url('http://forum.ubuntu.cz/index.php?action=login2&amp;user=mujlogin&amp;passwrd=mojeheslo')

dosadte si vase udaje

jstli nechcete aby vas prihlasoval automaticky zmente ten radek takhle:

self.moz.load_url('http://forum.ubuntu.cz')

ted si v editoru otevrete soubor screen.py a najdete tenhle radek:

    pb.save("/home/petrakis/Desktop/screenshot.png","png")

nastavte si cestu kam chcete aby vam ukladal screeshoty

4.) ulozte zmeny v souborech ubrowser.py a screen.py,nasledne si treba  na plose  vytvorte spustec a zadejte cestu k souboru ubrowser.py


5.) muzete jej zpustit


UBUNTU CZ Forum Pack obsahuje:


ubrowser.py
gbrowser.py (popup okno pro google)
terminal.py (popup okno pro vte terminal)
editor.py (popup okno s Edile Editorem)
SCRIPTBOOK.py (script book pro ukladani scriptu, poznamek atd)
screen.py (nastroj pro snimky obrazovky)

Puvodne jsem se snazil postnout vsechny kody sem ale bylo to asi dlouhy a nechtelo to vzit, takze prikladam link na zip v kterym se vsechny soubory nachazeji

http://top100cyprus.com/Ubuntu_cz_python_pack.zip


24
Tenhle navod se tyka primarne Firefoxu, ale myslim ze pro dost lidi muze byt uzitecnej.

Hledal jsem zpusob jak upravit contextove menu, protoze samotne menu Firefoxu + rozlicne menu z doplnku zacalo delat hezky dlouhy sloupec. K tomu nektere doplnky duplikovaly urcite polozky , to znamena ze meli stejnou funkcionalitu jak defaultni Firefoxacke. Celej Firefox mam zminimalizovanej za pouziti doplnku Tiny Menu a tohle mi dost vadilo. Po uprave kterou popisi je vysledek takovej:



Jak na to, je to opravdu jednoduche a kazdej si to muze upravit dle svych potreb. Otevreme si skrytej adresar .mozilla v nasem domovskem adresari, nasledne otevreme adresar firefox ->profil a pak adresar chrome

mujdomovskyadresar/.mozilla/firefox/123456.default/chrome

*pozn. profil je u kazdeho jiny (pro ty co nemaji zkusenosti ohledne firefoxu)

zde se nachazeji dva css soubory ( u nekoho se muze nachazet jenom jeden, dulezitej pro nas je soubor userChrome-example.css )

otevreme si tenhle soubor a pridame si radky diky kterym chceme blokovat nami pozadovane polozky a ulozime jej jako userChrome.css

Zakladni syntaxe jsou dve:

Tou prvni je blokovani defaultnich Firefoxackych polozek a tou druhou blokovani polozek vytvorenych doplnky (uvedu priklad Adblocku)

1.) chceme blokovat polozku View Info

Kód: [Vybrat]
#context-viewinfo {
 display: none !important;
}

blokovani vice polozek treba View Info a Send Link...

Kód: [Vybrat]
#context-viewinfo,
#context-sendlink {
 display: none !important;
}

(jak vidite za prvni polozkou je pouzita carka, jedna se o standardni css syntaxi)

Vsechny syntaxe pro Firefox najdete zde: http://kb.mozillazine.org/UserChrome.css_Element_Names/IDs#Firefox_menus

2.) co vsak kdyz je vytvorena polozka nejakym doplnkem , jaka je zde syntaxe? Postup je pomerne znova jednoduchej, udelame si pravej klik abychom  videli popis polozky, nekam si ten popis poznacime a blokaci provedeme takhle. (Priklad Adblocku Plus)

Kód: [Vybrat]
menuitem[label="Adblock Plus: Block image..."] {
    display: none !important;
}

Kód: [Vybrat]
menuitem[label="Adblock Plus: Re-enable on this page"] {
    display: none !important;
}


25
Existuje vice variant ohledne pdf dokumentu pro Ubuntu, program ktereho popis nasleduje me oslovil jednoduchosti a rychlosti. Zacatkem upozornuji, ze se jedna o jednoduche veci, ktere vsak muzou byt castokrat uzitecne a pouziti dostacujici.

PDF Shuffler

Priklad, otevreme si stranky forum.ubuntu.cz a ubuntuforums.org (rekneme ze si chceme udelat pdfko z nejakych textu popisovanych na obou forech)

za pomoci cups-pdf si dane stranky ulozime jako pdf



nasledne si spustime program PDF Shuffler (nachazi se v menu pod polozkou Office)



dalsim krokem je ze si naimportujeme pdf dokumenty co chceme upravovat



v tomhle priklade stranek ze dvou dokumentu bylo 6 a ja potrebuji jenom 2, nepotrebne stranky vymazu



pokracuje krok export pdf a mame vytvorenej novej pdf dokument jenom s tim co bylo pozadovano





Tohle bylo jednoduche spojovani/redukce pdf dokumentu, program vsak dokaze i o neco narocnejsi veci. Pravej klik na dokument na zobrazi menu z dalsimi moznostmi



napriklad crop




PDF Shuffler je pro mne uzitecny rychly nastroj k jednoduchym ukonum ohledne pdf dokumentu, pro pokrocilejsi veci je potreba pouzit samozrejme jine nastroje. Jeho vyhoda je ze je malej a rychlej.


Domovska stranka a link pro stahnuti:

http://sourceforge.net/projects/pdfshuffler/

Stran: [1] 2 3

Provoz zaštiťuje spolek OpenAlt.