2014-02-28

[svn] Ignore

W SVN sprawa ignorowania plików i katalogów jest znacznie mniej przejrzysta niż w Git'cie. Tutaj nie jest to tak oczywiste - nie znajduje się w plikach (np. .gitignore) i ciężko to wszystko ogarnąć bez odpowiednich komend. Poniżej przedstawię kilka poleceń, które ułatwią obsługę ignorowania plików w SVN'ie:

Lista plików aktualnie ignorowanych w danym katalogu


svn status --no-ignore

lub

svn proplist -v

Dodawanie ignorowania plików i katalogów


Ignorowanie konkretnego pliku o nazwie test:

svn propset svn:ignore test .

Katalogi ignoruje się w podobny sposób - należy jedynie pamiętać aby nie dawać slashów i backslashów - jedynie czystą nazwę katalogu.

Należy pamiętać, że wykonanie polecenia ignorowania kolejnego pliku (np. o nazwie test2) za pomocą komendy propset spowoduje usunięcie ignorowania pliku test:

svn propset svn:ignore test2 .

Aby uniknąć tego typu problemu należy wiele plików ignorować mniej więcej w taki sposób:

svn propset svn:ignore "test
> test2" .

Ignorowanie wszystkich plików z końcówką .tmp:

svn propset svn:ignore *.tmp .

Ignorowanie wszystkich plików (włączając pliki w podkatalogach) z końcówką .tmp:

svn propset svn:ignore -R *.tmp .

Istnieje możliwość stworzenia pliku, w którym będziemy definiować wszystkie ignorowane przez nas pliki i foldery - coś na wzór Git'a. W przykładzie plik nazwiemy podobnie (.svnignore) choć może on mieć dowolną nazwę. Treść pliku wygląda następująco:

test
test2

Za pomocą polecenia ignorujemy pliki i katalogu zapisane w pliku .svnignore:

svn propset svn:ignore -F .svnignore .

Usuwanie ignorowania plików i katalogow


svn propdel svn:ignore .

Podsumowanie


Zamiast znaku . można podać odpowiednią ścieżkę.

źródło: http://superchlorine.com/2013/08/getting-svn-to-ignore-files-and-directories/

[netbeans] Theme builder

Domyślnny template NetBeansa jest bardzo biały co powoduje znaczny oczopląs po kilku godzinach pracy - aby uniknąć tego typu objawów dobrze jest zmienić sobie profil wyświetlania. Doskonałym narzędziem jest Netbeans Theme Builder - http://svenspruijt.nl/themebuilder/ dzięki któremu możemy wybrać profil najbardziej nam pasujący.
Ja korzystam z Zenburn - lekko go tylko modyfikuję zmieniając fonty na WenQuanYi Micro Mono.
Profil wczytujemy przez Tools > Options > Import...

2014-02-27

[pgsql] Funkcja replace() - zmiana treści

Kiedyś pisałem już o postgresowej funkcji replace(). Ostatnio przydała mi się ona ponownie i postanowiłem po raz kolejny o niej wspomnieć. Wykorzystałem ją do zmiany nazwy ulicy - zdarzyło mi się, że adresy niektórych użytkowników posiadały (zamiast polskich znaków) niezrozumiałe znaki (spowodowane to było przenoszeniem danych między różnymi systemami na przestrzeni wielu lat).
Poniżej przedstawiam sposób wykorzystania funkcji replace() na małym przykładzie, w którym zmieniamy w tabeli user w kolumnie ulica znaki "¦" na "Ś":

UPDATE user SET ulica=replace(ulica, '¦', 'Ś') WHERE ulica like '%¦%';

Powyższe zapytanie zaktualizuje wszystkie wpisy w tabeli user, które mają w polu ulica znak "¦" na "Ś". Warto przed odpaleniem takiego zapytania najpierw sprawdzić co tak naprawdę zwraca funkcja i ile rekordów zostanie zmienionych. Poniższe zapytanie da nam taką odpowiedź:

SELECT id, ulica, replace(ulica, '¦', 'Ś') FROM user WHERE ulica like '%¦%';

źródło: http://www.postgresql.org/docs/9.1/static/functions-string.html

2014-02-21

[php][kohana] Instalacja tumblr.php za pomocą Composer'a

Instalacja biblioteki tumblr.php w projekcie opartym na frameworku Kohana za pomocą Composera:
  1. Tworzymy katalog tumblr w application/vendor
  2. Instalujemy Composera (będąc w katalogu tumblr)
    curl -sS https://getcomposer.org/installer | php
  3. Instalujemy biblioteki, z których korzysta tumblr.php
    php composer.phar install
  4. Wykorzystujemy w naszym projekcie nowo powstały autoloader
    require_once(APPPATH.'vendor/tumblr/vendor/autoload.php');

2014-02-20

[linux] Kontrola jasności - Mint 16 i Acer V3-772g

W poprzednim wpisie napisałem jak ominąć problem czarnego ekranu przy instalacji środowiska linuksowego. Za powstawanie tego problemu odpowiada zmienna nomodeset. Powoduje ona niestety inny problem - uniemożliwia regulowanie jasności - tak się dzieje na wielu maszynach - między innymi na testowanym przeze mnie Acerze V3-772g. Aby umożliwić wspomnianą regulację należy w pierwszej kolejności zainstalować bumblebee:
sudo add-apt-repository ppa:bumblebee/stable
sudo apt-get update
sudo apt-get install bumblebee bumblebee-nvidia primus linux-headers-generic
sudo reboot
Po restarcie upewniamy się, że nie ma nouveau:
lsmod | grep nouveau
Następnie w pliku /etc/default/grub usuwamy nomodest i dodajemy acpi_backlight=vendor oraz acpi_osi=Linux do zmiennych - ostatecznie wyglądają one następująco:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor"
GRUB_CMDLINE_LINUX="acpi_osi=Linux"
Na koniec aktualizujemy gruba:
sudo update-grub
I restart. Mam nadzieję, że to już koniec tych sprzętowych wpisów. ;)

2014-02-19

[linux] Instalacja Mint 16 obok Windowsa 7

Kilka rzeczy, które trzeba wykonać aby mieć Minta 16 obok Windowsa 7 - na jednym dysku.

  1. Najpierw instalujemy Windowsa 7. Przed instalacją konwertujemy tablicę partycji z GPT na MBR - aby tego dokonać w instalatorze windowsowym uruchamiamy konsolę (Shift + F10) i wpisujemy:
    diskpart
    list disk 
    select disk n - twój wylistowany
    clean
    convert mbr
    exit 
    
  2. Po instalacji windowsa (zostawiamy miejsce na dysku na drugi system) uruchamiamy instalatora Minta. Aby uniknąć czarnego ekranu w trakcie instalacji musimy dodać parametr nomodeset na końcu (przycisk tab nam pomoże tego dokonać)
  3. Po instalacji Minta edytujemy plik /etc/default/grub - modyfikujemy linię:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"
  4. Restartujemy gruba poleceniem
    sudo update-grub

źródło:
http://forum.linuxmint.pl/index.php?topic=6067.0
http://ubuntu.pl/forum/viewtopic.php?t=129706

2014-02-18

[kohana] Korzystanie z zewnętrznych bibliotek

Dobrym zwyczajem jest instalowanie zewnętrznych bibliotek w katalogu application/vendor. Np w przypadku klienta Tumblr API (tumblr.php) będzie to katalog application/vendor/tumblr.
Kohana nie wczytuje automatycznie zewnętrznych bibliotek - trzeba je wczytać samodzielnie np za pomocą:
include Kohana::find_file('vendor/library', 'file_name');

2014-02-11

[apache] Zmiana użytkownika z www-data na innego

Zmiana apache'owego użytkownika z domyślnego www-data na innego (np. marcin) jest bardzo prosta - standardowo wszystko znajduje się w pliku /etc/apache2/envvars. Trzeba zmienić dwie linijki (jeśli chcemy zmienić również grupę) z:

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

na:

#export APACHE_RUN_USER=www-data
export APACHE_RUN_USER=marcin
#export APACHE_RUN_GROUP=www-data
export APACHE_RUN_GROUP=marcin