Archivo de la categoría: Programación

Conexion a MySQL con Python 101

English: Python logo Deutsch: Python LogoMySQL

Dejo aquí lo que seria los parámetros básicos para conectarnos a una base de datos MySQL con Python y que nos devuelva los resultados de una consulta

import MySQLdb as dbapi
bbdd = dbapi.Connect(host='localhost',user='myuser',passwd='mypass',db='mydb')
cursor = bbdd.cursor()
sql = "SELECT * FROM table WHERE field like %s"
params = 'myparam'
cursor.execute(sql, params)
for datos in cursor.fetchall():
    print datos

Por defecto el paramstyle en la conexión con MySQL es «format»
en el cual los especificadores se poner de la misma manera que lo haríamos con el printf en C

Si quisieramos establecer otro tipo de especificador lo hariamos de la siguiente manera

bbdd.paramstyle = "qmark" # los especificadores con ? "select * from table where valor=?"
bbdd.paramstyle = "numeric" # numero indicando la posicion "select * from table where :1"
bbdd.paramstyle = "named" #el nombre del valor :nombre "select * from table where :nombre"

Clase para la conexión a Base de Datos con PDO basada en Singleton Pattern – PHP Tips

Esta es una clase la cual la uso muchísimas veces para establecer la conexión a una base de datos con PHP. Se establece la conexión via PDO y esta basada en el patrón Singleton.  Una de las ventajas que tiene esta clase es que solo establece la conexión una vez, y por muchas veces que sea instanciada no duplica la conexión.

final class DBConnection {
	
    private static $_handle = null;
    private static $_dsn = "mysql:dbname=mydb;host=my.host.com;port=3306";
    private static $_user = "myUserName";
    private static $_password = "myPassword";
    private static $_options = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"); // SET UTF-8
    /**
     * Deny Construct
     */
    private function __construct()
    {
    }
    /**
     * Deny Clone
     */
    private function __clone()
    {
    }
    /**
     * Function to connect width database
     */
    function connect()
    {
        if ( is_null( self::$_handle ) ) {
            try {
                self::$_handle = new PDO( 
                    self::$_dsn, self::$_user, self::$_password, self::$_options 
                   );
            } catch ( PDOException $error ){
                die ( $error->getMessage() );
            }
        }
        return self::$_handle;
    }
}

La tengo disponible en http://gist.github.com/1771941 o para clonar con Git en git://gist.github.com/1771941.git

Estado y mantenimiento de la Query Cache de MySQL :: MySQL Tips

 

Estado

Para saber si tenemos activada la query cache en nuestro servidor, usaremos el siguiente comando:

mysql> SHOW VARIABLES LIKE 'have_query_cache';

Para visualizar que uso estamos realizando de la Query cache:

mysql> SHOW STATUS LIKE 'Qcache%';

Mantenimiento

Podemos desfragmentar la ‘query cache’ para un mejor uso:

mysql> FLUSH QUERY CACHE;

Con esta sentencia no borramos ninguna consulta de la cache

En cambio si usamos:

mysql> RESET QUERY CACHE;

Se borran todos los resultados almacenados en la query cache al igual que si usamos:

mysql> FLUSH TABLES;

Ambos comandos cierran todas las tablas abiertas, fuerza a todas las tablas en uso a ser cerradas y vacia la query cache.

MySQL :: MySQL 5.1 Reference Manual :: 7.6.3.4 Query Cache Status and Maintenance.

Autocarga de Clases Zend Framework – Zend Framework Tips

Esta es la manera de usar el autoloader de Zend Framework para cargar las clases de Zend Framework cuando las necesitemos.

require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();

Bugzilla Webservice client con Zend Framework

Este es un ejemplo de como conectarnos al servidor de bugzilla y enviar el Bug con la libreria Zend_XmlRpc

require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();
$server = 'http://bugzilla.mydomain.com/xmlrpc.cgi';
$client = new Zend_XmlRpc_Client( $server );
// Create the http client
$httpClient = new Zend_Http_Client();
$httpClient->setCookieJar();
$client->setHttpClient( $httpClient );
// Bugzilla Login
$params = new Zend_XmlRpc_Value_Struct( 
		array(
			'login' => 'bugzilla@mydomain.com', 
			'password' => 'mypassword', 
			'remember' => 1
			)
		);
$request = $client->call('User.login', $params );
// Create the Bug
$bugParams = new Zend_XmlRpc_Value_Struct(
		array( 'product' => 'MyApp',
				'component' => 'Main',
				'summary' => 'Bug Sumary',
				'version' => '1.0',
				'description' => 'This is the description' 
			  )
		);
$result = $client->call( 'Bug.create', $bugParams );
// Logout
$result = $client->call( 'User.logout' );

+Info XmlRpcClient Zend Framework
Bugzilla Webservice API

Ejemplos del API de Google Maps – API de Google Maps – Google Code

Ejemplos del API de Google Maps - API de Google Maps - Google Code

Pagina donde se pueden ver los ejemplos mas comunes para la integración de Google Maps en nuestra web

Ejemplos del API de Google Maps – API de Google Maps – Google Code.

Comandos Zend Framework Command Line Console Tool

Dejo aquí los comandos de la zf tool en la versión de Zend Framework 1.11.11

Zend Framework Command Line Console Tool v1.11.11
Usage:
    zf [--global-opts] action-name [--action-opts] provider-name [--provider-opts] [provider parameters ...]
    Note: You may use "?" in any place of the above usage string to ask for more specific help information.
    Example: "zf ? version" will list all available actions for the version provider.

Providers and their actions:
  Version
    zf show version mode[=mini] name-included[=1]
    Note: There are specialties, use zf show version.? to get specific help on them.

  Config
    zf create config
    zf show config
    zf enable config
    Note: There are specialties, use zf enable config.? to get specific help on them.
    zf disable config
    Note: There are specialties, use zf disable config.? to get specific help on them.

  Phpinfo
    zf show phpinfo

  Manifest
    zf show manifest

  Profile
    zf show profile

  Project
    zf create project path name-of-profile file-of-profile
    zf show project
    Note: There are specialties, use zf show project.? to get specific help on them.

  Application
    zf change application.class-name-prefix class-name-prefix

  Model
    zf create model name module

  View
    zf create view controller-name action-name-or-simple-name module

  Controller
    zf create controller name index-action-included[=1] module

  Action
    zf create action name controller-name[=Index] view-included[=1] module

  Module
    zf create module name

  Form
    zf enable form module
    zf create form name module

  Layout
    zf enable layout
    zf disable layout

  DbAdapter
    zf configure db-adapter dsn section-name[=production]

  DbTable
    zf create db-table name actual-table-name module force-overwrite
    Note: There are specialties, use zf create db-table.? to get specific help on them.

  ProjectProvider
    zf create project-provider name actions

Clase para la devolución de la entrada por teclado con JAVA

Duke, the Java Mascot, in the waving pose. Duk...
Image via Wikipedia

Hay trozos de código que nos cansamos de escribirlos constantemente, y en la mayoría de los casos acabamos copiandola y pegándola de una aplicación a otra. Uno de estos trozos podria ser el recoger datos de teclado en una clase JAVA y devolverlos por pantalla.

package entrada;
import java.io.*;
/**
 * @author Ruben Lacasa
 *
 */
public class Entrada {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String param = getEntrada("Introduzca un texto: ");
		System.out.println("Has introducido " + param);
	}
	/**
	 * Recoge lo que hemos escrito y lo devuelve
	 * 
	 * @param peticion
	 * @return
	 */
	public static String getEntrada(String peticion) {
		BufferedReader stdin = new BufferedReader(
				new InputStreamReader(System.in));
		System.out.print(peticion);
		System.out.flush();
		try {
			return stdin.readLine();
		} catch (Exception e) {
			return "Error: " + e.getMessage();
		}
	}
}

Esta funcion tambien esta disponible como Gist en Github aqui

Hello World!!!

An example Hello world program, written in Per...
Image via Wikipedia

Hello World!!!

Con esta famosa frase nos iniciamos todos en cualquier lenguaje de programación, cualquier manual o cualquier curso en sus primeras lecciones la primera demostración que nos hacen es sacar por pantalla esta frase.

Por eso he pensado en hacer un pequeño recopilatorio de como mostrar esta frase en distintos lenguajes de programación.

JAVASCRIPT

<script language='text/javascript'>
    document.write("Hello World!!!");
</script>

JAVA

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello World!!!");
    }
}

PHP

<?php
echo "Hello World!!!";
?>

RUBY

puts "Hello World!!!"

PYTHON

print ("Hello World!!!")

PERL

print "Hello World!!!";

Objetive-C

#import <Foundation/Foundation.h>;
int main (int argc, const char * argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    NSLog(@"Hello, World!!!");
    [pool drain];
    return 0;
}

Crontab – Quick Reference

Buena referencia rápida sobre el manejo, estructura del crontab.

Crontab – Quick Reference.