lunes, 31 de agosto de 2009

PHP function comprobarLong

<?php
function comprobarLong($text, $LONGMAXIMA)
{
    if(strlen($text) > $LONGMAXIMA)
    {
        $body = substr($text, 0, $LONGMAXIMA-2);
        $body .="..";
        return $body;
    }
    else
    {
        return $text;
    }
}
?>

PHP getExtension getArchivo getPath getFilesInFolder deleteFilesInFolder nextIdOnTable

<?php
function getExtension($nombre)
{
 $fileName = $nombre;
 $fileNameParts = explode( ".", $fileName );
 $fileExtension = end( $fileNameParts );
 $fileExtension = strtolower( $fileExtension );
 return $fileExtension;
}
?>

<?php
// http://server02/Sweet%20Victorian/Web%202009/web/media/images/1_1.jpg -> retorna: 1_1.jpg
function getArchivo($path)
{
    $fileName = $path;
    $fileNameParts = explode( "/", $fileName );
    $arch = end( $fileNameParts );
    return $arch;
}
?>

<?php
// http://server02/Sweet%20Victorian/media/images/1_1.jpg
// -> retorna: http://server02/Sweet%20Victorian/media/images/
function getPath($path)
{
    $fileName = $path;
    $fileNameParts = explode( "/", $fileName );
    $arch = end( $fileNameParts );
    
    $str = str_replace($arch, "", $path);
    
    return $str;
}
?>

<?php
function getFilesInFolder($path)
{
    $files = array();
    
    $dirHandle = opendir($path);
    while($file = readdir($dirHandle))
    {
        if($file != "." && $file != "..")
        {
            $files[] = $file;
        }
    }
    closedir($dirHandle);

    return $files;
}

$pathFuente = "../carpeta";

echo "<pre>";
print_r(getFilesInFolder($pathFuente));
echo "</pre>";
?>

<?php
//$archivos = getFilesInFolder($pathTMP, $formats="png,jpg,jpeg,gif,tif");
function getFilesInFolder($path, $formats = "")
{
    $filtrarPorExtension = ($formats > "")? true:false;
    $files = array();
    
    $dirHandle = opendir($path);
    while($file = readdir($dirHandle))
    {
        if($file != "." && $file != "..")
        {
            if ($filtrarPorExtension)
            {
                $ext = getExtension($file);
                if (stristr($formats, $ext))
                {
                    $files[] = $file;
                }
            }
            else
            {
                $files[] = $file;
            }
            
        }
    }
    closedir($dirHandle);

    return $files;
}
?>

<?php
function deleteFilesInFolder($path, $formats = "")
{
    $files = getFilesInFolder($path, $formats);
    
    $total = 0;
    foreach ($files as $archivo)
    {
        @unlink($path.$archivo);
        $total++;
    }

    return $total;
}
?>

<?php
function nextIdOnTable($tablename)
{
    $next_increment = -1;
    $qShowStatus = "SHOW TABLE STATUS LIKE '$tablename'";
    $qShowStatusResult = mysql_query($qShowStatus) or die ( "Query failed: " . mysql_error() . "<br/>" . $qShowStatus );
    
    $row = mysql_fetch_assoc($qShowStatusResult);
    $next_increment = $row['Auto_increment'];
    
    return $next_increment;
}
?>

lunes, 24 de agosto de 2009

Se me perdió el celular!! perdi todos mis contactos

Eso fue lo que me dijo un amigo, menos mal compartimos muchos amigos en comun y le dije que ingresara a:

http://agenda.hostearte.com
uss: utenianos
pass: xxx

Es una Agenda WEB en la cual cada uno puede actualizar su numero de celular y estar siempre en contacto con nuestros amigos!

PD: el pass no es 'xxx' soliciten un usuario y el admin se los enviara a su mail.

Enjoy!

sábado, 22 de agosto de 2009

lunes, 17 de agosto de 2009

cayo hotmail????

no puedo entrar!!!!!!!

sábado, 15 de agosto de 2009

MySQL: agregar usuario, configuracion

Agregar el puerto
panel de control->firewall de windows-> agregar puerto 3306

comprobar si escucha en 0.0.0.0:3306
netstat -na

sino habilitarlo tocando el my.ini del wamp

crear usuario con permisos para ingresar desde cualquier host (%)
wamp->phpmyAdmin

crear usuario:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root_password' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'root_password' WITH GRANT OPTION;

(se necesita ambas cuentas sino no se puede acceder mas aca)

borrar usuario:
delete from user where user='root2';flush privileges;

se puede comprobar con esta linea de comando en consola mysql.exe
SELECT User, Host, Password FROM mysql.user;

programa usado para facilitar pruebas sqlyog
http://sqlyog-community-edition.softonic.com/

WAMP: configuracion

La configuración por defecto de tanto mysql como apache "escuchan" en cualquier dirección ip disponible (esto es, si estas conectado a internet, un chango puede entrar a tu pagina web o intentar loguearse en mysql para jorderte un poco). Lo podes verificar ejecutando en la linea de comandos un "netstat -a -n -b"; esto te va a mostrar que el binario de mysql y de apache(httpd) estan LISTENING en la direccion 0.0.0.0:port; osea en todas las ips asociadas a tu maquina. Bueno, mientras estas corriendo wamp en tu pc lo mas recomendable es hacer que apache como mysql escuchen en localhost (o sea la ip 127.0.0.1) de esta manera nadie puede molestarte (toy seguro, si no tenes algun firewall dando vueltas, de que si en este momento se tu dirección de ip y pongo el en browser http:///phpmyadmin con suerte te puedo hacer algunas diabluras).
Bue para cambiar esto tenes que modifcar el httpd.conf cambiando "Listen 80" por "Listen 127.0.0.1:80" y para mysql agregar en el my.ini en la sección [wampmysqld] lo siguiente:bind-address=127.0.0.1
Reincia los servicios desde wamp y verifica con el netstat que ahora escuchan en 127.0.0.1 y listo.

Por último, si en algun momento querés que alguien entre a la página en tu pc, lo mas probable es que tengas que en el httpd.conf el listen a :, por ejemplo, si tu dir ip publica es 190.0.0.10 (con el comando ipconfig la ves) cambialo temporalmente a Listen 190.0.0.10:5050 y reinicias apache y listo. Las otras personas pueden acceder a tu pagina escribiendo en el browser "http://190.0.0.10:5050/tu-pagina" (pero ojo, tambien pueden acceder a phpmyadmin y cualquier cosa que tengas en el directorio www; antes deberías entrar a phpmyadmin y ponerle contraseña al usuario root (tambien modificar el archivo config.inc.php, lee la ayuda en phpmyadmin; aunque con el echo de mysql este ecuchando en localhost me parece que no es posible que puedan hacer algo, pero no se). La razón para poner un puerto alto es que la mayoria de los ISPs bloquean las conecciones entrantes al puerto de web (el 80) y por lo tanto nadie puede entrar a tu a apache (a mysql tal vez si, por que no creo que bloqueen el port 3306).

viernes, 14 de agosto de 2009

PHP 'php.ini' subir archivos pesados (e.g. videos)

max_execution_time 30
set_time_limit(0); //desde php


max_input_time 60
This sets the maximum time in seconds a script is allowed to parse input data, like POST, GET and file uploads.

upload_max_filesize 2M

podes subir videos: avi, wmv, mpeg, mpg, mov, y flv<br>
tamanio max: <?php echo ini_get('upload_max_filesize');?><br>
el nombre del video puede contener espacios<br>


si estamos sobre Linux podemos hacer un archivo .httaccess
<IfModule mod_php4.c>
php_value upload_max_filesize 100M
php_value max_execution_time 800
php_value post_max_size 100M
php_value max_input_time 100
php_value memory_limit 120M
</IfModule>

martes, 11 de agosto de 2009

PHP Debugging

<?php
echo $query;
print_r($row);
var_dump($affectedRows);
echo "<script> alert('db'); </script>";
?>

<?php
echo "<pre>";
print_r($structure);
echo "</pre>";
                
exit();
?>

<?
if (!file_exists($flvpath.$fileName.".flv"))
die("El comando: '{$query1}' No Pudo Generar el flv");
?>

Comment:
Existe una mejor manera??

lunes, 10 de agosto de 2009

PHP isWindows()

<?php
function isWindows()
{
   $sysOperative =(stristr(PHP_OS, 'WIN'))? true:false;
   return $sysOperative;
}
?>

domingo, 9 de agosto de 2009

Buenas Metodologias de Programación

Tablas db
=========

En minusculas y separar palabras con guiones bajos
id nombre fecha_insert ruta_completa

Clases
======

nombre de funciones (metodos): la 1º con minusculas y separar letras con el 1º en mayuscula onda vs
variables internas (atributos): empiezan con guion bajo

Class Persona
{
public string _nombre;
public int _edad;

/*metodos*/
public int getSumaEdades()
{
return 1;
}
}


Resumen
La idea es encontrar una buena metodologia a gusto de cada uno.
Identar bien, esto facilita la rápida comprensión del codigo tanto para uno mismo en un futuro como para otra persona que quisera usarlo.

PHP CLASS PERSONA Y PERSONAS

Clase Persona
<?php
class Persona
{
  public $_nombre="unNombre";
  public $_edad=0;
  
  /*Metodos*/
  //public function __construct($_nom, $_ed)
  function Persona($nom, $ed)
  {
    $this->_nombre= $nom;
    $this->_edad= $ed;
  }
  
  public function imprimir()
  {
    echo $this->_nombre;
  }
}
?>



clase Personas
<?php
class Personas
{
    public $_personas = array();
  
  /*Metodos*/
  function Personas(/*$_nom, $_ed*/)
  {
    //$this->$_personas = array();
    // $this->edad= $_ed;
  }
  public function Add($aPersona)
  {
        //array_push($this->_personas, $aPersona); //este tmb anda
        $this->_personas[] = $aPersona;
  }
  public function Count()
  {
        return count($this->_personas);
  }
  public function getSumaDeEdades()
  {
        $tot = 0;
        foreach ($this->_personas as $per)
        {
               $tot += $per->_edad;
        }
        return $tot;
  }
}
?>



Index
<?php 
include("clases/class_persona.php");
include("clases/class_personas.php");


echo 'holas <hr>';
 
$OBJ_per = new Persona('pepe',25);
//$OBJ_per ->inicializar('Ricardo', 22);

//$OBJ_per ->imprimir();

//$nom = $OBJ_per->nombre;
//$edad = $OBJ_per->edad;

$OBJ_per->_nombre = 'Rolito';

echo $OBJ_per->_nombre;
echo '<br>';
echo $OBJ_per->_edad;

//$num=8;
//echo $nom." ".$edad;

echo "<hr>";
echo "<hr>";

/* muchas personas*/
$personas = new Personas();
$personas->Add($OBJ_per);
$personas->Add(new Persona('aldo',24));
echo "Personas: "."<br>";
print_r($personas->_personas); //ojo!! no es $personas->$_personas

echo "<br>";
echo "Cantidad de Personas: ";
echo $personas->Count();

echo "<hr>";
echo "Obtener la suma de las edades de Todos: ";
echo $personas->getSumaDeEdades();
echo "<br>"." Itero con cada uno de ellos con foreach";
 
/**/
    
    
?>

martes, 4 de agosto de 2009

IO - SOLVER EN OFFICE 2007 - programacion lineal

Investigacion Operativa - IO
Problema 1 "pintureria Reddy Mikks"

Programacion lineal

https://www.youtube.com/watch?v=MK29boPJDcg

la empresa fabrica 2 tipos de pinturas
(para exteriores [PE] y para interiores [PI])
se desea obtener la mayor utilidad sabiendo que
PE se vende a $5.00 y PI a $4.00 (en miles)

Restricciones:
materias prima 1 - MP1:
solo se obtienen 24 toneladas diarias y PE usa 6 Tn y la PI usa 4 Tn
materias prima 2 - MP2:
solo se obtienen 6 toneladas diarias y PE usa 1 Tn y la PI usa 2 Tn

Modelo:
PE: Tn a fabricar de pintura para Exteriores
PI: Tn a fabricar de pintura para Interiores

Z = 5PE + 4PI
6PE + 4PI < 24 --> MP1
1PE + 2PI < 6 --> MP2

Solución:


Interpretación:
Al parecer nos conviene fabricar 3 toneladas de pintura Externa y
1.5 Tn de pintura Interna, para tener una ganancia de $ 21.000

mirame:
http://www.aulamatematica.com/BS2/06_PL/PL_c01.htm