27 децембар 2013

VNC server za Debian Xfce

Uz Gnome dobro ide vino, dok je za Xfce dobro rešenje x11vnc.

Instalacija
# apt-get install x11vnc

Podešavanje pristupa
#x11vnc -storepasswd

Automatsko pokretanje

U Settings Manager/Session and Startup/Application Autostart dodati komandu:
x11vnc -forever -usepw -httpport 5900
i sačuvati pod nekim smislenim imenom - npr. VNC Server.

Posle sledećeg logovanja korisnika biće omogućen VNC pristup računaru sa proizvoljnim VNC klijentskim programom.

17 новембар 2013

Instalacija Lazarusa na Precise Puppy 5.7.1

Postupak instalacije PrecisePuppy Linux-a 5.7.1 na HDD je isti kao i za verziju 5.4 (http://dogriz.blogspot.com/2012/10/precise-puppy-54-puppy-linux.html)

Da bismo instalirali Lazarus Pascal na ovu distribuciju linuxa, potrebno je nekoliko pripremnih koraka:

1. Na desktopu odabrati "install" i potom "Click button to choose an SFS file from the official repo:"

2. U SFS Downloaderu odabrati "devx_precise_5.7.1.sfs"

3. Posle downloada (oko 150MB) pokrenuti "Menu/Setup/SFS-Load on-the-fly"
4. Odabrati preuzeti "devx_precise_5.7.1.sfs" fajl i pritisnuti "Load"

5. Ukoliko ova aplikacija ponudi pokretanje još dodatnih instalacija, dovoljno je preskočiti ih - "Skip"

6. Otvoriti "Menu/Setup/Puppy Package Manager" i osvežiti bazu paketa - "Update now"

7. Instalirati "build-essential" i druge zavisne pakete

8. Poželjno restartovati računar
9. Preuzeti sa Sourceforge-a: lazarus-1.2RC1-0.tar.gz, fpc-2.6.2.i386-linux.tar i fpc-2.6.2.source.tar.gz
10. Otpakovati fpc-2.6.2.i386-linux.tar (možete koristiti i ugrađeni XArchive iliti zip ako ne preferirate konzolu) i instalirati ga - "sh install.sh"

11. Otpakovati fpc-2.6.2.source.tar.gz (ja sam source otpakovao u /usr/lib/fpc/2.6.2 - tamo sam instalirao i fp compiler)
12. Otpakovati lazarus-1.2RC1-0.tar.gz (tar -xzvf lazarus-1.2RC1-0.tar.gz) i iz direktorijuma "lazarus/" pokrenuti "make"
13. Pokrenuti Lazarus - "./startlazarus

14. Postaviti fpc sources direktorijum

15. Lazarus je instaliran :)


Napomena: Ne znam zašto Puppy ovako renderuje fontove - Lazarus code editor izgleda katastrofalno...

16 новембар 2013

Virtualbox na Debian-u - problem sa instalacijom guest OS-a

Posle instalacije VirtualBoxa (4.2.16) na Debian Jessie, pokušao sam da kreiram virtuelnu mašinu i dobio sledeću poruku o grešci:

Failed to load VMMR0.r0 (VERR_SUPLIB_OWNER_NOT_ROOT).

Rešenje za ovaj problem postoji i prilično je jednostavno - potrebno je postaviti owner-a za direktorijume /usr i /usr/lib na root:root.

Posle toga, sve bi trebalo da proradi kako treba.

15 септембар 2013

Delphi for Android - Edit i ListBox kontrole

Edit i ListBox su vrlo često korišćene kontrole na mobilnim uređajima. Evo i primera:

Kreiraću novu FireMonkey Mobile Blank aplikaciju i sačuvati projekat kao Edit_ListBox.dproj.

Na formu sam stavio jednu Edit kontrolu i podesio je ovako:
Align - alTop
StyleLookup - searchedit
U Items Designeru Edit kontrole dodao sam TClearEditButton.

Dodao sam jedan ListBox i podesio:
Align - alClient
ShowCheckboxes - True

Sve to treba da izgleda ovako:

Design View

Kompletan source code za manipulaciju Edit i ListBox kontrolama
Izgled aplikacije na telefonu

Izgled aplikacije na telefonu

Delphi XE5 - Hello Android World!

Bez ovoga jednostavno se ne može početi :)

Projekat sa jednom Labelom i jednim Buttonom:

Za labelu, podešeno je sledeće:
Label1
  Align - alTop
  Height - 57
  TextAlign - taCenter
  VertTextAlign - taCenter
  WordWrap - True


Za dugme, napisan je jednostavan OnClick:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Text := 'Zdravo Android svete!';
end;

Projekat je sačuvan pod imenom HelloAndroidWorld.dproj i pokrenut - Shift+Ctrl+F9. (naravno telefon je prethodno priključen na računar USB kablom i odabran kao Target device).

Evo i kako to izgleda:
Design izgled ekrana

Code view
Pokrenuta aplikacija na telefonu
Pritisnuto dugme
Informacije o aplikaciji
Informacije o aplikaciji

Delphi XE5 - Prvi utisak

Dočekasmo još jednu verziju Delphija - 19. po redu (trinaesta je preskočena). Kao zakleti "delphijevac", ne propuštam priliku da vidim šta je sve novo i u ovoj verziji, a od mojih školskih dana i druženja sa prvom, 16-bitnom verzijom, ovaj RAD alat je postao punoletan. Za to vreme neke stvari su sazrele, mnogo toga je novog, nešto je već napušteno i zaboravljeno, a dinamika promena je, čini mi se, sve veća (starim...). Osvrnuću se samo na pojedinosti koje su na mene ostavile snažan utisak:
  • VCL i Win32 okruženje
  • DBExpress/Midas
  • RaveReports
  • Kylix/CLX
  • Interbase 6
  • Delphi 7
  • .NET
  • Unicode
  • FireMonkey

Poslednje u ovom nizu je upravo i ono najnovije, što stiže u verziji XE5 - podrška za "native" razvoj aplikacija za Android platformu. iOS je tu već nekoliko verzija, ali mi to nije privuklo pažnju, najviše zbog male popularnosti Apple hardvera u Srbiji, u odnosu na PC i Android. A podršku za Android sam iščekivao sa priličnim nestrpljenjem. I to iščekivanje je potrajalo dovoljno dugo da se upustim u avanturu zvanu Eclipse/Java/Android. Razmažen efikasnim Delphijevim okruženjem i jasnoćom Pascal sintakse, kad sam pokušao da razvijam aplikacije za Android u Eclipse Javi, imao sam utisak kao da sam iz automobila sa automatskim menjačem prešao u, paa - ne u onaj sa manuelnim menjačem, već onaj što se pali na kurblu... Kao što vegetarijanci ne jedu sve što ne jedu, tako ja jednostavno ne mogu da svarim Javu. Ali da se vratim na temu...

XE5 je stigao. Podrška za Android je tu. I kako to izgleda?

Naizgled lepo - jedan "codebase" - Delphi codebase za više platformi, ili u prevodu - jednom napisan kod može jednostavno da se kompajlira za win32, win64, Mac OSX, iOS, Android, Linux, uups - Linux još uvek ne može... :(

U suštini, ovo zaista radi. Delphi (Embarcadero) je prvi kome je to pošlo za rukom u "native" domenu. Naravno, za tako nešto, stari, dobro ispolirani VCL ide u zaborav, a na sceni se šepuri, još uvek ne dovoljno sazreli - FireMonkey. Neophodni su još i Android SDK/NDK i naravno - mobilni uređaj iliti telefon, pošto se ispostavilo da AVD (Android Virtual Device) nije upotrebljiv. Osim toga, poželjno je naoružati se i strpljenjem, jer svako kompajliranje, prenos aplikacije na telefon i pokretanje traju prilično dugo. Ali na kraju sve radi, čak i debugging.

Većini smrtnika sa jeftinijim telefonima (sa manje skladištenog prostora i RAMa) neće se dopasti veličina mobilne FireMonkey aplikacije - "Hello World" zauzima preko 20MB prostora na telefonu i koristi blizu 30MB RAMa (.apk fajl je oko 5MB). Za telefon, to je možda previše.

Osim Android podrške, izdvojio bih još i poboljšanu FireDAC kolekciju komponenti za rad sa bazama i pristup "RESTful" web servisima u oblaku (u narednim verzijama planira se i bolja integracija FireDACa sa DataSnapom, a DBExpress će izgleda ostati samo u vidu "legacy supporta").

Šta na kraju početku reći? Aktuelno, efikasno, korisno, u skladu sa trendovima današnjice, Embarcadero je napravio veoma interesantan development alat. Još kad ne bismo morali čekati 3-4. update da nestanu raznorazne bubice, bilo bi još bolje, pogotovo ako se uzme u obzir ne baš mala cena. U svakom slučaju, mislim da bi na kraju od svega moglo da ispadne nešto dobro za ovu ugroženu vrstu - Delphi programere.

14 август 2013

Patch za VMware Player na 3.10 kernelu

Nakon upgrade-a kernela na verziju 3.10 (Debian Jessie), VMWare Player (5.0.2 build-1031769) je prestao da funkcioniše. Ispostavilo se da je problem u vmblock i vmnet modulima i da ih je neophodno pečovati.
Knowhow sam pokupio od Arch linux gurua - https://wiki.archlinux.org/index.php/VMware

Evo kako to izgleda na Debianu:

1. Preuzimanje aktuelne verzije VMware Playera (VMware-Player-5.0.2-1031769.x86_64.bundle)

2. Instalacija
$ chmod +x VMware-Player-5.0.2-1031769.x86_64.bundle
# ./VMware-Player-5.0.2-1031769.x86_64.bundle --console

3. Patchovanje vmblock i vmnet modula
$ cd /tmp
$ wget http://pkgbuild.com/git/aur-mirror.git/plain/vmware-patch/vmblock-9.0.2-5.0.2-3.10.patch
$ wget http://pkgbuild.com/git/aur-mirror.git/plain/vmware-patch/vmnet-9.0.2-5.0.2-3.10.patch
$ cd /usr/lib/vmware/modules/source
# tar -xvf vmblock.tar
# tar -xvf vmnet.tar
# patch -p0 -i /tmp/vmblock-9.0.2-5.0.2-3.10.patch
# patch -p0 -i /tmp/vmnet-9.0.2-5.0.2-3.10.patch
# tar -cf vmblock.tar vmblock-only
# tar -cf vmnet.tar vmnet-only
# rm -r vmblock-only
# rm -r vmnet-only
# vmware-modconfig --console --install-all

4. Pokretanje (uspešno) :-)
$ vmware-player


Napomena: Osnovni preduslov za instalaciju VMware Playera je linux-headers za aktuelnu verziju kernela
# apt-get install linux-headers-$(uname -r)


Btw, ovi patch fajlovi, osim na Arch linuxu i Debianu, navodno rade i na Fedori 19 i SUSE linuxu, kako za VMware Player 5.0.2, tako i za VMware Workstation 9.0.2.

19 јун 2013

Instalacija Firebird Database Servera na Debian Wheezy

Osnovni sistem: Debian 7 Wheezy 64-bit
Verzija Firebird Database Servera: Superclassic (2.5.2.26540)

I - instalacija direktno iz paketa (apt)


# apt-get install firebird2.5-superclassic
# dpkg-reconfigure firebird2.5-superclassic
# apt-get install firebird2.5-examples
# gunzip /usr/share/doc/firebird2.5-examples/examples/empbuild/employee.fdb.gz


Ukoliko se Firebird DB server instalira iz paketa, default putanja do aliases.conf fajla je /etc/firebird/2.5/aliases.conf, a konzolni alat - isql se pokreće:
# isql-fb

Poželjno je napraviti promenu vlasništva nad DB fajlovima, npr. za employee.fdb:
# chown firebird.firebird employee.fdb


II - ručna instalacija preuzeta sa Firebird sajta


Uvek mi je instalacija iz paketa delovala komplikovano, pa zato evo i drugog načina:

1. Preuzeti installer sa Firebird web sajta (odnosno Sourceforge-a):

2. Raspakovati preuzetu arhivu:
$ tar -xzvf FirebirdCS-2.5.2.26540-0.amd64.tar.gz

3. Preći u rapakovani direktorijum i pokrenuti instalaciju kao superuser:
$ su
# cd FirebirdCS-2.5.2.26540-0.amd64
# ./install.sh

4. Instaler će tokom instalacije tražiti da se unese lozinka za pristup DB serveru. Za početak, možete uneti Firebirdovu default lozinku - masterkey.

5. Posle završene instalacije (svi fajlovi koji se tiču Firebird-a biće instalirani u /opt/firebird/) možete pokrenuti isql alat:
# /opt/firebird/bin/isql
connect employee;
show database;
show table;
show version;
quit;

Napomena: ukoliko isql alat pokrenete kao superuser, nije potrebno ukucavati korisničko ime i lozinku u konekcioni string, već samo - connect employee;.


Za pristup Firebird DB serveru sa mrežnih računara, neophodno je instalirati:
# apt-get install xinetd

Provera da li je Firebird DB Server pokrenut


Komanda:
$ top -b -n1 | grep fb

Ako je server pokrenut, navedena komanda bi za Classic/Superclassic verzije servera trebala da prikaže fb_inet_server za svaku konekciju, a ako nema ni jedne aktivne konekcije, prikazaće se samo fb_lock_mgr.
Ukoliko se radi o Superserver varijanti, onda će se prikazati procesi fbguard i fbserver.


Još jedna korisna komanda je:
$ netstat -an | grep 3050

Ova komanda će za Classic/Superclassic da vrati spisak IP adresa sa kojih je uspostavljena konekcija sa DB serverom, ukoliko je on na default portu 3050.
Na novijim verzijama Firebird-a (2.1+), ovaj podatak je moguće dobiti i pregledom sistemske mon$attachments tabele.

06 јун 2013

Isključivanje sistemskog beep-a - Debian

Sistemski beep u Debianu zna prilično da iritira, pogotovo kada se dosta koristi konzola. Evo kako ga je moguće isključiti:

U fajlu /etc/inputrc skinuti komentar sa reda:
 set bell-style none

Osim toga, u .bashrc dodati sledeće:
 if [ -n "$DISPLAY" ]; then
   xset b off
 fi

Logout, login i beep-a više nema.

29 мај 2013

Debian apt-get autocomplete

Po defaultu na Debianu autocomplete za apt-get (pritiskom na tab taster u terminalu) nije uključen, a uvek mi zatreba. 

Ukoliko već nije instaliran ovaj paket, treba ga dodati:
# apt-get install bash-completion
I potom dodati sledeće u .bashrc (# nano /root/.bashrc):
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Kad se .bashrc već edituje, ukloniću i komentare za bojenje listinga za 'ls'. Tako je mnogo preglednije i za root-a, a ne samo za običnog usera.

Rezultati će biti vidljivi ponovnim pokretanjem terminala sa root privilegijama.

28 мај 2013

Multiarch - Debian 7

Jedna od novih funkcionalnosti Debiana koja je došla sa Wheezy-jem je podrška za Multiarch.

Multiarch predstavlja mogućnost da se instaliraju paketi sa više različitih arhitektura na istom sistemu. Na primer, omogućava instalaciju i korišćenje 32-bitnih paketa na 64-bitnom sistemu uz automatsko razrešavanje zavisnosti. Ako kažem da postoji i međukompatibilnost sa Arm i drugim arhitekturama, multiarch može da bude prilično korisna stvar, ne samo za krajnje korisnike, već i za developere i sve one koji sastavljaju svoje pakete.

Na ovo sam naišao pokušavajući da instaliram Skype na 64-bitni Debian Wheezy, a pokazalo se kao korisno i za Teamviewer.
Instalacija je prilično jednostavna, iako broj dodatnih paketa koji se instalira može biti povelik, u zavisnosti od onoga što se instalira.

Na primeru 32-bitnog Skype-a (Debian 7 - Wheezy 64-bit), to izgleda ovako:
# dpkg --add-architecture i386
# apt-get update
# wget -O skype-install.deb http://www.skype.com/go/getskype-linux-deb
# dpkg -i skype-install.deb
# apt-get -f install

Evo i nekoliko korisnih linkova:

http://wiki.debian.org/Multiarch
http://wiki.debian.org/Multiarch/HOWTO
http://wiki.debian.org/skype
http://www.teamviewer.com/en/help/363-How-do-I-install-TeamViewer-on-my-Linux-distribution.aspx

29 април 2013

Debian Wheezy MATE Desktop Environment

Stiže Debian 7 za par dana, pa je vreme za upgrade sistema. Ali ne i ugrade na Gnome 3.x. Jednostavno - ne hvala. Xfce može da prođe, ali ko je naviknut na stari dobri Gnome 2.x, prava stvar je zapravo Mintovo čedo - MATE Desktop Environment. Evo i nekoliko jednostavnih koraka za njegovu instalaciju:

1. instalirati Debian Wheezy netinst bez grafičkog okruženja - nešto kao na ovoj slici:

2. dodati Repository u /etc/apt/sources.list:
      deb http://repo.mate-desktop.org/debian wheezy main

3. apt-get update
4. apt-get install mate-archive-keyring
5. apt-get update

6. apt-get install mate-core
7. apt-get install mate-desktop-environment

8. apt-get install lightdm
umesto lightdm - Display Managera može, naravno, bilo koji drugi, ali ovaj sasvim lepo pristaje.

9. Kada se sve ovo instalira, ostaje da se restartuje računar i to je sve. Zapravo, to je početak, ja bih odatle krenuo sa Synaptic-om i onda dalje...








28 март 2013

VirtualBox Guest Time Sync Off

Primetio sam da se na VirtualBox guest operativnim sistemima vrši automatska sinhronizacija datuma/vremena sa host mašinom na svakih desetak sekundi. U standardnim opcijama ne postoji mogućnost isključivanja ove sinhronizacije, ali moguće je na drugi način:

Prvo je potrebno isključiti virtuelni OS, a potom u konzoli/terminalu otkucati sledeću komandu:

vboxmanage setextradata "guest OS name" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" "1"  

Vraćanje na podrazumevano podešavanje vrši se ovako:
vboxmanage setextradata "guest OS name" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" "0"  

Predviđena putanja do vboxmanage alata na Windows-ima je verovatno C:\Program Files\Oracle\VirtualBox\VBoxManage.exe
Na Mac OSX je user/bin/vboxmanage
Na Linuxima (Debian, Ubuntu, Mint) je /usr/bin/vboxmanage

Isključivanje i uključivanje sinhronizacije vremena između guest i host OSa sam testirao na sledećim verzijama softvera u raznim host/guest kombinacijama:
  • VirtualBox 4.2.10
  • Windows XP SP3
  • Mac OSX 10.6.8
  • Linux Mint 14

21 фебруар 2013

Zentyal - Network objects, Fixed addresses


U prethodnom tutorialu objašnjeno je konfigurisanje DHCP servera. Ukoliko imate uređaje u LANu za koje vam ne odgovaraju dinamičke adrese (npr. serveri, mrežna aktiva i sl.), moguće je konfigurisati Zentyal da takvim uređajima dodeljuje fiksne adrese. Za primer kreiraću mrežni objekat "Serveri" (Core/Network/Objects):

Kao članove (members) ovog objekta dodaću server iz lokalne mreže:
`


Preostaje još da u meniju Infrastructure/DHCP/Fixed address dodam kreirani mrežni objekat "Serveri":


Ukoliko kasnije dodamo nove članove objektu "Serveri", pravilo dodeljivanja fiksnih adresa će automatski da važi bez potrebe dodatnog konfigurisanja. Po istom principu moguće je kreiranje drugih mrežnih objekata sa svojim članovima (npr. mrežna aktiva, štampači...).

Napomena: Na klijentu (u ovom primeru - adserver) treba da je podešeno dinamičko dodeljivanje IP adrese. Klijent će preko Zentyal DHCPa automatski povući definisanu fiksnu adresu. U praksi, to je gotovo isto kao i da je ručno ukucana statička adresa na željenom klijentu.

18 фебруар 2013

Zentyal - DHCP, Dynamic DNS, NTP


Ukoliko ste, prateći prvi tutorial, instairali DHCP i DNS Service, možete ih jednostavno konfigurisati i aktivirati.

Odabirom DHCP stavke u Infrastructure odeljku menija, prikazuje se spisak "inside" interfejsa za koje je moguće konfigurisati DHCP:

Klikom na Configuration dobija se sledeći ekran na kome se konfiguriše DHCP (Common options). Zentyal će biti Default gateway, Search domain i nameserver, a ako ste instalirali i NTP Service, možete Zentyal postaviti i kao NTP server:

Drugi korak je postavljanje opsega IP adresa koje će DHCP server da dodeljuje klijentima (npr. 192.168.0.101-192.168.0.200):

Kada se sačuva konfiguracija, neophodno je aktivirati DHCP server - odabirom Core/Module Status i čekiranjem statusa. Ovde su prikazani i svi ostali instalirani moduli i možete ih aktivirati ili isključivati, ali obavezno obratite pažnju na zavisnosti (Depends).

Ostaje još da se aktivira Dynamic DNS (Infrastructure/DHCP/DHCP configuration/Dynamic DNS Options) i sve je spremno za rad.

Za probu, pokrenućemo jedan klijentski računar i proveriti da li je pokupio dhcp adresu, i da li funkcioniše internet. Iz priloženog se može videti da je dobio adresu 192.168.0.101, što odgovara konfigurisanom opsegu.

Na Zentyal Dashboardu, u svakom trenutku možete videti spisak DHCP klijenata sa iznajmljenim IP adresama:


14 фебруар 2013

Zentyal - Balance Traffic & WAN Failover


Danas je teško zamisliti da radite bilo šta na računaru, a da niste "online". Bilo da se radi o poslu ili zabavi, bez interneta više ne funkcionišemo. U skladu sa tim, svaki prekid internet saobraćaja izaziva burnu reakciju korisnika, pogotovo kada ste administrator u velikoj firmi - telefoni se usijaju i iznenada shvatite da je baš u tom trenutku nepohodno da se pošalje važan mejl - HITNO!!! Naravno, objašnjenja da je kod provajdera došlo do prekida interneta i da ste nemoćni da bilo šta uradite, osim da svi strpljivo sačekaju, nisu prihvatljiva...
Ove probleme sam rešio jednostavno - pomoću Zentyala. U prethodnom postu sam pokazao kako sam pripremio Zentyal za ovakav scenario. Ideja je da objedinim pristup internetu preko dva različita provajdera i na taj način svedem mogućnost otkaza saobraćaja na najmanju moguću meru, a istovremeno da povećam propusni opseg.

Evo kako sam to postigao - WAN interfejsi eth0 i eth1 biće korišćeni za pristup provajderima (npr. kablovski i ADSL), dok će eth2 biti za LAN:

Svaki WAN interfejs ima svoj gateway (ruter ili modem provajdera) i ovo će Zentyal automatski konfigurisati ukoliko je sve fizički povezano kako treba. Ja sam naknadno izvršio promenu "weighta" - težine u odnosu 6:1 u korist interfejsa eth0 (pošto mi je ovaj interfejs povezan sa kablovskim provajderom koji je šest puta brži od ADSLa). Kada se uključi Balance Traffic, ovo znači da će na šest internet konekcija jedna ići preko ADSLa. Time sam postigao podjednako opterećenje obe internet veze:



Preduslov za "failover" je da se ta funkcionalnost omogući u Maintenance/Events:

Čitava filozofija oko failovera je da se internet saobraćaj preusmeri na drugi gateway ukoliko trenutno odabrani nije u funkciji:

Kreirao sam pravilo ovako: 4 puta pingujem host adresu 8.8.8.8 i ukoliko je procenat uspešnosti manji od 50%, odabrani gateway se isključuje na period od 180 sekundi, kada se ponovo vrši ova provera. Gateway se aktivira kada procenat uspešnosti bude zadovoljen. Isto pravilo kreirao sam za oba interfejsa. Na ovaj način obezbeđeno je potpuno automatizovano preusmeravanje internet saobraćaja na funkcionalan link, ukoliko onaj drugi zakaže:


Konfigurisati Load Balancing i Failover je inače prilično komplikovano, čak i adminima sa naprednijim znanjem. Ja ne spadam u tu kategoriju, ali sam probao - i odustao. Zentyal je to za mene uradio brzo i jednostavno. Na kraju, svim konzolašima koji bi IP Tables konfigurisali "peške" - ozbiljan respect od mene.

Pozdrav svima!