2007-11-27

Resurse SQL

Mi-a venit cheful sa invat un pic de SQL prin urmare am cautat cateva resurse pe internet. Am gasit ceva interesant si la obiect la adresa http://www.firstsql.com/tutor.htm.

2007-11-16

Un vineri plin

Astăzi a fost o zi în care s-au întâmplat câteva lucruri în viaţa mea. În primul rând am semnat contractul pentru pensia obligatorie administrată privat cu Allianz, aşa că dacă aveaţi de gând să mă convingeţi să semnez cu altcineva, nu mai este cazul. Apoi am primit comanda de la Diverta Online şi anume mi-am luat un monitor LCD BENQ de 17" FP75G. Am fost plăcut surprins pentru că este negru şi deci în rezonanţă cu numele pe care i l-am dat calculatorului meu: Blackwire™. Miercuri a fost confirmată comanda, iar astăzi în jur de ora 18:00 am luat produsul de la reprezentantul firmei de curierat, plătind totul la recepţie. Recomand cu plăcere această firmă. Mai trebuie să menţionez că e prima oară câşnd comand ceva online şi sunt foarte încântat de felul în care au decurs lucrurile.
Această metodă de a face cumpărături a început să-mi placă şi cred că foarte curând voi mai apela acest tip de servicii. În acest sens mai recomand situl http://www.conectica.ro/, şi situl http://www.domo.ro/. Ambele m-au impresionat şi am fost la un pas să mai comand ceva. Probabil este vorba de frenezia începătorului.
Marele avantaj ale cumpărăturilor online este faptul că n-ai în faţă un vânzător care ridică din umeri dacă îl întrebi vreun detaliu despre produs şi apoi poti să vezi tot ce există şi să faci comparaţii fără să faci kilometri între magazine sau chiar în acelaşi magazin.

2007-11-15

HSQL

Pentru a instala HSQLDB in calculatorul dumneavoastra urmati urmatorii pasi:
1. Se downloadeaza HSQLDB de aici
;
2.
Se dezarhiveaza intr-un director pe harddisk. La acest director ma voi referi scriind <hsqlpath> in continuare;
3. Se copie <hsqlpath>\src\org\sample\sqltool.rc in c:\Documents and Settings\<utilizator>


Vizualizarea elevilor introdusi
1.
Trebuie sa identificati unde aveti instalat J2RE in calculatorul dumneavoastra, daca nu il aveti atunci trebuie sa il instalati. Ma voi referi la directorul unde este J2RE scriind <j2repath> (de exemplu la mine <j2repath> este c:\Program Files\Java\j2re1.4.2_10\ );
2. In directorul <j2repath>\bin este un executabil numit java.exe;
3. Se identifica calea spre baza de date a DCC la care ma voi referi scriind <dccpath> (de exemplu <dccpath> la mine este c:\Program Files\DCC\);
4. din consola se introduce comanda java -cp <hsqlpath>\lib\hsqldb.jar org.hsqldb.Server -database.0 <dccpath>\database\dccdb pentru a porni serverul;
5. din consola se introduce comanda java -jar <hsqlpath>\lib\hsqldb.jar localhost-sa pentru a porni clientul;
6.
Se tasteaza urmatoarea secventa de comenzi SQL:
sql>SET AUTOCOMMIT FALSE;
sql>SET SCHEMA BDNE;
sql>SELECT ALL * FROM ELEV;
7.
Dupa ce au fost afisati elevii se inchide sesiunea de lucru tastand:
sql>SET SCHEMA PUBLIC;
sql>SET AUTOCOMMIT TRUE;
sql>SHUTDOWN;
sql>\q
8. Consolele s-au inchis sau au ramas afisand promtul;



Vizualizarea structurii bazei de date

1. se porneste serverul folosind comanda java -cp <hsqlpath>\lib\hsqldb.jar org.hsqldb.Server -database.0 <dccpath>\database\dccdb;
2. se porneste managerul folosind comanda java -cp <hsqlpath>\lib\hsqldb.jar org.hsqldb.util.DatabaseManager
3. la aparitia ferestrei Connect se alege in casuta Type HSQL Database Engine Server.



Rularea unui script

Pentru a pastra diacriticele cand se introduc date folosind un script, este necesar ca acest script sa fie in format UNICODE. Pentru a rula acest script se foloseste comanda:
java -Dsqlfile.charset=Unicode -jar hsqldbpath\lib\hsqldb.jar localhost-sa scriptpath\script
unde portiunea marcata cu italic se inlocuieste cu caile efective, respectiv numele scriptului. De exemplu: java -Dsqlfile.charset=Unicode -jar c:\temp\hsqldb\lib\hsqldb.jar localhost-sa c:\work\teste\sam-script.txt.

2007-11-12

Java weekend

Acesta a fost weekendul Java pentru mine. Atat sambata, cat si duminica am asistat la 2 tutoriale de aproximativ 4 ore fiecare. Desi e mult mai bine sa participi la un workshop, tutorialele au constat mai mult in vizionare. De unde mi-a aparut si ideea ca un posibil titlu al tutorialului ar putea fi "The Lord of Java - Trilogy".
Mai nasol decat sa nu iti fie explicate subtilitatile este sa primesti explicatii complet aiurea. De exemplu mi s-a spus ca metoda pack() a unui JFrame face ceva ca in FoxPro, adica curata ceva... ca sa aflu ca intr-adevar are acelasi nume ca in FoxPro, dar n-are nici o treaba cu curatatul, ci redimensioneaza suprafata JFrameului astfel incat sa incapa toate componentele adaugate pe frame.
O intrebare capcana a fost "Ce trebuie sa importi ca sa poti scrie System.out.println("");. Raspunsul complet pe langa a fost java.io.*. In realitate n-ai nevoie de nimic.
Dar cum aceste inadvertente au reprezentat o infima parte din totalul informatiei primite, tutorialul a fost binevenit.

2007-11-07

A little VB code

Visual Basic it's not my language of preference, but at my job sometimes I need to go beyond the possibilities offered by Excel. Therefore here are some functions I've created.
This function verify the correctness of a Personal Number Code of a person in Romania:

Function checkcnp(cnp As String) As Boolean
Dim b As Boolean
Let b = False
Let mul = "279146358279"
If Len(cnp) = 13 Then
Let v = 0
For i = 1 To 12 Step 1
v = v + Val(Mid(cnp, i, 1)) * Val(Mid(mul, i, 1))
Next i
v = v Mod 11
If v <= 9 Then
If Val(Mid(cnp, 13, 1)) = v Then
b = True
End If
Else
If Val(Mid(cnp, 13, 1)) = 1 Then
b = True
End If
End If
End If
checkcnp = b
End Function

The following function will eliminate special romanian characters from a text and use only the english alphabet instead:

Function fara_diacritice(t As String) As String
Dim a As Integer
For i = 1 To Len(t)
a = Asc(Mid(t, i, 1))
t = Mid(t, 1, i - 1) + Chr$(a) + Mid(t, i + 1, Len(t) - i)
If Mid(t, i, 1) = "Î" Then
t = Mid(t, 1, i - 1) + "I" + Mid(t, i + 1, Len(t) - i)
End If
If Mid(t, i, 1) = "î" Then
t = Mid(t, 1, i - 1) + "i" + Mid(t, i + 1, Len(t) - i)
End If
If Mid(t, i, 1) = "Â" Then
t = Mid(t, 1, i - 1) + "A" + Mid(t, i + 1, Len(t) - i)
End If
If Mid(t, i, 1) = "â" Then
t = Mid(t, 1, i - 1) + "a" + Mid(t, i + 1, Len(t) - i)
End If
Next i
fara_diacritice = t
End Function


That's it for today tips and tricks.

Dilemă

Acum câteva zile eram entuziasmat de faptul că am primit un CD de la Sun cu NetBeans. Recent însă Microsoft mi-a dat, prin intermediul facultăţii la care sunt, un DVD cu câteva lucruri gratuite cum ar fi Visual Studio 2005 Express sau SQL Server 2007 Express numit Academic Resource Kit. Fiind bine cunoscută rivalitatea dintre aceşti doi giganţi ai industriei software, se pare că am fost prins la mijloc. Oare va trebui să aleg?

2007-11-05

Prolog

Ieri am luat cunoştinţă cu limbajul PROLOG pentru prima dată. Deşi Sicstus Prolog este varianta recomandată pentru a lucra în Prolog, aceasta fiind comercială am ales să folosesc SWI-Prolog care este gratuit (mai mult chiar open source).
Primul program a fost cam aşa:

rosu(mar).
rosu(para).
rosu(banana).
fruct(mar).
fruct(para).
fruct(portocala).
rosu(X):-fruct(X).


După ce se salveaza acest fişier text cu extensia .pl, poate fi încărcat în Prolog după cum urmează:
?- ['disk:/cale/nume_fisier'].

Apoi se poate realiza o interogare dacă portocala este roşie în felul următor:
?- rosu(portocala).

Cam asta a fost prima lecţie de Prolog.

2007-11-03

Requested CDs

I have requested a NetBeans CD from Sun and two CDs with the new Ubuntu.
Happily I found that The NetBeans CD arrived the past days, faster than expected, because the CD entered Prahova Post Office on 2007-10-25 and was in my mail box on 2007-10-30, while on the site they said they send the CD on 2007-11-01, something like I received it 2 days before they send it, that's quite a speed don't you think?
On the other hand Ubuntu is on the way (approved and sent to the shipping company on 2007-10-15). Because it may take from 4 to 6 weeks for delivery, I may expect it will arrive somewhere between 2007-11-11 and 2007-11-25.

I've tested NetBeans 5.5.1 on Linux (actually Ubuntu) and it is amazing! It makes from java developing a pleasure and also supports C/C++ developing if you install the required components.

Here is the HelloWorld java source code:
/*
* HelloWorldApp.java
*
* Created on November 1, 2007, 10:12 PM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/

package helloworldapp;

/**
*
* @author xunrage
*/
public class HelloWorldApp {

/** Creates a new instance of HelloWorldApp */
public HelloWorldApp() {
}

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
System.out.println("Hello world!");
}
}

And here is the HelloWorld C source code:
/*
* File: test.c
* Author: xunrage
*
* Created on November 2, 2007, 2:46 AM
*/

#include
#include

/*
*
*/
int main(int argc, char** argv) {

printf("Hello world!");
return (EXIT_SUCCESS);
}
Remember that in Ubuntu, after you've installed the C++ extention for NetBeans (netbeans-c++-5_5_1_ul-linux.bin) you also should install g++, the C++ compiler (sudo apt-get install g++).