19 јул 2013

mySQL: Korekcija UTF8 znakova pri uvozu MS Excel artikala u OpenCart

Besplatni modul za masovni unos artikala putem MS Excel dadoteke u OpenCart CMS sistem definitivno, u free varijanti, nije multilanguage. Zbog toga vam neka naša slova, iako pravilno unešena u MS Excel, neće biti ispravno uvežena u mySQL bazu podataka.  Takođe postoji i problem sa snimanjem MS Excela u UTF8 formatu.

Rešenje je u SQL Update naredbi za korekciju slovnih grešaka na samom mySQL serveru:

UPDATE oc_product_description SET name = REPLACE(name,'andScarontackazarez','Š');
UPDATE oc_product_description SET name = REPLACE(name,'andscarontackazarez','š');
UPDATE oc_category_description SET name = REPLACE(name,'andScarontackazarez','Š');
UPDATE oc_category_description SET name = REPLACE(name,'andscarontackazarez','š')

Time se rešava i problem pretrage sa našim slovima na samom OpenCart sajtu.

06 мај 2013

OpenCart MS Excel tabela polja za uvoz/izvoz kategorija i proizvoda


Categories - Kategorije

Category_id – jedinstveni identifikacioni broj kategorije
Parent_id – identifikacioni broj kategorije kojoj pripada
Name – naziv kategorije
Sort_order – redni broj pojavljivanja kategorije, podrazumevana je 0, koja je ispred svih, u okviru svih ili jedne kategorije
Image_name – putanja do slike, koja ilustruje kategoriju
Date_added – datum postavljanja kategorije u formatu gggg-mm-dd hh:mm:ss
Date_modified – datum modifikovanja kategorije u formatu gggg-mm-dd hh:mm:ss
Language_id – 1 za podrazumevani engleski ili oznaka dodatnog jezika
Seo_keyword – kljucne reci za pretrazivace
Description – opis kategorije
Meta_description – kratak i jasan opis kategorije za pretrazivace (google i sl.)
Meta_keywords – kljucne reci za pretrazivace (google i sl.)
Store_ids – podrazumevano ‘0’, ne menjati, ako nema dodatnih prodavnica
Status enabled – oznaka za prikaz/skrivanje kategorije, true = prikaz, false = sakriveno


Products - Proizvodi

Product_id – jedinstveni identifikacioni broj proizvoda
Name – naziv proizvoda
Categories – identifikacioni brojevi kategorija, kojima pripada, odvojene zarezom (npr. 1, 101, 10101)
Sku – Barcode proizvoda
Location – lokacija proizvoda (npr. Novi Sad, Srbija)
Quantity – broj, kolicina proizvoda na lageru
Model – broj modela proizvoda
Manufacturer – naziv proizvodjaca, moze biti samo jedan, za mogucu selekciju proizvoda po njemu
Image_name – putanja do slike, koja ilustruje proizvod
Requires shipping – postaviti na 'yes', osim ako se proizvod ne downloaduje
Price – cena proizvoda (bez poreza)
Date_added – datum postavljanja proizvoda u formatu gggg-mm-dd hh:mm:ss
Date_modified – datum modifikovanja proizvoda u formatu gggg-mm-dd hh:mm:ss
Date_available – datum raspolozivosti proizvoda u formatu gggg-mm-dd hh:mm:ss
Weight – tezina, potrebna ukoliko je potrebno slanje postom, u kilogramima (npr. 250g = 0.25)
Unit – ostaviti na ‘kg’
Length – duzina proizvoda
Width – sirina proizvoda
Height – visina proizvoda
Length unit – ostaviti na ‘cm’
Status enabled – oznaka za prikaz/skrivanje proizvoda, true = prikaz, false = sakriveno
Tax_class_id – ostaviti na ‘9’ (GST)
Viewed – broj vidjenja proizvoda na sajtu (ostaviti prazno)
Language_id – 1 za podrazumevani engleski ili oznaka dodatnog jezika
Seo_keyword – kljucne reci za pretrazivace
Description – opis proizvoda u HTML formatu
Meta_description – kratak i jasan opis proizvoda za pretrazivace (google i sl.)
Meta_keywords – kljucne reci za pretrazivace (google i sl.)
Additional images – putanje do dodatnih slika, koje ilustruju proizvod, odvojene zarezima, bez razmaka, u formatu data/folder/slika
Stock_status_id – identifikacioni broj stanja na lageru, postaviti na ‘5’ za ‘nema na lageru’)
Store_ids – podrazumevano ‘0’, ne menjati, ako nema dodatnih prodavnica
Related_ids – identifikacioni brojevi srodnih proizvoda
Tags – nazivi oznaka, odvojenih zarezima, kojom se grupisu proizvodi, za mogucu selekciju po njemu, na dnu stranice proizvoda
Sort_order – redni broj pojavljivanja proizvoda, podrazumevana je 0, koja je ispred svih, u okviru svih ili jedne kategorije
Subtract – oznaka, da li porudzbina proizvoda skida proizvod sa stanja lagera
Minimum – minimalna kolicina proizvoda za narudzbu
Cost – cena proizvoda

Options - Opcije

Dodatne opcije za neke proizvode (npr. za majicu S,M,X,XL,XXL i sl.)

Product_id – jedinstveni identifikacioni broj proizvoda, kojoj pripadaju dodatne opcije
Language_id – 1 za podrazumevani engleski ili oznaka dodatnog jezika
Option – naziv opcije proizvoda (npr. velicina)
Option_value – naziv vrednosti opcije proizvoda (npr. S, M, L i sl.)
Quantity – kolicina opcije na lageru (moze biti i prazno, ako ne treba evidencija kolicina na lageru)
Subtract – oznaka, da li porudzbina opcije proizvoda skida proizvod sa stanja lagera
Price – iznos razlike u ceni u odnosu na osnovni proizvod
Prefix – postaviti na ‘+’ ili ‘-‘ , za dodavanje ili oduzimanje iznosa razlike u ceni, na osnovnu cenu
Sort_order – redni broj pojavljivanja opcije proizvoda, podrazumevana je 0, koja je ispred svih, u okviru svih ili jedne kategorije


Specials - Akcije

Product_id – jedinstveni identifikacioni broj proizvoda, kojoj pripada akcija
Customer_group – naziv grupe kupaca, veleprodaje ili neke druge klasifikacije za akciju
Priority – prioritet akcije
Price – akcijska cena proizvoda
Date_start – startni datum akcije, u formatu – yyyy/mm/dd
Date_end – zavrsni datum akcije, u formatu – yyyy/mm/dd


Discounts - Popusti

Product_id – jedinstveni identifikacioni broj proizvoda, kojoj pripada popust
Customer_group – naziv grupe kupaca, veleprodaje ili neke druge klasifikacije za akciju
Quantity – kolicina proizvoda koja moze biti narucena do kraja zaliha (moze biti i prazno)
Priority – prioritet popusta
Price – cena proizvoda sa popustom
Date_start – startni datum popusta, u formatu – yyyy/mm/dd
Date_end – zavrsni datum popusta, u formatu – yyyy/mm/dd

30 август 2012

Lazarus 1.0 izdanje rasploživo za preuzimanje

Lazarus timu je drago najaviti izlazak:

Lazarus 1.0

U ovom važnom trenutku tim bih se zahvalio svim prošlim i sadašnjim ljudima, koji su bili uključeni da stignemo do ovde.

* Hvala takođe FPC timu za pružanje prevodioca koji čini da je sve ovo moguće.

* Posebne zahvale idu od osnivača projekta koji je započeo Lazarus pre više od deset godina u 1999: Cliff Baeseman, Shane Miller i Michael A. Hess.

* Istorija programera uključenih može se naći na http://wiki.lazarus.freepascal.org/History. A popis mnogih saradnika dolazi s distribucijom.

Izdanje je dostupno za preuzimanje na stranici SourceForge :

http://sourceforge.net/projects/lazarus/files/

Odaberite svoj ​​CPU, OS, distro, a zatim i "Lazar 1,0" folder.

Minimalni zahtevi:

Windows: 98, 2k, XP, Vista, 7, 32 ili 64bit

FreeBSD / Linux: gtk 2.8 ili qt4.5, 32 ili 64bit

Mac OS X: 10,4, LCL samo 32bit, non LCL aplikacije mogu biti 64bit

Ovo izdanje je izgrađeno sa FPC 2.6.0 (bivše izdanje 0.9.30.4 je sagrađeno uz to takođe).

Svn oznaka

http://svn.freepascal.org/svn/lazarus/tags/lazarus_1_0

Popis promena:

http://wiki.lazarus.freepascal.org/Lazarus_1.0_release_notes

Za ljude koji su blokirani od strane SF, Lazar izdanja iz SourceForge ogledala na:

ftp://freepascal.dfmk.hu/pub/lazarus/releases/ i kasnije na (nakon nekog vremena za sinhronizaciju)
http://michael-ep3.physik.uni-halle.de/Lazarus/releases/
i
http://mirrors.iwi.me/lazarus/

28 март 2012

Registracija Google Wallet naloga iz Srbije

Ako ste pokušali da registrujete svoj Google Wallet (exCheckout) nalog i odabrali Srbiju kao lokaciju, tada Vam formular neće proći obradu unesenih podataka, prijavljujući pogrešan PTT broj, kakav god da unesete. :-(

I pre nego što počnete da očajavate kako Srbija opet nije regularno na spisku, otvorite spisak lokacija i odaberite Serbia and Montenegro i ... sve će proraditi kako treba i kreiranje naloga će biti dovršeno, naravno uz uslov tačnosti ostalih podataka. :-)

Sada, ako ste programer, možete da otvorite nalog na Google Play (exMarket)
...


23 јануар 2012

Telenor OneTouch (Alcatel 990) - Link2SD za neupućene

Telenor OneTouch (Alcatel 990) je mobilni telefon odličnih specifikacija. Jedini nedostatak ovog aparata je mala količina raspoložive memorije. Rešenje za ovaj problem je u proceduri obrade operativnog sistema (rootovanje) i memorijske kartice (particionisanje) kako bi se programi i igre snimali na memorijsku karticu, umesto u radnu memoriju. Postoji više programa za ovu tehniku : App2SD, Move2SD i sl...

Link2SD metoda je najbolja za prebacivanje instalacija na karticu.

Prvo je potrebno resetovati telefon opcijom : Setting/Privacy/Factory data reset.
Nakon ove opcije telefon će se restartovati i postaviti operativni sistem u početno stanje, kao da ste ga prvi put upalili.

Zatim ga rootujete sa SuperOneClickom, pa instalirate Recovery Manager. Sa njim usnimite recovery-clockwork-img, restartujete telefon u ClockWork mod, pa particionisete karticu (npr. 1 Gb Ext i 32 Mb swap za 2Gb karticu).

Nakon toga restartujete telefon normalno, instalirate Link2SD, on prepozna particije i počne svaku novu instalaciju da prebacuje. A možete i postojeće programe da linkujete...

19 октобар 2010

Da li je Lazarus spreman za pisanje poslovnih aplikacija ?


(Ovo je jedno programersko iskustvo iz Blaise Pascal Newsletter, koje dokazuje da je Pascal multiPlatform/multiOS/multiCPU magija moguća, ali u Open Source svetu kroz Lazarus projekat, koje Vam objavljujem u slobodnom prevodu...- op.a.)

"Ovaj članak pokazuje ogroman napredak koji je Lazarus napravio zbog predanog rada jezgra razvojnog tima. On pokazuje da je danas Lazarus na mnoge načine u rangu s Delphijem, a u nekoliko ključnih područja i daleko ispred Delphija (32/64 bitni, multi-platforma i multi-OS, omogućava razvoj na mobilnim i ugrađenim sistemima).

Naravno, to nije isto kao i Delphi, ali je vrlo jeftino. Lazarus je pristupačan za svakoga i možete da započnete odmah sa realizacijom informatičkih zahteva. Možete stvoriti bilo koji program, koji ste ikada želeli, a broj dostupnih komponenata stalno raste.

Dakle, odgovor je DA. Savršeno za komercijalne svrhe!

Počeo sam svoj posao 2001. u hrvatskoj firmi, koja se zove Holobit. U to vreme Holobit je bio prilično mala firma, sa nekoliko desetina kupaca. Moj primarni zadatak je bio da set trenutnih C++ poslovnih aplikacija prevedem na Linux i Windows, pomoću Delphi, Kylix i Borland-a CLX tehnologije. Nakon godina, C/C++ kodiranje na Linux OOP je izgledalo vrlo jednostavno i dobro organizovano. Dva meseca kasnije sam zaključio da Borland daje odlične proizvode, i vreme kodiranja je puno kraće nego što je bilo sa C/C++ (gtk+, QT) pomoću vi editora. U svakom slučaju, u roku od 3 meseca naše poslovne aplikacije su pretvorene u CLX i firma je počela prodaju za Linux i Win32. Sve je učinjeno sa Kylix 2 i Delphi 6 (kasnije nadogradili na K3 i D7).

Izrada native Linux aplikacija je bila dobra odluka, tako da je broj kupaca počeo ubrzano da raste. Naši klijenti su bili sretni sa mogućnošću izbora između Linux i Windows klijent aplikacija za desktop PC, jer štede novac i stvaraju bolju i sigurniju okolinu. Drugo pitanje pretvaranja, koje je izgledalo prilično komplikovano - u to vreme - bilo je oko baza podataka. Kada sam počeo pretvaranje naših aplikacija, sve od njih su koristile FoxPro. Bio sam jako razočaranim s njim, jer sam tada već koristio PostgreSQL na Linuxu. Pogađate, preselili smo sve naše aplikacije na PostgreSQL.

U to vreme nisam znao za ThirdParty komponente, kao što su Zeos itd. .., pa sam napisao svoj PostgreSQL driver, koji se koristio još nekoliko godina. Kasnije, kada sam pronašao Zeos - ugodno iznenađenje - odmah sam ga počeo koristiti. Tako je došla 2004., bilo je glasina da je Kylix ugašen, nema vesti iz Borlanda - samo tišina ...

Da, bio je ugašen: sram vas Borland, ne zato što ste stavili Kylix u grob, već zato što ste varali svoje klijente. Tokom godina smo se borili sa Borland proizvodima. U međuvremenu, Kylix se nije mogao pokrenuti na bilo kojoj distribuciji, ako se ona temelji na glibc, većem od 2.4.X. Sve dok nisam video da je neko počeo qt-widgetset u Lazarus projektu, i taj tip je bio Felipe, a i zahvaljujući Den Jean za Qt C bindings (jer bez toga nismo mogli imati Qtwidgetset unutar Lazarusa).

Iako sam probao Lazarus samo nekoliko puta pre, nisam bio privučen ranije, jer podržava samo Gtk1 widgetset, koji je izgledao strašno, u poređenju sa Qt2, koji koristi Kylix. Sad sam bio motivisan za preuzimanje Lazarus builda, kako bih saznao za način rada sa Qt. (jer sam već ranije pokušao Gtk). Kao što je spomenuto, rad na Qt widgetset je tek počeo, a rezultat je pokazivao da je potrebno puno poboljšanja, tako to tada nije radilo.

Nakon brzog skeniranja Lazarus principa, biblioteke Lazarus komponenti (LCL) i widgetset veze LCL, počeo sam sa korekcijama, sa primarnim ciljem da Qt widgetset proradi. Moje prve zakrpe su zatim poslate Felipeu. Bunio se mojim standardima kodiranja (hej, hej), pa sam promenio moje standarde kodiranja prema Lazarus principima. U svakom slučaju, nakon nekih godinu dana, Qt widgetset je postao upotrebljiv. U međuvremenu, Lazarus programeri su mi odobrili SVN pristup - tako da nema više potrebe da čekam na Felipeovo odobrenje, i drugih da izvrše svoje zakrpe.

U isto vreme - poslovni problemi narastaju sa Kylix i Delphi programiranjem i uprava firme je razmatrala o tome da se aplikacije presele kompletno u Javu ili .Net. Kada je uprava donela odluku za tu promenu, brzo sam prigovorio.

Nisam bio jako sretan s tim. Ne zbog programa, nego zbog svih ThirdParty komponenata, koje se koriste u našim aplikacijama (ZeosLib, FastReports, TMS mreža, VirtualTrees itd). Rekao sam da ćemo trebati puno vremena i resursa, da se preseli naš kod u Javu ili .Net, a mogući rezultat te operacije nije bio ohrabrujuć. Bio sam uznemiren tom poslovnom odlukom (i već sam imao na umu da promenim posao), tako da sam jednog dana pitao šefa, ako bi se mogli dogovoriti, da mi da neko vreme za razvoj koda koristeći Lazarus. U sledećih nekoliko mjeseci, sam pokazao neke od naših aplikacija koje trče na Qt4.

Imao sam u početku trku sa vremenom, morao sam popraviti Qt-LCL i pretvoriti jedan od naših zahteva za LCL (samo mali jedan). To nije bio lak zadatak, jer qt-LCL još nije završen i puno stvari ne radi. Zeos za Lazarus je već postojao, ali za ove jednostavne aplikacije sam morao imati FastReports i TMS grid kontrole. Dakle, imao sam tri meseca da bi Qt pod Lazarusom bio upotrebljiv, i za pretvaranje FastReports i TMS kontrola (oba CLX licencirani) ...

Nakon stotina sati kodiranja, dan svođenja računa je došao. Morao sam pokazati svoj rad krajem Februara 2008. Napravio sam prezentaciju na Linuxu, 32-bitnom Windowsu i na Mac OSXu i uprava firme je bila zadovoljna. Naravno, bilo je tu još bugova i neprevedenih modula, ali su oni poštovali moj glavni argument : Ako se preselimo u Lazarus, bićemo u mogućnosti da radimo na drugim (čak i više) podržanim platformama, a i zbog toga što je Lazarus - Open Source projekat, ne bismo više bili na milosti i nemilosti odluka od strane drugih firmi (kao što je Borland), koji su nas osujetili u prošlosti.

To je postao najsretniji dan u poslednjih nekoliko godina mog radnog veka. Dobio sam budžet i vreme potrebno za selidbu naših aplikacija u Lazarus. Sada sam imao razuman rok (15 meseci) za poboljšanje Lazarusa i prekodiranje naših aplikacija za Lazarus (i pored drugih svakodnevnih poslova). Tokom 2008/2009, konvertovao sam sve ThirdParty komponente i sve naše aplikacije za FPC/Lazarus, što je takođe doprinelo sa puno zakrpa za sam Lazarus projekat.

Cilj je postignut - Lazarus je bolji sada nego Kylix 3 i počeli smo implementaciju LCL aplikacija za više od 3.500 korisnika. Njihovi utisci su pozitivni, jer naše aplikacije izgledaju prirodno na svim platformama. Nekoliko desetina Mac OSX korisnika su takođe bili zadovoljni, jer smo im dali native aplikacije po prvi put (pre su koristili Paralele + Linux VM).

WOW, kakav slavan dan. Mi više ne trebamo Borland proizvode.

Sada je naš kompletan asortiman softvera razvijen korišćenjem FPC/Lazarus i PostgreSQL RDBMS:

1. HoloERP - ERP sistem sa > 400 modula (obrasci)
2. Cafeman - Caffe barovi i restorani BackOffice i POS sistem
3. TSuS - male trgovine BackOffice i POS sistem
4. Kino - softver za bioskope (rezervacije, ulaznice i sl.)
5. ArhStudio - arhitektonska dokumentacija u bazi podataka.

Sve ove aplikacije koriste sledeće 3rd party komponente:

· ZeosLib
· FastReports (portovan CLX)
· TMS rešetki (portovan CLX, ali takođe smo licencirali najnovije VCL i to portovali)
· TMS Planner (portovan CLX, kasnije VCL)
· FlexCell (licencirani LCL, da postoji LCL verzija)
· Naše specifične komponente

Zaključak:

Zašto?

Lazarus je spreman za komercijalnu upotrebu, posebno za osobe sa ostavštinama u Kylix3 / Delphi7 kodu. Moje lično mišljenje je da je Lazarus/Qt puno bolji, nego K3/D7 u ovom trenutku (0.9.29 stablo), a programeri će biti zadovoljni sa novom 0.9.30 verzijom.

· Jedini OOP RAD koji podržava tolike platforme.
· Stalno razvijan od strane volontera, pa ne zavisi od komercijale odluke, tako da možete izbeći bankrot i sl.
· Troškovi su - gotovo ništa, osim energije i vremena.
· Ako nešto ne bi odgovaralo Vašim potrebama, možete promeniti i doprineti Lazarus projektu.
· Ako postoji bug - možete to popraviti i doprineti, ili barem možete otvoriti pitanje na Lazarus tracker ".

Autor ovog teksta je Lazarus forum član Željan (http://wiki.lazarus.freepascal.org/User:Zeljan), a softverski slučaj je iz http://www.holobit.net

18 октобар 2010

Application Lifecycle (Delphi vs Java vs Lazarus) - II deo


Zaokružena razvojna celina jedne aplikacije, Application Lifecycle baterija, je izgleda konačno pronađena u OpenSource svetu, kroz projekat Lazarus , i sadrži elemente :

+ RAD (gui layer) - lazarus
+ Database controls (database layer) - ZeosDBO
+ QuickReport (report layer) - LazReport

Ostaje mi da pronađem sledeće slojeve :
+ DevExpress VCL (advanced UI layer)
+ InnoSetuo (setup layer)

Glavna magija Lazarusa se ogleda u potpuno transparentnom multiplatformskom razvojnom okruženju za Windows/Linux/MacOSX, sa podrškom za 32/64 arhitekturu.

Lazarusov slogan i jeste : Write once, compile anywhere.

Sa verzijom 0.9.29 SVN od 17. Oktobra 2010., bugoviti form inheritance sada radi kao podmazan. I samo okruženje je izgleda preležalo dečije bolesti. Razvojni tim za verziju 0.9.30 najavljuje veliku stabilnost i dorađenost.

I dok čekam da Embarcadero stigne sa Delphi 2012 tamo, gde Lazarus već odavno plovi (multiplatform, multiprocessor development), mislim da više nema prepreka za slobodan i konkretan rad u ovom Open Source sjajnom alatu.

18 септембар 2010

pgtray - PostgreSQL Tray Monitor

U radu sa PostgreSQL serverom, smetalo mi je što nema Tray Monitora, kao kod mySQL servera. Pretražio sam Internet, ali takav projekat na pgFoundry je vrlo zastareo i na verziji 1.0. Rešio sam da napravim taj mali alat samostalno, i evo kako to izgleda ...



Možete ga preuzeti ovde.

13 септембар 2010

Application Lifecycle (Delphi vs Java) - I deo

Godinama aktivno pratim RAD scenu (Delphi, Java, VisualStudio) i sve posmatram kroz neku prizmu Application Lifecycle filozofije.
Java je zaista sve bolja, ali još uvek ne nazirem rešenje sledećeg problema :

Dakle, da li u Javi (NetBeans-Eclipse) postoji zaokružena celina razvoja jedne aplikacije, kao Delphi baterija tipa :
+ Delphi RAD (gui layer)
+ Database UniDAC controls (database layer)
+ QuickReport (report layer)
+ DevExpress VCL (advanced UI layer)
+ InnoSetuo (setup layer) ?!

I dalje tražim konkretnu Java platformu, za sve nivoe razvoja jedne kompletne aplikacije:
- baza
- gui
- report
- setup...

A dok čekam Delphi 2011 sa multiplatform-compiler glavnim novitetom, naravno zbog Linuxa, pitam se da li je Java zaista jedina solucija ...