Krusader w Ubuntu – jak podpiąć terminal?

Krusader jest dydykowany KDE jednak jeśli ktoś lubi dwa panele to równie dobrze można go uruchomić pod GNOME. Konfiguracja nie różni się właściwie od tej pod KDE poza kilkoma drobiazgami. W GNOME domyślnym edytorem jest „gedit” a konsolą „gnome-terminal” w związku z czym w zakładce Ustawienia -> Konfiguracja Krusadera -> Ogólne na karcie Podstawowe operacje w polu Edytor zamiast

internal editor

warto wpisać

gnome

natomiast w polu Terminal zamiast

konsole --workdir %d

powinniśmy wpisać

gnome-terminal --working-directory=%d

.

Tyle że po zapisaniu i wybraniu F2 terminal się uruchomi, ale bynajmniej nie w bieżącej lokalizacji. W Krusaderze jest błąd, który po zapisaniu zmienia %d na %25d czyli dostajemy gnome-terminal –working-directory=%25d. Można ten problem obejść edytując ręcznie plik konfiguracyjny ~/.kde/share/config/krusaderrc. W sekcji [General] wpisujemy

Terminal=gnome-terminal --working-directory %d

Proszę zwrócić uwagę na brak znaku równości „=”.

Udana konferencja 4Developers 2010

W tym roku miałem okazję uczestniczyć w konferencji 4Developers. Świetnie przygotowana impreza zarówno z punktu widzenia organizacyjnego, jak i merytorycznego sprawiła, iż te kilka godzin prelekcji uznaję za bardzo dobrze spędzony czas, który przyniósł mi nie tylko masę pozytywnych wrażeń, ale przede wszystkim ograniczył nieco moją zawodową indolencję.

Więcej na ten temat napisałem na stronie wynurzenie.com, gdzie wszystkich Was serdecznie zapraszam.

Tworzenie obiektów w JavaScript

W JavaSripcie istnieje bazowa klasa Object, która stanowi prototyp wszystkich pozostałych obiektów JavaScript. Można jej użyć bezpośrednio do utworzenia obiektu.

    obj = new Object();
    obj.x = 1;
    obj.y = 2;

lub alternatywnie

    obj = {};
    obj.x = 1;
    obj.y = 2;

Nawiasy klamrowe stanowią semantyczny skrót podobnie jak użycie nawiasów kwadratowych (arr = []) może zastąpić arr = new Array(). Tablica czyli Array jest jednym z wielu wbudowanych w JavaScript obiektów podobnie jak Window, Document itd.

Aby utworzyć niestandardowy obiekt należy najpierw zdefinować prototyp Klasy, której instancją dany obiekt będzie. Najprościej utworzyć prototyp metodą konstruktora.

var Foo = function() {
    this.x = 1;
    this.y = 2;
    this.sum = function() {
       return this.x + this.y;
    }
}

W konstruktorze definiujemy właściwości i metody. Nową instancję tworzy się z użyciem operatora new.

    obj = new Foo();
    alert(obj.x);
    alert(obj.sum());

Do właściwości lub metod można się odwołać za pośrednictwem utworzonego w ten sposób obiektu, ale można też pominąć operację przypisania do zmiennej i wywołać metodę w sposób niemożliwy np. w PHP.

	alert(new Foo().sum());

Wywołując obj = new Foo(); powołuje się do życia instancje prototypu Foo. Można następnie wywołać metodę obj.sum();. Metodę sum można też wywołać z pominięciem przypisania obiektu do zmiennej new Foo().someMethod(); Tak czy inaczej zawsze w trzeba w pierwszej kolejności utworzyć obiekt.

Definiowanie klas metodą prototypu jest łatwe i intuicyjne, nie mniej w przypadku powoływania wielu obiektów danego prototypu zalecany jest sposób definiowania metod z użyciem prototype (nie mylić z frameworkiem prototype).

var Foo = function() { 
    this.x = 1;
    this.y = 2;
};
 
Foo.prototype.sum = function() {
   return this.x + this.y;
}

Różnica polega na tym, że w pierwszym przypadku przy powoływaniu do życia nowej instancji za każdym razem metoda „sum” tworzona jest na nowo, a w drugim przypadku jest to cały czas jedna i ta sama metoda. Zyskuję się na zaoszczędzonej pamięci co przy bardzo rozbudowanych skryptach nabiera znaczenia.

Zdefiniowanie metody z pominięciem słowa „prototype”:

var Foo = function() { };
 
Foo.sum = function(x, y) {
    return x+ y;
}

… daje możliwość wywołania metody klasy bez tworzenia obiektu Foo.sum(2,4); – to taki jakby odpowiednik metod statycznych w PHP. Analogicznie do metod statycznych w PHP użycie „this” wewnątrz takiej funkcji mija się z celem, więc gdybyśmy przez przypadek zdefiniowali:

var Foo = function() { 
    this.x = 1;
    this.y = 2;
};
 
Foo.sum = function() {
   return this.x + this.y;
}

to wywołanie Foo.sum(); zwróci „NaN” a z kolei new Foo().sum(); zakończy się błędem „TypeError on line 1: (new Foo).sum is not a function”.

W JS można też utworzyć obiekt ad hock

var Foo = {
    x: 1,
    y: 2,
    sum: function () {
        return this.x + this.y;
    }
}

W tym wypadku Foo nie jest prototypem tylko instancją prototypu Object dlatego oczywistym jest wywołanie Foo.sum(); z pominięciem operatora new.

perfectionorvanity.com – powrót po latach

Mówiąc krótko Piotr Petrus znów nadaje. Jeden z nielicznych blogów o tematyce webdeveloperskiej, które z chęcią czytałem z uwagi na wartość merytoryczną i estetyczną ginął powoli gdzieś tam w mrokach zapomnienia i myślałem już, że jego autor nigdy nie wznowi swojej Twórczości zagoniony obowiązkami dnia codziennego, pędem za karierą, pieniędzmi … ;). To żart oczywiście. Nie mniej bardzo się cieszę, że pojawiły się nowe wpisy na [perfectionorvanity.com](http://perfectionorvanity.com/) i wierzę, że stare wpisy zostaną przywrócone bo jak widzę, gdzieś się zadziały

Dropbox KDE

Instalacja [Dropboxa](https://www.dropbox.com) w Ubuntu to banał. Wystarczy wyedytować listę repozytoriów:

sudo gedit /etc/apt/sources.list

wkleić adresy repozytoriów Dropboxa

deb http://linux.dropbox.com/ubuntu karmic main
deb-src http://linux.dropbox.com/ubuntu karmic main

i zainstalować pakiet nautilus-dropbox

sudo apt-get install  nautilus-dropbox

Pakiet po zainstalowaniu pojawia się w menu->internet. Wystarczy uruchomić i postępować zgodnie z instrukcjami uruchomionego wizarda. Po przelogowaniu mamy działającego i synchronizującego pliki Dropboxa.

W KDE nie mamy jednak nautiliusa a Dropbox nie oferuje pakietów dla Dolphina o Krusaderze nie wspominając. Co zatem? Alternatywne metody instalcji opisane są w zakładce [TipAndTricks](http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall) na stronie Dropboxa.

Mając zainstalowane Kubuntu operacja nie jest tak trudna jakby się można tego spodziewać po oficjalnym „poradniku”.

Przede wszystkich wchodzimy do katalogu domowego.

cd ~/

Następnie przy pomocy wget-a ściągamy klienta [32](http://www.dropbox.com/download?plat=lnx.x86) lub [64](http://www.dropbox.com/download?plat=lnx.x86_64) bitowego.

wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86

Ściągnięte archiwum rozpakowujemy

tar -zxof dropbox.tar.gz

W katalogu domowym powinien nam się pojawić katalog *.dropbox-dist*. W tym momencie archiwum można już usunąć. Aby uruchomić Dropboxa wystarczy wywołać

~/.dropbox-dist/dropboxd &

znak „&” na końcu komendy spowoduje uruchomienie w tle

Lepiej jednak utworzyć link w autostarcie KDE dzięki czemu Dropbox wystartuje każdorazowo wraz z X-ami.

ln -sf ~/.dropbox-dist/dropboxd ~/.kde/Autostart/

Wzrokowcom polecam filmowy tutorial.

W Nautiliusie po wrzuceniu pliku do Dropboxa z menu kontekstowego można wybrać internetowy adres do udostępnionego w ten sposób zasobu i podesłać go znajomemu mailem lub też wkleić w okno komunikatora. Po wejściu na podany adres w oknie przeglądarki znajomy będzie mógł zobaczyć opublikowane przez nas zdjęcia lub też ściągnąć plik. W Dolphinie taką funkcjonalność możemy uzyskać dzięki niewielkiemu programowi [dropbox-servicemenu-kde](http://linux.softpedia.com/get/Desktop-Environment/Tools/dropbox-servicemenu-kde-52232.shtml).

Po ściągnięciu ze strony paczkę należy rozpakować, wejść do katalogu z narzędziem i zainstalować wywołując komędę.

chmod 755 install.sh
./install.sh

Skrypt ściągnie niewielki programik napisany w Pythonie, który wzbogaci menu kontekstowe Dolphina o dodatkowe opcje.

Właściwie jedyne czego brakuje to ikonek wskazujących stan synchronizacji poszczególnych plików i katalogów. Poza tym funkcjonalność Dropboxa w KDE nie odbiega od tej w Ubuntu.

Jak wyłączyć/zrestartować Kubuntu 9.10

Od jakiegoś czasu klikanie przycisków wyłącz, zrestartuj, wyloguj itp. w KDE mija się z celem. Pojawia się okienko z odliczaniem po czym kiedy czas mija znika i puplit rozświetla się jakbym całą operacje anulował. Wcześniejsze potwierdzenie niczego nie zmienia. Jedyną działającą opcją jest „Przełącz użytkownika”. Po jej wybraniu zostaje wylogowany, pojawia się ekran logowania i na tym etapie mogę już wyłączyć system. Oczywiście zostanę jeszcze poinformowany o istnieniu sesji innego użytkownika (tej z której się właśnie ratowałem ucieczką ;)). Taki sposób wyłączania komputera bynajmniej nie jest najwygodniejszy i lepiej otworzyć konsolę i użyć komendy.

sudo shutdown -h -P now

Tym razem google nie przyszło mi z pomocą.

Posted in KDE | Tagged byZbigniew Heintze