paolo@bimodesign.com | +34 608 61 64 10

All sections (158 posts)

        

HBase - scan options

Scan is the second way to get data from HBase tables and in this post I'll show a simple example using java, showing some options like Start, Stop row and batching. (read more...)

        

Java/Hbase - Composite Key

When the HBase table has a composite rowkey the method get() of Java is slightly different respect to the single key. (read more...)

        

Java - Enums with values

Enums are classes in Java. They have an implicit ordinal value, starting at 0. If you want to store an additional field, then you do it like for any other class: (read more...)

        

HBase/Java error reduce flushing

During the excuting a map and reduce of Hadoop Java job the reduce felt down, returning this error_get_last. (read more...)

        

Java - Stack

Those are simple examples about the use of Stack in Java. (read more...)

        

Java - Array, List y Map

We start explaining the meaning of ArrayList that starting of the version 1.5 of Java is possible to define the type of a list, in this way (read more...)

        

HBase/Java migration to 1.1.2

There are several changes when migrating from HBase 0.98 to 1.1.2 and in case of using method java to interface to it, we have to consider to modify in this way. (read more...)

        

HBase - Shell

In this post I'll show some tips and tricks using the Hbase shell. The post will be updated when I'll find new interesting commands. (read more...)

        

Spark - Join with lists

The Join function doesn't work with list, so to make a merge of them we will create two RDDs for each list. Before starting to read this post, you need to read (read more...)

        

Zend2-Doctrine2-MongoDb (Create Post)

This is the second post of my blog test using Zend 2, Doctrine 2 and MongoDB. You'll find how to create a post adding the flashmessanger options to show the message return every time submitting form. (read more...)

        

Zend2-Doctrine 2 and MongoDb (A Blog)

I'll start creating a simple blog using Zend 2, Doctrine 2 and MongoDB. In particulary in this first post you'll find a login and create users controllers adding the flashmessanger options to show the message return from every submit form. (read more...)

        

Zend2-Doctrine 2 and MongoDb (Upd/Del)

This is the fourth and last posts about Zend 2, Doctrine 2 and MongoDB installation and CRUD examples. In this article I'll show update and delete document. The next posts about these tecnologies will be an example of a blog's structure. (read more...)

        

Zend 2 - Doctrine 2 and MongoDb (Select)

This is the third posts about Zend 2, Doctrine 2 and MongoDB installation and CRUD examples. In this article I'll show how find a document, using several methods. I'll show the find method, the queryBuilder, the eagerCursor etc... (read more...)

        

Zend 2 - Doctrine 2 and MongoDb (Create)

In this post I'll explain how to integrate the Zend 2 with Doctrine 2 and MongoDB, inserting a simple record/document into a collection user (that doesn't exist). After installing the Zend 2, Doctrine 2 and Mongo Db how to explain in the (read more...)

        

Spark - Difference Map and flatMap

In this post I'll show the difference between Map and FlatMap, that work quite differently when it comes to lists. Note before starting to read this post, you need to read (read more...)

        

Zend 2 - routing

Routing is the act of matching a request to a given controller and a route is based on a key and contains some options. All configuration (including routes) from all modules are combined into one config array and it places into the file called module.config.php (read more...)

        

Spark - example of Distinct

Before starting to read this post, you need to read this where there is the quickly introduction to some PySpark functions. In this post I'll show the difference using or not the distinct function. (read more...)

        

Zend 2 - Install Doctrine 2 and MongoDb

These are the steps to install y configure on Ubuntu 14.10 a Zend 2 skeleton with Doctrine and MongoDB After installing mongoDB and PHP 5, we need to install php5-mongo, using this commands (read more...)

        

Spark - Map, Reduce and Filter

In this first post about Spark, I'll show some examples using the PySpark Map function join with Reduce, ReduceByKey and Filter, in order to produce the new RDDs and finally the output. (read more...)

        

MongoDB - Replication and rollback

One of the test exams to get the MongoDB Developer certification was about the Replication. The scenary was three node running (read more...)

        

Zend 2 - Kerberos and Active Directory

I'll show you how implement Kerberos + AD and only AD in Zend 2 Framework. The first step will be generate a keytab and configuring (read more...)

        

MySQL - schedule stored procedure + debug

This MySQL stored procedure checks and change the state of a record from 1 to 2 or 2 to 3 depending of some conditions. It will be schedule every minute and it calls a debug stored procedure. (read more...)

        

MongoDB - Ordinal number array

I have this structure that figure out the blog's posts and its likes to the comments. (read more...)

        

MongoDB - Exceed memory

A test of the MongoDb Developer's exams was to use the aggregation to figure out pairs of people that tend to communicate a lot from a dataset where is a very large numbers of the email. (read more...)

        

Doctrine - Insert many to many

Using Doctrine you could need to manage the insert/update in a relational tables. If the OneToMany isn't so difficult, in case of ManyToMany relationship you will follow this topics. (read more...)

        

MongoDB - Aggragate cases

One of the tests of the MongoDB Developer Course was the aggregation framework and these three exercises and my solution. I'm trying to explain every steps for each one of them. (read more...)

        

Doctrine - Crud Many to Many

There are several ways to select data from three (or more) table that have a relation between them. In this post I'll explain the createQuery solution (read more...)

        

Unix - shell check process running

Some weeks ago my friends asked me to help her writing a shell code for the university exams. The issue was to create a shell that checks if a process is running. (read more...)

        

Git - Tip and tricks branch

In this post I'll show some usefull commands to manage the GIT branch. I'll show only the commands without explain them. It's only a reminder (read more...)

        

Doctrine - DateTimePicker

If you to create in Zend 2 using Doctrine, a calendar like this (read more...)

        

Zend 2 - How to zip file

To zip one or more files crypting using a password, I use the Compress Zend 2 method in this way. (read more...)

        

Git - Tell who you are

To init a repository, after tipying this pull command (read more...)

        

MySQL and Cron DB (Event Scheduler)

Beginnig of MySQL 5.1, it availables the event feature, that allow to schedule (like a Unix cron) task that you want to perform on your database. (read more...)

        

Php - Upgrade from 5.3 to 5.5

Wich are the difference from the 5.3 to 5.5 PHP version? It's a list of functions and some advices to keep in mind. (read more...)

        

Php - Random String Password

I'm using this simple PHP functions in order to create a random password which has this properties
(read more...)

        

Php - Avoid script injection

To avoid the script injection in a form, maybe the best way is to apply this regexp rules to the input data. (read more...)

        

Regexp - An explication

Starting to check using the RegExp, the latitude and longitude using these examples (read more...)

        

MySQL/PHP, manage multi languages

In order to manage a lot of different languages (as russian, arabic, chinese and all european languages) I decided to create an only table that will contain the translation of all the texts of my application. (read more...)

        

Zend 2.0 - How configure routing

I needed to create a route using an alfhabetic ID as unique parameter to pass to my controller.
For example:
http://mydomain.localhost/comparador/en
http://mydomain.localhost/comparador/it
(read more...)

        

Prestashop, how to configure Sandbox

Those are the steps to configure the Paypal test platform (Sandbox) for Prestashop (read more...)

        

MySQL, how and when using the pivot table

The called pivot table is the SQL way to spinning data column in a row, and then read these data as it should be a typically table. Here (http://stackoverflow.com/a/9668036) you could find a perfect explanation of the steps to solve this issue.
In my post, I'll explain the particular case that I had to solve. (read more...)

        

Symfony2, using validation constraint "all" and custom choice function

I've started developing with Silex, a Symphony2 microframework, from few mounths and I'm using the validation constraints for JSON input data. The constraints covered the validation of a lot of objects and in this post I'll describe a complex case, where I'll use the ALL constraint. (read more...)

        

Jquery, creating a JSON data during to type into a input element

This Jquery function allows to create a JSON data, and insert it in a hidden input element, with this structure { "es": "Hola mundo", "en": "Hello world", "it": "Ciao mondo" } where the number of the elements is variable, depending on the languages that are configured into the database (it will show in a select html element). (read more...)

        

MySQL, auto commit, set transaction and savepoint

Autocommit is "on" (=1) to default in MySQL, so every DML statement (Insert, Update, Delete) cannot be rollbacked. There two ways (more savepoint) to disable auto commit, only for InnoDB engine. because MyISAM doesn't support transaction. Implicit and explicit. Note: in case of DDL (like create table, indexes, alter table, etc) in any case isn't possible to rollback. (read more...)

        

Magento, how to create an email with only a PDF file with all the coupons for DD

Before starting to explain how I can modify the structure to generate only one email for every orders, with one PDF file with several pages/coupons, I'm going to explain how Magento manage and define the product types, using these two lines (...) (read more...)

        

Jquery, increase or decrease a numeric input value

This Jquery function allows to add or remove one unit to a input html numeric value. It starts from 0 (and it doesn't allow negative values) but it's possible to type a custom value and then to increase/decrease it. (read more...)

        

Adyen, the admin panel

This post is part of these adyen posts:

(1) Adyen, how to become a client and request one/more subaccounts
(2) Adyen, Admin panel
(3) Adyen, how to manage the skins (at working)
(4) Adyen, a custom PHP class (at working)
(5) Adyen, refund and Paypal integration (at working)

In this second post about Adyen platform payment, I'm goig to explain the menu payment in order to show the payments and to generate the reports. (read more...)

        

Jquery, how to check input values during typing them

This Jquery function allows to check, while the user types char into the input html element, if the value/char will be a part of decimal number and it doesn't allow to type it. A message error will show when the function detects an error during the type and hide it in another cases. (read more...)

        

MySQL - Usefull selects

This post resumes several of my sql statments that I have used during these years. In some cases I details more information about the use of them
The post is continuing update and it will be push on the top of mysql list, every time I'll add a new statment.
Note: Some old descriptions are in Italian language. (read more...)

        

MySQL, how to debug a trigger or procedure code

There are several ways to debug a MySQL code (triggers and procedures) and some of these are tools (free or not) that are so complete and efficient, as MySQL Debugger, dbForge or Toad Mysql, but if you need to develop a quick and simple debug, this is my suggestion. (read more...)

        

Check mm/dd format date

This function checks if the input date with this format (MM/DD) - without year - is valid. Also calculates the last day of Febraury of current year. (read more...)

        

Magento, how to manage when discount coupon set price to zero

Starting with this post I'm going to explain the functionality concept about the price zero in Magento Checkout.
I don't know if this is a bug, but I had an issue when I apply a discount coupon code to the total price and the final price was 0. This issue didn'n happen when I set to zero the total product price.
(read more...)

        

Magento, tips and tricks

The purpose of this post is collecting a list of tips and tricks of Magento, thus avoiding to lose a lot of time finding a solution for simples issues.
This post will be update periodically and currently it contains these topics:
How to...
- Get the validate date from/to of a product
- Get the shipping address
- Get the stock, sold and dummy values
- Redirect to cart instead of oneStepCheckout
- Add custom Terms and Conditions
- Change the top links
- Modify dailydeals code to not duplicate merchant user
- Get the user data
- Make differents menu between User and Merchant
- Solve the DailyDeals Bug (Gracias Javi!)
- Add the phone number variable into the email (Gracias Cata!)
(read more...)

        

Yii, how to add a button for CSV reports

In order to add a button to generate, for example, a CSV reports (or any tasks), you could make these steps. (read more...)

        

Prestashop, how to add code promotion to register form

I have to add two promotional code, where the user create your account in my Prestashop application (note: I'm using the 1.5 version). The first one is that identifies the user owner of it (I'll call it, codepromopadre) that invited the user to my application and the second one is the user code (I'll call it, codepromouser) that identify the user and that he/she could pass to new users to connect to my application.
Every new users, will have to introduce the codepromopadre only during the first register. (read more...)

        

Loop into a period

This function return all the days of a period (from PHP 5.3) (read more...)

        

Magento, how to count the stock for the configurable products

Magento allows to manage and to define three product types, using these two lines

$product =  Mage::getModel('catalog/product')->load($product_id);
$typeId  = $product->getTypeId();

you'll get, one of:
- virtual
- configurable
- simple
- and more...

The configurable products (...) (read more...)

        

Magento, Daily Deal how to resolve but to assign merchant role

The magento Daily Deal module doesn't run correctly in order to assign a merchant role to the user.
As twice chances don't run I decided to modify one of them, where we first create a user and we assign them the merchant role. In this case, the Daily Deals module duplicates the userId and it doesn't assign the correct deal to the merchant. (read more...)

        

Couponic, improve a complex select performance

I created this a only select statment to generate a complex report to list all the sales in a Couponic application, in order to send a csv file to the administrator (via email).
The time taken to generate the 12 thousand cvs rows is around the 5 minutes, so I need to improve it and the first step it has been creating indexes. The next will be create partition (cause the report affects 8 mounths) and finally I'm going to create view or temporary table to process these data.
But in this post I'll show only the steps to create the indexs.
(read more...)

        

Magento, how redirect customer and merchant after login

When customers or a merchant sign in magento they will redirect to account’s dashbord page by default. If we want to change it, for example redirecting the customer to the home page and the merchant to own panel (In a futher post, I'll explain how to customize the account’s dashbord page for the merchant), we have to modify the code. Those are the steps to goal it, using the Intell module.
(read more...)

        

Shell Script, how to create a virtual host

This is a shell script to configure a virtual host, modifying the
- /etc/hosts
- /etc/apache2/sites-available/OwnHostName
- rootdir/phpinfo.php
including to make several checks and restarting apache. (read more...)

        

Adyen, how to become a client and request one/more subaccounts

I'm going to explain the Adyen platform credit card payment, by these adyen posts:

(1) Adyen, how to become a client and request one/more subaccounts
(2) Adyen, Admin panel
(3) Adyen, how to manage the skins (at working)
(4) Adyen, a custom PHP class (at working)
(5) Adyen, refund and Paypal integration (at working)

This is the first post about the adyen platform payment, and I'm starting to explain: (read more...)

        

Yii e la gestione del lock MySQL

In questo articolo vi illustro come implementare il lock MySQL, in Write Mode su una o piu' tabelle, usando i costrutti tipici del framework Yii.
Prima di procedere un breve accenno al LOCK in MySQL... (read more...)

        

Magento, Aitoc and skin Adyen movil

After almost thousand post in Italian, I've decided starting to write in english. That's my first post and I'm sorry for the grammatical errors that you'll find here. But it's an IT blog at least and I'm sure you'll excuse me ;)

In this post I'll talk of Magento, that I've started developing since only two mounth.
Currently the Aitoc plugin, that we are using to connect to the Adyen payment platform, allows to configure only one skin. I'll show how to add to add another to configure the movil skin too. (read more...)

        

Prestashop: Come configurare Paypal

Prendo spunto da questo video (in spagnolo) che spiega in maniera molto chiara cosa occorre fare, e qui di seguito dettaglio schematicamente i passaggi principali. (read more...)

        

GIT: Usare Merge e proprie branch

Apro questa sezione generica, parlando di uno sei sistemi piu' comuni per il subversion del codice, ovvero GIT.
Il progetto e' stato pensado da Linus Torvalds, ed indica un termine gergale inglese per indicare una persona stupida o sgradevole. Linus lo spiego' cosi':
Sono un egoista bastardo, e do' a tutti i miei progetti un nome che mi riguardi. Prima Linux, adesso Git.
In effetti all'inizio e' un po' ostico da usare e ti da' l'impressione di essere un po' idiota nell'usarlo ;)

Tralasciando questi aspetti folkloristici, se siete curiosi vi rimando alla pagina della Wiki, mi soffermero', in maniera molto schematica, sui comandi principali, la cui spiegazione, in particolare la parte della gestione delle branch mi e' stata fornita dal mio collega Eduardo
(read more...)

        

MySQL e l'InnoDB engine

In questo articolo illustro in maniera teorica, cos'e' l'InnoDB engine e come MySQL lo gestisce. Essendo appunti presi mentre studiavo per la certificazione MySQL DBA I, mi scuso in anticipo se incontrerete un misto di inglese ed italiano non proprio perfetto. :)
Gli argomenti saranno divisi in questi gruppi:

  • Data, Tablespace e log files
  • Transaction Model
  • Row Level locking
  • Isolation levels, Multi-versioning and concurrency
  • Foreign Key
  • Configuring InnoDB Buffers and Logs

Se correttamente impostati i parametri che vedremo in seguiro, l'InnoDB engine garantisce l'ACID compliance, ovvero Atomic, Consistency, Isolation, Durability e partendo da questa importante considerazione, iniziamo a scendere nei dettagli delle sue caratteristiche principali. (read more...)

        

Yii: Tips and Tricks per il CMS

In questo articolo, raccolgo alcuni suggerimenti per migliorare l'usabilita' del CMS che avete appena creato con Yii nell' articolo precente, in questo mio blog.
L'elenco sara' schematico ed in alcuni casi inseriro' i link alle risorse presenti sul web, senza dilungarmi troppo (read more...)

        

MySQL e la replication

La replication identifica un meccanismo di trasferimento di dati tra due o piu' database, attraverso operazioni di lettura (dall'unico master) e di scrittura (su uno o piu' slave). E' un sistema asincrono perche' queste operazioni, master--slave, avvengono non in maniera simultanea, anche se i tempi sono brevissimi.
La replica sincrona e' identificabile invece con i cosidetti Cluster, di cui mi occupero' in un prossimo articolo.
L'obiettivo della replication e':
- disponibilita' del dato: in caso di problemi sul sever che ospita il Master possiamo rapidamente cambiare le connessioni sullo Slave
- backup anche frequenti sia con dump che da filesystem, senza caricare eccessivamente o fermare il servizio sul Master, perche' viene sfruttato lo Slave.
- bilanciamento del carico: avendo cura di effettuare le operazioni di scrittura esclusivamente sul Master, possiamo utilizzare anche lo Slave in lettura, dividendo cosi' il carico di lavoro sulle due macchine. (in realta', questo si realizza meglio usando i Cluster, dove, tra l'altro, e' possibile distribuire il carico, addirittura di singole select, su piu' instanze dello stesso db)
(read more...)

        

Couponic - Analisi della Base Dati (Parte I)

In questo primo articolo sulla Base Dati di Couponic, vedremo la struttura dei dati relativi ai coupons acquistati, ovvero il cuore dell'applicazione. Nel successivo articolo illustrero' invece, le modifiche da me apportate per la gestione della data "esatta" del cosidetto riscatto (in inglese redeemed) di un coupon e della fatturazione, due moduli non previsti nella configurazione di base.
Inoltre sara' dettagliato in un ulteriore articolo, la gestione della localizzazione dei venditori.
Illustrando la struttura delle tabelle, non mi soffermerò nel dare giudizi sulle modalita' in cui e' stato pensato il DB, che, a titolo del tutto personale, considero avrebbe potuto essere definito meglio. (read more...)

        

Prestashop - Gestire prodotto in ordinazione

In questo breve articolo vi illustro come gestire un acquisto di un prodotto, come ordinazione, ovvero indicando al cliente che le verra' spedito non immediatamente. Al momento non ho trovato altre soluzioni e questa che vi propongo comporta comunque, poche modifiche al codice. (read more...)

        

MySQL: Una alternativa al CONSTRAINT CHECK

Visto che, come indicato nel manuale The CHECK clause is parsed but ignored by all storage engines, non si puo' utilizzare il CONSTRAINT ...CHECK in MySQL. Nel caso in cui dobbiamo farne uso (in realta' sono pochi i casi in cui non si abbiano alternative al suo uso), possiamo utilizzare uno tra questi due metodi, dove il secondo e' pero' limitato alle versioni successive alla 5.5 (read more...)

        

Yii: link a testo ed immagini

Yii presenta due forme per inserire i link html al testo ed alle immagini.
Vediamo quali sono. (read more...)

        

Couponic - Generare numeri di fattura (Bill) - Parte II

In questo articolo vi illustro una maniera diversa di generare le fatture per Couponic, aggiungendo inoltre la creazione di una procedure MySql nel caso in ci sia bisogno di generare i codici pregressi

(read more...)

        

Couponic - Generare numeri di fattura (Bill)

Come anticipato in alcuni post precedenti, Couponic presenta alcuni bug e mancanze abbastanza evidenti, come quella di non gestire i numeri di fattura.
Vediamo come risolvere. (read more...)

        

Yii : Suggerimenti per comunicare con il DB

In questo articolo, vi illustro alcuni suggerimenti utili per gestire la comunicazione con il DB (MySQL) (read more...)

        

Couponic: aggiungere la data di redeemed (riscatto)

Come anticipato in alcuni post precedenti, Couponic presenta alcuni bug e mancanze abbastanza evidenti, come quella di non gestire la data di riscatto (redeemed in inglese) del coupon, una volta che questo e' stato usato. Esiste infatti solo la possibilita' di cambiare lo stato da "disponibile" ad "usato" nel campo status della tabella cpns_DealCoupon.
Vediamo come risolvere. (read more...)

        

Yii: configurazioni di base

Yii e' uno degli ultimi framework PHP, e sta riscuotendo molto successo per la facilita' d'uso e d'apprendimento. L'acronimo indica "Yes, it is", ovvero, "Si', e' possibile". Infatti la velocita' e la leggerezza di questo nuovissimo framework, sono una delle sue principali caratteristiche.
In questo breve articolo, illustro alcune caratteristiche di base ed alcuni suggerimenti per la configurazione del Framework, mentre per la guida completa (in italiano) vi rimando a questo ottimo e completo link del sito Html.it (read more...)

        

Google Chart: Inserire piu' grafici sulla stessa pagina

In questo articolo vi illustro come implementare le Charts di Google, con la particolarita' di visualizzare piu' grafici sulla stessa pagina. Per la documentazione ufficiale, vi rimando al relativo link ufficiale, mentre qui vediamo nel dettaglio il processo,cominciando da come vengono archiviati i dati e come poi visualizzati. (read more...)

        

Couponic - Export CSV (Bug risolto)

Nel pannello di controllo di Couponic, il bottone che effettua l'export del CSV, risulta centralizzato sia per l'amministratore generale del pannello (quello che accede tramite /admincp/, per intenderci) che per il singolo utente che entra nel proprio CMS. Chiaramente questo e' un problema e la soluzione piu' veloce che ho trovato, e' stata quella di eliminare il bottone dell'export per il singolo utente. Una volta trovata la soluzione per separare i due CSV, scrivero' il relativo post. (read more...)

        

Prestashop - Migrare dati e codice tra due server

In questo primo articolo su Prestashop, insieme a Magento, il piu' utilizzato prodotto gratuito per la gestione di un E-Commerce, descrivo come effettuare la migrazione, dei dati del DB e del codice, tra due server. Per qualsiasi problema che riscontrate usando questa applicazione, vi consiglio di fare riferimento all'ottimo forum ufficiale.
Nota: Prestashop e' gratuito per quel che riguarda il proprio core e per moltissime funzionalita' di base, mentre ad esempio per i template grafici e per alcuni moduli, soprattutto quelli per effettuare i pagamenti, eccetto paypal, essi sono a...pagamento. (read more...)

        

MySQL - Prepare in una Procedure

In questo articolo illustro come sia possibile eseguire delle select che presentano dei parametri, attraverso delle Stored Procedure in MySql. Le select sono archivate nella base dati, ma potrebbero essere chiaramente presenti su file o in altre variabili.
Prima di leggere l'articolo, occorre aver gia' familiarizzato con le Stored Procedure in MySql e per questo vi consiglio una ottima lettura presente a questo link (e a quelli presenti nella pagina) Tutorial Storage Procedure (read more...)

        

Couponic - Titolo Multi Dealing nel pdf (bug risolto)

Couponic e' uno dei prodotti piu' diffusi per la gestione dei coupon di sconto. E' a pagamento e si basa sul recentissimo framework PHP Yii, mentre e' ommercializzato da Uniprogy.
Personalmente l'ho trovato abbastanza ostico, per aver adottato una architettura piuttosto confusa e di difficile apprendimento iniziale.
Ma rimane comunque un ottimo prodotto... una volta che si e' raggiunta una buona pratica nel modificare ed aggiungere elementi e moduli (come quello Adyen) di cui parlero' in linea generale in un prossimo articolo.
In questo vi illustro come risolvere il problema della visualizzazione corretta dei titoli dei prodotti che presentano il multi dealing. (Il multi dealing indica la possibilita' che un prodotto possa avere varie offerte). Preciso che questo problema si presenta solo nella creazione del PDF che verra' inviato al cliente, mentre non si riscontra in tutti gli altri casi (archiviazione dei dati, report nel pannello dell'utente e dell'amministratore, etc...). (read more...)

        

MySQL - Gestione NULL nelle partition

Occorre fare particolare attenzione quando si creano partizioni su campi che si prevede possano contenere valore nulli. Prendendo spunto da questo link della documentazione ufficiale, nel quale potete trovare i relativi esempi, riporto lo schema relativo ai 4 tipi di partizioni consentiti in MySQL
(read more...)

        

MySQL e la cardinalita'

La cardinalita' misura quante unique rows ci sono in un index
E' valutata su valori statistici interi, e quindi non necessariamente esatti, sopratutto nel caso di piccole tabelle.
Un valore di cardinalita' alto, indica migliori performance in lettura, perche' ha meno records da leggere, e quindi piu' possibilita' che MySQL usi l'indice quando esegue JOINS (read more...)

        

MySQL e l'EXPLAIN PLAN

MySQL offre diversi strumenti per mostrare come una query verra' eseguita e come puo' essere ottimizzata. Utilizzando queste informazioni possiamo modificare la query, definire un nuovo indice, o modificare lo schema per migliorare le prestazioni.
L'istruzione EXPLAIN PLAN, che ricordo e' uno strumento che fornisce dati approssivamativi, restituisce le informazioni su tutti gli step che verranno eseguiti, ma senza eseguire la select stessa, con alcune eccezioni. Nel caso infatti di subquery, MySQL ha bisogno di appoggiare i dati su una o piu' tabelle temporanee prima di analizzare la query completa e questo, come potete immaginare, nel caso di query complesse e che agiscono su grosse mole di dati, comporta un considerevole uso di risorse al momento di eseguire un Explain Plan. (read more...)

        

Una classe php (e 3 tabelle) per generare file di log (Nuova Versione)

L'obiettivo di questo articolo e' quello di definire una classe PHP che permetta di gestire i file di log, configurando nel DB, i messaggi, il modulo che lo genera, la linea del codice ed il livello di gravita' dell'errore.
Il risultato, chiaramente configurabile ed ampliabile secondo le proprie necessita', sara' un file, uno per ogni modulo, il cui contenuto sara' di questo tipo

[20-10-2012 08:30:45] NomeModulo Classe::Metodo Linea Livello Mess
ovvero
[01-06-2012 13:40:43] oferta::getData 182 2 Prueba
(read more...)

        

MySQL - Lista comandi utili

In questo articolo illustro una lista di comandi MySql utili, da eseguire da linea di comando di Unix, che avro' cura di aggiornare, quando avro' esigenza di usarne di nuovi
Per una lista più completa, potete fare riferimento anche a questo link oltre che chiaramente al sito web di MySQL. (read more...)

        

PHP e NoSql - Couchbase

Inizio con questo articolo, l'analisi di come implementare una soluzione NoSQL, in particolare quella offerta da CouchBase (che ricordo comprende CouchDB), usando il linguaggio PHP.
In questo articolo non mi soffermero' su cosa si intenda NoSQL e quali sono le differenze, anche piuttosto marcate, nei vari approcci. Uno schema delle varie soluzioni esistenti e le loro differenze le potete trovare a questo http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis (Nota: copiare-incollare il link sul browser per visualizzare la pagina...) dove viene fatto un confronto tra Cassandra, MongoDB, CouchDB (couchBase), Redis, Riak, HBase, Membase e Neo4j, mentre per una breve panoramica sul mondo NoSql, per ora vi rimando al sempre ottimo wikipedia (link in inglese), ma presto ci tornero' su, con articoli mirati all'analisi e alla definizione dell'architettura adatta alle mie esigenze, ovvero la cosidetta "document-oriented database stores".

Questo primo articolo trattera' i passi necessari per l'installazione di CouchBase su piattaforma Linux-Ubuntu e un primo, banalissimo esempio php.
Iniziamo... (read more...)

        

MySQL - Subpartition

Con questo terzo articolo la panoramica sul partizionamento in MySQL e' quasi completa, considerando altre modalita' di partizionamento, come quello per colonna, presente dalla versione 5.5 di MySQL che per il momento non trattero' nei dettagli, perche' credo sufficiente la conoscenza dei concetti di base delle metodologie per partizionare i dati qui, ed in precedenza, illustrate. (read more...)

        

CodeIgniter: Primi passi ed Auth Controller

La sua facilita' d'apprendimento e la sua leggerezza, hanno fatto si' che CodeIgniter risulti uno dei frameork piu' usati tra gli sviluppatori PHP, considerando comunque che Symphony (nella vers. 2) e Zend, risultano comunque quelli piu' completi.
Nell'articolo che segue vi illustrero' come installare e configurare da zero l'ambiente codeIgniter e poi come creare un controller per l'autenticazione.
Nota: In questo e nei seguenti articoli, non mi soffermero' sul concetto di MVC (Model-View-Controller), che considero gia' di conoscenza del lettore. (read more...)

        

Come rendere parametrico instanziare una classe

In questo breve articolo vi illustro come rendere parametrico il nome di una classe che, ad esempio, potrebbe essere presente in una variabile che, come sarebbe auspicabile, avete precedentemente configurato in una vostra tabella. (read more...)

        

MySQL e la ricerca FullText

In questo articolo illustero' come MySql rende piu' semplice la gestione di un motore di ricerca, utilizzando gli indici FULLTEXT e le ricerche booleane ordinate per range di importanza. Per rendere la lettura piu' snella e chiara, l'articolo e' suddiviso in punti principali, i quali comprendono tutte le caratteristiche di questa metodologia, lasciando alla vostra curiosita' lo studio dell'algoritmo per il calcolo del range, per il quale indico solo il link alla documentazione ufficiale. (read more...)

        

MySQL: Consigli sull'utilizzo degli indici

In questo articolo descrivero', in linee generali, come MySql gestisce gli indici, indicando come e quando crearli per sfruttarli al meglio. (read more...)

        

Installazione Oracle 11 su RedHat

In questo articolo vi illustro come ho risolto alcuni dei problemi riscontrati durante l'installazione della base dati Oracle 11 su server Linux RedHat. Non è da considerarsi una guida completa, ma una lista di indicazioni che posso tornare utili, nel caso la configurazione del vostro server, presenti le stessi contrattempi. (read more...)

        

MySQL - Partitioning (II parte)

Nella seconda trattero' nel dettaglio i vari tipi di partizionamento, illustrando le caratteristiche principali e i vantaggi nell'uso di uno rispetto all'altro.

La lettura di questa sezione, prescinde dall'aver letto la parte I di questo articolo, che trovate nella sezione MySql. (read more...)

        

MySQL - Partitioning (I parte)

Dalla versione 5.1, Mysql prevede, oltre a numerose novita', anche quella del partizionamento di indici e tabelle. Supporta cinque metodi di partizionamento orizzontale dei dati: range, hash, key, list e composite (sub-partizionamento).

Il partizionamento dei dati di indici e tabelle permette di ottenere tempi inferiori di risposta alle query, in quanto vengono analizzati soltanto i dati relativi alle partizioni pertinenti anziché le tabelle e gli indici nella loro totalità. Il partizionamento, inoltre, rende più semplici e veloci le operazioni di archiviazione e altre attività di manutenzione.

Di seguito vi illustro come implementare tale funzionalita', facendo riferimento alla documentazione ufficiale visualizzabile qui:

http://dev.mysql.com/doc/refman/5.1/en/partitioning.html

e al forum di discussione

http://forums.mysql.com/list.php?106 (read more...)

        

Zend - Come aggiungere customs classes

Per poter aggiungere delle proprie classi, come ad esempio quelle di validazione o quelle di creazione di un documento pdf o di qualsiasi altro tipo, occorre procedere come segue... (read more...)

        

MySQL - Tipi dati e loro caratteristiche (storage, range, ...)

In questo articolo, farò una breve panoramica sui tipi di dati presenti in MySql e su alcune loro caratteristiche, come lo storage, il range, etc...
Approfondisco in particolare alcuni tipi di dato, riferiti a questi gruppi NUMERIC, STRING e TEMPORAL, rimandando l'approfondimento completo di tutti gli altri, al manuale on-line (read more...)

        

Comandi utili Oracle per creare ed importare un DB

In questo articolo illustro alcuni comandi Oracle utili, per effettuare una creazione ed un import di dati su un database Oracle, per la versione 10 (dovrebbero comunque essere valide anche per le altre versioni). Le istruzioni sono state eseguito in ambiente DOS. (read more...)

        

Ajax/Jquery/Json/Zend - una struttura per comunicare

Questo breve tutorial ha l'obiettivo di spiegare come da una pagina web che contiene un risultato di una ricerca, si possano inviare varie informazioni passandole ad un file .php, attraverso Ajax, Jquery e Json. (read more...)

        

Ajax: Come configurarlo su Zend

Di seguito un breve e chiarissimo tutorial su come configurare Ajax sul Framework Zend. Usiamo come Jquery come framework Javascript (read more...)

        

Zend - AddValidator: Aggiungere propri Validator

Come indicato nel post di base e' possibile utilizzare i controlli di validazione gia' presenti, ma puo' essere necessario anche crearne di propri.
In questo caso, occorre procedere nel seguento modo... (read more...)

        

Zend - Come usare FlashMessenger

In uno stesso controller, ho due action. La seconda ritorna (redirect) alla prima, se c'e' un errore di validazione del form. E fin qui niente di strano. Funziona bene. Solo che io vorrei, mostrare un messaggio all'utente, prima di ritornare alla form/action 1, o anche mostrarlo quando viene aperta la form/action 1 (e' indifferente). (read more...)

        

Jquery - show DIV per option select

In questo semplice esempio, vi illustro come visualizzare un div a seconda di una opzione scelta in un elemento "select". Il codice è molto semplice, ma puo' risultare un buon punto di partenza per approfondire il linguaggio Jquery. (read more...)

        

Zend - addValidator: email (bug risolto)

alla comunita' di sviluppatori e' stato riscontrato un bug nella visualizzazione dell'errore di tipo email in un campo di input. Il bug consiste nell'impossibilita' di evitare di visualizzare tutti i messaggi di errore relativi ad un indirizzo di email errato, come invece e' possibile adottare utilizzando il secondo parametro breakChainOnFailure del addValidator.
(read more...)

        

MySQL - Select annidata

Un esempio per visualizzare una struttura ad albero, con padri e figli annidati, su piu' livelli. (read more...)

        

Jquery: Come identificare tag uguali

E' tipico in applicazioni dove si usa Ajax, indicare dei tag, come ad esempio "p" in piu' pagine e quindi e' necessario sapere poi come distinguerli uno dall'altro. (read more...)

        

Zend - addValidator (esempio base)

Di seguito vi illustro come poter aggiungere la validazione dei campi di una form, usando le classi predefinite, mentre in un altro articolo vi illustro come crearne dei proprio
(read more...)

        

Zend - Gestione vari multicheckbox in una form

In questo articolo, vi illustro come gestire piu' multicheck box nella stessa form. (read more...)

        

Ajax: Come effettuare il reload della stessa pagina

Se fosse necessario effettuare un reload della stessa pagina da Ajax, cosa comunque piuttosto rara, vi illustro un metodo diverso dal classico

window.location.href
(read more...)

        

Js - Riconoscere IE 9 (bug risolto)

Per il riconoscimento del browser IE 9 ho riscontrato un bug al momento di controllare il valore del MSIE, che e' sempre uguale a 7, sia nel caso dell'oramai obsoleto IE 7 sia per l'8 che appunto per il 9. (read more...)

        

Zend - Disabilitare autocomplete

In una form ho bisogno che digitando una stringa nel campo password, questa non risulti visibile, nemmeno se l'utente, in uno dei precedenti accessi, abbia salvato il contenuto nel proprio browser.
Insomma come accade ad esempio in alcuni siti di home banking. (read more...)

        

PHP - Mantenere dati di SESSION dopo chiusura finestra

Anche se concettualmente sbagliato (non ha senso infatti mantenere dati di SESSION quando l'applicazione ha terminato) potrebbe capitare che per questioni di praticità nello scrivere il codice, non potete salvare tutta la struttura di una variabile di SESSION in una tabella, ma avrete necessità di assegnarla così com'è di nuovo all'apertura dell'applicazione.
Vediamo come si può risolvere... (read more...)

        

Zend - Step Installazione su Ubuntu 10.10

Vi illustro come ho risolto l'installazione del Zend Framework sulla piattaforma Ubuntu 10.10, dove chiaramente l'ambiente LAMP, preinstallato funziona perfettamente ;) (read more...)

        

MySql - Rename tabelle e campi to lower

Vi illustro due istruzioni per rinominare tutte le tabelle di uno schema e nomi dei campi da maiuscolo a minuscolo. Ho avuto la necessita' di eseguire questo cambio, dopo la migrazione da Oracle a MySql. (read more...)

        

Array e tag select (caso 2)

Vi illustro un altro esempio per l'uso di un array che contiene informzioni da visualizzare in un tag select di un form e quindi poi recuperate via POST. (read more...)

        

Convertire formato data da Oracle a MySql

Per la migrazione da Oracle a MySql, le date, che sono in formato differente, occorre convertirle prima di eseguire l'insert nella relativa tabella.
Ho creato questa semplice funzione to_timestamp, che esiste gia' in Oracle, ma non in MySq (read more...)

        

Date Picker gestione dei secondi

Ho aggiornato l'eccellente libreria javascript DatePicker (di Jeremy Jongsma) che permette la gestione di un calendario completo di molte opzioni, tra le quali però non è prevista la gestione dei secondi.
Vi illustro quindi come ho modificato il codice ed il risultato ottenuto. (read more...)

        

MySQL e UTC date

Per convertire una data ad un qualsiasi fuso orario, MySql mette a disposizione la funzione CONVERT_TZ (Link al manuale ufficiale )

Pero', prima di utilizzarla c'e' bisogno di alcuni accorgimenti... (read more...)

        

Da XML a PDF

Descrivo schematicamente come produrre un documento pdf, partendo da due strutture dati XML (entrambe archiviate in una base dati MySQL) e usando la classe gratuita FPDF. (read more...)

        

MySQL - Confronto di schemi e tabelle di due db

Esistono vari modi di effettuare il confronto tra due schemi, e molti di questi fanno riferimento a dei prodotti software, come ad esempio il Toad, SQLyog o DbForge.
QUi vi voglio invece illustrare due metodi, che sono carenti della parte grafica, ma che possono essere utilizzati a prescindere dal software e dall'ambiente sul quale si lavora (ad esempio, Toad non e' previsto per sistemi Ubuntu) (read more...)

        

Validare Credit Card

Questa e' una funzione che permette di validare una carte di credito, verificando
1. Sia una stringa numerica
2. Sia dela lunghezza corretta
3. Il prefisso sia tra quelli consentiti
4. Gli ultimi caratteri siano un modulo 10.

Questo e' un esempio delle carte di credito che la funzione permette di validare

American Express 3400 0000 0000 009
Carte Blanche	 3000 0000 0000 04
Discover	 6011 0000 0000 0004
Diners Club      3852 0000 0232 37
enRoute	         2014 0000 0000 009
JCB	         2131 0000 0000 0008
MasterCard	 5500 0000 0000 0004
Visa	         4111 1111 1111 1111

Per come e' struttura la funzione, questa puo' essere estesa anche ad altre carte di credito. (read more...)

        

Creazione immagine auto-rigenerante

Il titolo non e' molto chiaro, quindi cerco di spiegarmi con il seguente esempio, che mostra come generare con l'aiuto di PHP, CSS, AJAX automaticamente, ad esempio dopo l'inserimento da parte dell'utente degli intervalli per le fasce orarie, una barra che presenti per ogni intervallo un colore, il quale si differenzia dal precedente per dall'applicazione di un gradiente.

Questo un esempio grafico, adattabile sia in dimensione che nei colori.
link immagine
(read more...)

        

Il Model-View-Controller (MVC)

Il pattern MVC (acronimo di Model-View-Controller) è un pattern architetturale molto diffuso nello sviluppo di interfacce grafiche di sistemi software object-oriented ed in particolare per i diffusi Framework PHP.
L'idea e' di separare i dati dell'applicazione, dai controlli e dalla rappresentazione finale degli stessi. Schematizzando, avremo queste tre parti principali:
1. Model che fornisce i metodi per accedere ai dati dell'applicazione
2. View che fornisce la presentazione dei dati contenuti nel model
3. Controller che gestisce ed indirizza le richieste fatte dal client

Di seguito vi illustro uno esempio pratico, in linguaggio PHP, da cui prendere qualche spunto. (read more...)

        

Class SoapClient - request/response

Lavorando con SOAP Web Service, può essere necessario sapere che raw request abbiamo inviato dal client e che raw response ricevuta dal server (read more...)

        

Bug (risolto) per output file excel su IE

Questo esempio illustra il problema relativo alla creazione ed apertura (senza salvataggio previo sul server) di un file (nell'esempio un excel).
Per questo articolo ho preso spunto da questo intervento, sul forum ufficiale Php.
http://www.php.net/manual/es/function.header.php#83384 (read more...)

        

PHP stdClass...array oggetto per XML

Nella documentazione ufficiale di php possiamo leggere la seguente definizione:

stdClass is the default PHP object.
stdClass has no properties, methods or parent.
It does not support magic methods, and implements no interfaces.
When you cast a scalar or array as Object, you get an instance of stdClass.
You can use stdClass whenever you need a generic object instance.


Quindi per stdClass, si intende una classe generica di PHP che possiamo utilizzare per raggruppare varie proprieta' di un oggetto, in una forma simile a quella che utilizzermo con un array. (read more...)

        

MySQL - Usare regexp all'interno delle query

Mysql permette di usare le espressioni regolari, tipiche del linguaggio PHP, all'interno delle query.
Vediamo come (read more...)

        

Ajax / Php: carrello della spesa

Partendo dalla risorsa indicata in fondo a questo post, ho ampliato il codice presente per la gestione del carrello della spesa, escludendo la necessita' da parte dell'utente di registrarsi, utilizzando al contrario le session sia per l'identificazione del cliente sia per i dati presenti nel carrello stesso. Questo mi permette inoltre di inviare i dati via mail, sia al negozio sia al cliente stesso e di registrare, al momento dell'invio della mail, i dati nel data base.

Quest'ultima operazione si puo' eseguire anche nel momento della scelta di un prodotto. Ho preferito pero' evitarlo, in quanto, oltre ad un rallentamento delle prestazioni, risulta superfluo registrare i dati, se non quando il cliente conferma l'invio del carrello. (read more...)

        

Controllo di versione (SVN)

Subversion, noto anche come svn per il nome del corrispondente comando, e' un sistema di controllo della versione del software, progettato con lo scopo di essere il successore del CVS.

In questo articolo descrivero' le caratterstiche principali, mentre per maggiori dettagli, fate riferimento a questo link
http://subversion.tigris.org/ (read more...)

        

Google maps e i markers

Ho appena completato l'implementazione della mappa di google, per la mia azienda, che, partendo dalle coordínate dei loro negozi presenti su una base dati, costruisce la mappa di Google inserendo i relativi market, differenziati tra di loro dalle relative icone e dai testi visualizzati, clickando su queste ultime Ad esempio, una icona per il Centro Commerciale A, un altro per B, un’altro per il negozio di accessori, etc... Prima di procedere con la spiegazione, vi indico anche il link alle API di google, cosi' da rendersi conto fino a che tipo di sviluppo e' possibile arrivare.

http://code.google.com/intl/es/apis/maps/documentation/examples/index.html

Buon divertimento... (read more...)

        

PhpExcel...la libreria definitiva

Non capita spesso, ma a volte ci si trova a dover creare file Excel, che nella versione piu' semplice (dati messi in colonna ed un header) si possono creare in maniera piusttosto facile, ma se la struttura e' complessa, finora era quasi impossibile coprire tutte le opzioni.
La libreria che vi illustro invece permette di creare file excel che presentino qualsiasi opzione prevista, dalla formattazione del testo e delle colonne, all'aggiunta dei commenti, fino ai fogli di calcolo.
Insomma proprio la libreria definitiva, di cui abbiamo bisogno.

Nota: Lo scopo di questo post e' solo ed esclusivamente quello di illustrarvi un esempio pratico, ma dovete fare riferimento al sito ufficiale sia per scaricare il codice che, sopratutto, per consultare la ricca ricca documentazione presente. http://phpexcel.codeplex.com/ (read more...)

        

Una stored procedure Mysql di esempio

Nel seguente articolo vi illustro la sintassi di una procedura per il caricamento dei dati in una tabella.
La procedura, che occorre chiamare nel seguente modo

CALL LOAD_DATA_PRUEBA (100000, 34118, 18794, 6, '2010-01-01');

Di seguito i dettagli di come costruire una semplice procedura in MySql (read more...)

        

Javascript e la sintassi del For per IE

Sembra strano, un ciclo for scritto in javascript e non rispettando la sintassi, viene interpretato correttamente da Mozilla e non da Internet Explorer... (read more...)

        

Php e Codice a Barre (Barcode)

In questo articolo vi illustro come usare la classe che crea un codice a barre, generando un file pdf.

Innanzitutto occorre avere a disposizione la classe phg fpdf per la creazione appunto dei file pdf. Per maggiori dettagli leggete questo mio articolo o cercate sul web questo oramai diffusissimo ed utilissimo codice.

Invece per una descrizione del Barcode, cosa c'e' di meglio del link (in inglese) a Wipedia? :)

In questo articolo utilizzeremo il Barcode di tipo 39. (read more...)

        

Dalla tabella all'array

Ci sono vari modi per caricare i dati estratti da una select, in un array php.

Io uso questa forma... (read more...)

        

Validare formato data con php

In alternativa ad usare javascript per validare una data (a volte non è possibile che per particolari contesti non sia implementabile) possiamo scrivere poche righe di codice php. (read more...)

        

Js -Eseguire submit di un form

Anche se sconsiglio di usare javascript per effettuare una operazione del genere, potrebbe capitare, come e' successo a me, di dover modificare vecchi applicativi, dove e' necessario eseguire questa operazione e magari non si puo' utizzare Ajax o non si ha il tempo per implementare tutta la struttura. (read more...)

        

Differenze tra Oracle e MySql (parte II)

In questo articolo vi descrivo le differenze tra Oracle e MySql, per quel che riguarda la gestione delle date, delle conversioni e di altre funzioni.

Il capitolo introduttivo, lo trovate qui

Ricordo inoltre che nella guida ufficiale di Oracle, che ricordo ha recentemente acquisito Sun Solaris e quindi anche MySql, trovate tutti i riferimenti (read more...)

        

JS - Disabilitare combo box con check box

Vi illustro una semplice funzione javascript che permette di disabilitare la selezione di un combo box, se disabilitate un check box, senza uso di Ajax ne' di dover ricaricare la pagina. (read more...)

        

Php ed Excel

Sono disponibili varie librerie per far interagire il php con excel. Qui potete scaricare tutto il pacchetto (.zip) che ho trovato in rete.

Nel dettaglio vi illustro come acquisire in una array bidimensionalei dati presenti in file excel, i quali avranno questa semplice struttura.

- 1 riga d'intestazione

- n righe di contenuti, dove ogni cella e' stata popolata.

Da questo esempio poi potete partire per adattarlo a tutte le vostre esigenze. (read more...)

        

Differenze tra Oracle e MySql (parte I)

MySQL e' il piu' diffuso tra i DBMS relazionali Open Source, Oracle e' invece il piu' diffuso tra gli RDBMS commerciali. Non e' cosi' improbabile quindi che capiti di passare dall'uno all'altro. Quello che segue e' un resoconto, non completo, delle differenze principali tra i due database.

Sto preparando un altro articolo sulle differenze nella gestione delle date e delle stringhe.

Ritengo di fondamente importanza indicare la versione di entrambi, con il quale e' stato preparato questo prospetto. La versione di Oracle versione 10g R2 (10.2.1.0) e e la 5.0 di MySQL (5.0.24), dove in quest'ultimo caso e' preferibile utilizzare l'Engine InnoDB per avere un comportamente simile ad Oracle.

Non verranno trattate le differenze sull’architettura, l’installazione, il tuning, le prestazione, le replicación e i programmi di supporto in quanto le mie attuali conoscenze non mi permettono di appronfondirle in questo articolo.

Una valida guida, da cui ho preso spunto per questo mio articolo, la trovate in questo link (in italiano)

http://www.xenialab.it/meo/web/white/oracle/oramy.htm

Mentre nella guida ufficiale di Oracle, che ricordo ha recentemente acquisito Sun Solaris e quindi anche MySql, trovate tutti i riferimenti

http://download.oracle.com/docs/cd/E12151_01/doc.150/e12155/oracle_mysql_compared.htm (read more...)

        

Rinominare l'indice di un array

Puo' capitare di avere la necessita' di cambiare i valori, ad esempio numerici, di un array bidimensionale, con delle stringhe descrittive.
In questo caso la sostituzione puo' essere eseguita nel seguente modo.. (read more...)

        

php - Convertire Date, Numeri, Monete

In PHP, per convertire dal formato US una data o un numero, che presentano rispettivamente il formato yyyy-mm-dd hh:mi:ss e i,iiii.dddd, occorre usare queste funzioni. date() e strtotime() per la data, mentre number_format() per i numeri. Vediamo come... (read more...)

        

Checkbox e gestione opzione seleziona tutti

Anche se non molto usati, i checkbox sono a volte necessari e la loro gestione non e' delle piu' semplici. In questo post mi soffermo ad analizzare come poter inserire l'opzione tutti nella lista dei checkbox disponibili (read more...)

        

Ajax - Invio E-Mail

In questo articolo vi illustro come inviare una mail con Ajax e mostrare una immagine di attesa.

L'esempio e' semplice ma rende l'idea di come strutturare un codice utilizzando Ajax (read more...)

        

php e pdf

Essendo oramai la libreria fpdf diffusissima, mi limito a indicarvi un tutorial.

Scaricatelo e...buon divertimento (read more...)

        

Controlli di validazione in una form con Ajax

L'idea e' quella di controllare i dati inseriti dall'utente in una form, prima che questi "arrivino" alla base dati. Ogni errore riscontrato produrra' un messaggio nella form stessa, accanto all'input errato, senza necessita' di popup e con un effetto gradevole. (read more...)

        

La qualita' del software - il codice

Nella codifica di qualsiasi linguaggio di programmazione e' sempre necessario l'uso di uno standard para la definizione delle variabili, funzioni e oggetti che si usano, per una comprensione piu' semplice al momento di rivisitare il codice stesso (read more...)

        

Ajax - Un esempio base

Inizio la spiegazione di Ajax, ritornato in uso sia per XXXXXXXXXX, con questo primo esempio, molto semplice, ma che spero possa aiutarvi a comprenderlo meglio.

Di manuali on-line ne trovate in quantità industriale, mentre questo è solo un piccolo contributo.

Buon divertimento... (read more...)

        

Php - introduzione agli array

Spesso mi sono trovato a combattere con gli array ed in generale con quelli del php. Questo che segue e' uno schema, elementare, sui 3 tipi di array che si possono definire per questo linguaggio, ovvero l'array numerico, associativo e multidimensionale

Partendo da questa base, si possono sviluppare poi le varie implementazioni. (read more...)

        

Struttura di una procedura Pl/sql

In questo post di introduzione al linguaggio Pl/Sql di Oracle, vi illustro la struttura di una procedura, dalla quale prendere spunto per sviluppare i vostri applicativi.

E' di esempio e quindi potrebbero mancare o essere superflui alcuni passaggi. (read more...)

        

Creare una relazione tra tabelle

Spesso e' necessario creare relazioni tra insiemi tra loro differenti e questo si traduce tecnicamente in creare delle FOREIGN KEY tra due o piu' tabelle.

Tralascio la spiegazione di una relazione semplice, come ad esempio quella tra una tabella di anagrafica e la sua tipologia, illustrando invece il caso in cui e' necessario inserire una terza tabella per mettere in relazione due entita'/anagrafiche. (read more...)

        

La qualità del software - database

Apro questo blog, con un argomento che mi sta particolarmente a cuore...la qualità del software.

Questa prima puntata è dedicata alla nomenclatura di una base dati, ovvero su quelle piccole regole che permettono di non impazzire (letteralmente) quando ci si trova di fronte a una mare sconfinato di tabelle. Le norme Iso9001/Vision 2000, ci lasciano margini di libertà per poter decidere che regole seguire, sempre che, una volta definite le proprie linee guida, queste diventino le...nostre regole, per sempre!

Qualsiasi entità della nostra base dati (una tabella, una chiave primaria, un indice, etc...) presenta un nome che la identifica. Per rendere tale nome più leggibile, possiamo suddividerlo in gruppi di 4 caratteri, ognuno dei quali identifica la funzione di tale entità.

Queste le regole che seguo... (read more...)

        

MySQL Ricerca full-text

Cos'e' e perche' si usa la ricerca Full-Text. Vi illustro nei dettagli i vantaggi e come si usa. (read more...)