Linux-si.org

RTFB!

Archive for the ‘Linux/GNU’ Category

10ka za Gnome!

60%
40%

Včeraj je Gnome (desktop software) praznoval 10 obletnico. Po 10ih letih razvoja se danes lahko mi uporabniki razvajamo z zastonj desktop aplikacijo na Linux/UNIX operacijskih sistemih. Prvo obvestilo o začetku Gnome projekta je najavil Miguel de Icaza ki je tudi ustanovitelj projekta.

10ka za gnome

iNobl: 24% [?]

  • 2 komentarjev
  • Kategorije: Linux/GNU and Novice
  • Izšel LinuxMCE 0704

    80%
    20%

    Kaj je LinuxMCE ? LinuxMCE je medijski dodatek za Linux distribucijo Kubuntu! Zadeva je krasna in priporočam da si ogledate sledeči video! Pa še ena novička in opis o zadevi

    http://video.google.com/videoplay?docid=2176025602905109829

    iNobl: 30% [?]

    CakePHP: Uporaba pager-ja

    75%
    25%

    Tokrat bom opisal eno preprosto uporabo pagerja v CakePHP aplikaciji. Primer bom navedel za novice. Recimo da hočemo na eni strani po 5 novic razvrščenih po datumu.

    Na svežo si skopiramo nekam najnovejšo različico CakePHP frameworka. Jaz sem si dal zadevo v direktorij “cakephp”. Kam boste dali sami je vaša odločitev.

    V app/config/core.php spremenimo vrednost konstante CAKE_SESSION_STRING v nek drug poljuben random string. To nam sistem tudi napiše. Imeti morate tudi pisljiv app/tmp direktorij.

    Gremo k bistvu. Naredimo bazo. V bazi naredimo tabelo news z naslednjimi polji:

    1. CREATE TABLE `news` (
    2. `id` int(11) NOT NULL AUTO_INCREMENT,
    3. `title` varchar(35) NOT NULL,
    4. `flash` text NOT NULL,
    5. `content` text NOT NULL,
    6. `hidden` tinyint(1) NOT NULL,
    7. `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    8. PRIMARY KEY (`id`),
    9. FULLTEXT KEY `content` (`content`),
    10. FULLTEXT KEY `flash` (`flash`)
    11. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

    Lahko bi uporabil samo id, title, content, created polja vendar sem zaradi nadlanjih zapisov tabelo malce razširil da se nebo treba takrat matrati :)

    Sedaj preimenujemo app/config/database.php.default v database.php. V database.php nastavite vse potrebne podatke za povezavo do vaše baze.
    Primer:

    1. class DATABASE_CONFIG {
    2.  
    3. var $default = array(
    4. 'driver' => 'mysql',
    5. 'persistent' => false,
    6. 'host' => 'localhost',
    7. 'login' => 'username_za_dostop_do_vase_baze',
    8. 'password' => 'geslo',
    9. 'database' => 'ime_vase_baze',
    10. 'prefix' => ''
    11. );
    12. }

    F5 in sistem bi vam moral izpisati da se je uspešno povezal do vaše baze => “Your database configuration file is present.”. V primeru napake vam bo to sistem lepo povedal :)

    Naredimo file app/app_controller.php. In dodamo vanj naslednje:

    1. < ?php
    2.  
    3. class AppController extends Controller {
    4.  
    5. public $ext = '.tpl';
    6.  
    7. }
    8.  
    9. ?>

    Kaj nam app_controller.php omogoča ? Omogoča nam da v aplikaciji nastavimo neke nastavitve na neko vrednost ki jo hočemo da je veljavna povsod in ne samo v določenem kontrolerju. S spremenljivko $ext nastavimo končnico za template “.tpl”. Po defaultu uporablja sistem .ctp. Ta korak vam ni treba narediti vendar morate template ustvariti z .ctp končnico namesto .tpl.

    Naredimo kontroler. app/controllers/news_controller.php
    V news_controller.php file damo naslednje:

    1. < ?php
    2.  
    3. class NewsController extends AppController {
    4. public $name = 'News';
    5. public $uses = array('News');
    6.  
    7. public function index()
    8. {
    9.  
    10. }
    11. }
    12.  
    13. ?>

    Naredimo model models/news.php. Dodamo naslednje:

    1. < ?php
    2.  
    3. class News extends AppModel {
    4. public $name = 'News';
    5. }
    6.  
    7. ?>

    Naredimo tepmlate za prvo stran pri novicah app/views/news/index.tpl. Sedaj gremo na http://vas.host.name/direktorij_kjer_je_cakephp/news/. Če je kaj pravice na svetu potem nebi smeli dobiti nobenega error-ja.

    Dodajmo nekaj vnosov v tabelo news.

    1. INSERT INTO `news` VALUES (1, 'Novica 1', 'Uvod za novico 1', 'Glavno besedilo za novico 1', 0, '2007-08-04 19:31:53');
    2. INSERT INTO `news` VALUES (2, 'Novica 2', 'Uvod za novico 1', 'Glavno besedilo za novico 2', 0, '2007-08-04 19:31:53');
    3. INSERT INTO `news` VALUES (3, 'Novica 3', 'Uvod za novico 3', 'Glavni opis za novico 3', 0, '2007-08-04 19:32:52');
    4. INSERT INTO `news` VALUES (4, 'Novica 4', 'Uvod za novico 4', 'Glavni opis za novico 4', 0, '2007-08-01 19:32:52');
    5. INSERT INTO `news` VALUES (5, 'Novica 5', 'Uvod za novico 5', 'Glavni opis za novico 5', 0, '2007-08-01 19:33:53');
    6. INSERT INTO `news` VALUES (6, 'Novica 6', 'Uvod za novico 6', 'Glavni opis za novico 6', 0, '2007-08-04 19:33:53');
    7. INSERT INTO `news` VALUES (7, 'Novica 7', 'Uvod za novico 7', 'Glavno besedilo za novico 7', 0, '2007-07-04 19:31:53');
    8. INSERT INTO `news` VALUES (8, 'Novica 8', 'Uvod za novico 8', 'Glavno besedilo za novico 8', 0, '2007-08-04 19:31:53');
    9. INSERT INTO `news` VALUES (9, 'Novica 9', 'Uvod za novico 9', 'Glavni opis za novico 9', 0, '2007-08-04 19:32:52');
    10. INSERT INTO `news` VALUES (10, 'Novica 10', 'Uvod za novico 10', 'Glavni opis za novico 10', 0, '2007-06-04 19:32:52');
    11. INSERT INTO `news` VALUES (11, 'Novica 11', 'Uvod za novico 11', 'Glavni opis za novico 11', 0, '2007-08-02 19:33:53');
    12. INSERT INTO `news` VALUES (12, 'Novica 12', 'Uvod za novico 12', 'Glavni opis za novico 12', 0, '2007-08-03 19:33:53');

    V kontrolerju pridobimo podatke in vključimo pager in nato prikažimo zapise v index.tpl.

    V news_controller.php dodajmo:

    1. public $paginate = array('limit' => 5, 'page' => 1);

    V index() funkcijo dodajmo naslednje:

    1. $this->paginate['order'] = array('created' => 'desc');
    2. $this->set('News', $this->paginate('News'));

    V prvi vrstici povemo pager-ju da naj rezultate sortira po polju created v padajočem načinu. V drugi vrstici pridobimo podatke iz baze in jih podamo v template index.tpl. V index.tpl bodo novice v $News spremenljivki.

    Sedaj bi moral news_controller.php izgledati nekako takole:

    1. < ?php
    2.  
    3. class NewsController extends AppController {
    4. public $name = 'News';
    5. public $uses = array('News');
    6. public $paginate = array('limit' => 5, 'page' => 1);
    7.  
    8. public function index()
    9. {
    10. $this->paginate['order'] = array('created' => 'desc');
    11. $this->set('News', $this->paginate('News'));
    12. }
    13. }
    14.  
    15. ?>

    Prikažimo podatke in pager v index.tpl.

    V index.tpl:

    1. <table cellpadding="0" cellspacing="0" width="50%">
    2. <tr style="font-weight: bold;">
    3. <td>Naslov</td>
    4. <td>Uvod</td>
    5. <td>Dodano</td>
    6. </tr>
    7. < ?php
    8. if(!empty($News)) {
    9. foreach ($News as $Item) { ?>
    10. <tr>
    11. <td>< ?php echo $Item['News']['title']; ?></td>
    12. <td>< ?php echo $Item['News']['flash']; ?></td>
    13. <td>< ?php echo $Item['News']['created']; ?></td>
    14. </tr>
    15. < ?php }} ?>
    16. </table>
    17.  
    18.  
    19. <div style="text-align: center;">
    20. < ?php echo $paginator->prev('Nazaj'); ?>
    21. < ?php echo $paginator->numbers(); ?>
    22. < ?php echo $paginator->next('Naprej'); ?>
    23. </div>

    Evo, to je cela umetnost :) Mislim da vsi štekate kaj sem nareidl v index.tpl ? I hope so :)

    Naslednjič bomo o dodajanju in urejanju novic, zato zadevo le shranite da nebo treba še enkrat delat ;)

    Zadevo si lahko ogledate na http://www.linux-si.org/cakephp/news/

    Uporabil:
    PHP 5.2.3
    MySQL 5
    CakePHP cake_1.2.0.5427alpha
    http://www.linux-si.org/cakephp/news/

    P.S. Ne me jebat za kake morebitne slovnične napake :D

    iNobl: 32% [?]

  • 1 komentar
  • Kategorije: Linux/GNU, PHP and Software
  • 0%
    0%

    Je mel kdaj kdo željo da bi imel vse naštete IE (Internet Explorer) verzije na enem sistemu brez velikih naporov ? Ali je sploh možno imeti na WinXP dve verziji IE ? Pustimo VmWare ipd. sranje. Na Linux OS oz. sistemu ki ima nameščen in delujoč wine, je to mogoče :)
    IEs4Linux je skriptica ki nam namesti vse omenjene verzije v enem zamahu :) To pride prav predvsem razvijalcem web aplikacij ki uporabljajo *NIX OS.

    Kako namestiti vse skupaj ? Na ubuntu Feisty Fawn (tudi na edgy in dapper bi moralo delovati) lahko storiš z naslednjimi koraki.

    1. sudo vi /etc/apt/sources.list

    Lahko uporabiš tudi easy editor (ee) ali karkoli drugega namesto vi.

    V /etc/apt/sources.list dodaš naslednje:

    Feisty:

    deb http://de.archive.ubuntu.com/ubuntu feisty universe
    deb http://wine.budgetdedicated.com/apt edgy main

    ### V drugi vrstici mora biti edgy ker za feisty še ni paketov. Ampak z edgy paketom deluje vse OK tudi na Feisty distribuciji.###

    Edgy:

    deb http://de.archive.ubuntu.com/ubuntu edgy universe
    deb http://wine.budgetdedicated.com/apt edgy main

    Dapper:

    deb http://de.archive.ubuntu.com/ubuntu dapper universe
    deb http://wine.budgetdedicated.com/apt dapper main

    shranite in zaprete. Poženeš naslednje:

    1. sudo apt-get update

    Ko se posodobi baza z paketki nadaljuješ z naslednjim ukazom:
    1. sudo apt-get install wine cabextract

    Če dobite kaj podobnega temu “Install these packages without verification [y/N]?” odgovorite z y

    Sedaj vse naslednje korake izvedeš kot navaden uporabnik in ne kot root!!!

    1. cd ~
    2. wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-2.5beta6.tar.gz
    3. tar xvzf ies4linux-2.5beta6.tar.gz
    4. cd ies4linux-2.5beta6
    5. ./ies4linux

    Pognal se ti bo grafični vmestnik kjer izbereš katere verzije IEja žeilš namestiti. Če klikneš na “Advanced” imaš možnost da izbereš še IE7.

    To je cela zgodba! Ko se namestitev konča se na desktopu pojavijo ikonce za vse nameščene verzije.

    IE7 sicer izgleda kot IE6 ker wine še ne podpira IE7 in je zato samo engine za rendiranje strani od IE7 kar je isto.

    Upam da pride komu prav ;) Meni se je kar oddahnilo ;)

    iNobl: 30% [?]

    Kako dodati IP naslov v Ubuntu OS

    0%
    0%

    Včasih rabimo na sistemu več IP naslovov. Ker nam po defaultu Ubuntu doda samo en IP naslov bom pokazal kako se doda nov IP naslov. Zadeva je zelo preprosta tako da nebi smeli imeti težav.

    Kaj potrebujete:
    SU (SuperUser) dostop
    vi ali katerikoli drug editor (jaz bom uporabil ee)

    Prijavite se v sistem (preko konzole SSH) in se zlogirajte v sistem kot su.

    su

    ali

    sudo su

    ali pa uporabite

    sudo

    pred ukazi.

    Vsi IP naslovi in pa nastavitve za mrežo se nahajajo v datoteki: /etc/network/interfaces

    ee /etc/network/interfaces

    V datoteki bi moralo biti nekaj podobnega naslednjemu:

    # This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).

    # The loopback network interface
    auto lo
    iface lo inet loopback

    # The primary network interface

    auto eth0
    iface eth0 inet static
    address 10.0.0.10
    netmask 255.255.255.0
    network 192.0.0.0
    broadcast 10.0.0.255
    gateway 10.0.0.99
    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers 10.0.0.99

    Če dobite kaj temu podobnega potem ste na pravi poti. Kot vidite uporabljam IP naslove 10.0.0.xx.

    Naslednje dodamo pod to kar smo dobili:

    auto eth0:1
    iface eth0:1 inet static
    address 10.0.0.20
    netmask 255.255.255.0
    network 192.0.0.0
    broadcast 10.0.0.255
    gateway 10.0.0.99
    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers 10.0.0.99

    Shranimo! Kot vidite sem dodal nov IP naslov 10.0.0.20 mrežni kartici eth0:1. eth0 je mrežna kartica (če jih imate več pač izberete katero hočete uporabiti) :1 je za ločilo IP naslovov tako da jih lahko dodamo neomejeno :2 :3 :4 itd.

    Če sedaj poženete ukaz ifconfig boste dobili še stare podatke o mreži.

    # ifconfig
    eth0 Link encap:Ethernet HWaddr 00:40:F4:60:D7:A1
    inet addr:10.0.0.10 Bcast:10.0.0.255 Mask:255.255.255.0
    inet6 addr: fe80::240:f4ff:fe60:d7a1/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:147909 errors:0 dropped:0 overruns:0 frame:0
    TX packets:125638 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:44033380 (41.9 MiB) TX bytes:42312161 (40.3 MiB)
    Interrupt:11 Base address:0×6000

    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    inet6 addr: ::1/128 Scope:Host
    UP LOOPBACK RUNNING MTU:16436 Metric:1
    RX packets:4118 errors:0 dropped:0 overruns:0 frame:0
    TX packets:4118 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:330719 (322.9 KiB) TX bytes:330719 (322.9 KiB)

    Da osvežite podatke ki ste jih dodali v /etc/network/interfaces poženite naslednji ukaz:

    /etc/init.d/networking restart

    Ko to izvedete bi morali dobiti naslednje:

    # ifconfig
    eth0 Link encap:Ethernet HWaddr 00:40:F4:60:D7:A1
    inet addr:10.0.0.10 Bcast:10.0.0.255 Mask:255.255.255.0
    inet6 addr: fe80::240:f4ff:fe60:d7a1/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:148383 errors:0 dropped:0 overruns:0 frame:0
    TX packets:126045 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:44075455 (42.0 MiB) TX bytes:42363253 (40.4 MiB)
    Interrupt:11 Base address:0×6000

    eth0:1 Link encap:Ethernet HWaddr 00:40:F4:60:D7:A1
    inet addr:10.0.0.20 Bcast:10.0.0.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    Interrupt:11 Base address:0×6000

    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    inet6 addr: ::1/128 Scope:Host
    UP LOOPBACK RUNNING MTU:16436 Metric:1
    RX packets:4125 errors:0 dropped:0 overruns:0 frame:0
    TX packets:4125 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:331391 (323.6 KiB) TX bytes:331391 (323.6 KiB)

    Tako. To je cela umetnost! Na ta način lahko dodate kolikor hočete IP naslovov. Jaz sem bil prijavljen kot ‘superuser’ zato nisem uporabljal sudo itd. Če niste kot ‘superuser’ potem pred vsemi ukazi uporabite sudo blablabla :)
    To sem delal na sistemu Ubuntu:

    Linux 2.6.17-10-server #2 SMP Fri Oct 13 18:47:26 UTC 2006 i686 GNU/Linux

    iNobl: 18% [?]