Comentarios Recientes

jsHACK: Framework Javascript desarrollado en Rep. Dominicana

| Categorías internet, Linux, Microsoft, mysql, Personal, Programacion, Tecnologia, telecomunicaciones | | Comentario 2

Number of View: 3277

jsHACK

jsHACK es un framework para Javascript, que está siendo desarrollado actualmente por Dominicanos, a la cabeza su creador, mi amigo Carlos López.   Este framework nació por la necesidad de Carlos de utilizar un Framework ligero y sumamente eficiente.  Este es el resultado de varios años de duro trabajo en el área de desarrollo de Aplicaciones Web eficientes y mucha dedicación al estudio de Javascript a fondo.

Hoy me siento orgulloso de tener en mi país esta clase de proyectos y esa clase de programadores.  Espero que todos le den una oportunidad, así como yo lo estoy haciendo.

Insertando data con For loop en un DB MySQL, desde bash

| Categorías Linux, mysql, Programacion, Sistemas Operativos, Software Libre | | Comentario 0

Number of View: 2329

En esta semana tuve la necesidad de hacer un Script en bash para manejar cierta información.  Me puse algo inquieto y bueno, aquí les tengo como insertar una lista de palabras desde un archivo a una base de datos MySQL.  Algo realmente sencillo, pero uno nunca sabe cuando podria utilizarlo:

1
2
3
4
5
6
7
8
9
10
11
12
#sort -u ordena la lista y saca las lineas unicas
for i in `cat lista | sort -u`;
 do
        len = ${#i}
#simple condicional para saber si la palabra tiene al menos 10 caracteres
        if ["$len" -lt 10];
        then
                continue;
        else
                 mysql -umi_usuario -pmi_passwd db_name -e "insert into palabras (palabra,status) values('$i',1)" ;
        fi
 done;

No puedo evitar decir que me encanta usar Linux :)

Construyendo un “Where” luego de un “POST” o “GET” en PHP

| Categorías General, PHP, Programacion | | Comentario 1

Number of View: 2024

Muchas veces hacemos formularios bastante grandes y un poco complicados de manejar.  Generalmente, un formulario está diseñado para insertar los datos en alguna base de datos, muchas veces en una misma tabla.  También se puede dar el caso de que se quiera hacer alguna busqueda.  Aquí les traigo una manera bastante simple de manejar ciertos “POST” o “GET”.  En este caso lo haré sólo con POST.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
< ?php
if(isset($_POST['insertar'])){
      unset($_POST['insertar']); // eliminamos la posibilidad de incluir este valor
      $variables = array();
      foreach($_POST as $key=>$value){
            //Aqui pueden hacer cualquier tipo de filtrado,
            //pudiendo utilizar, por ejemplo, las sentencias switch...case.
            $variables[] = "$key = '$value'";
      }
 
      $where = ' WHERE '. implode(' AND ', $variables);
 
      $query = "SELECT * FROM my_table " . $where;
      mysql_query(....);
      .
      .
      .
      .
}
 
?>
1
2
3
4
5
<form method="post" action="">
      Usuario: <input type="text" name="username" value=""/><br />
      Contrase&ntilde;a: <input type="password" name="password" value=""/>
      <input type="submit" name="insertar" value="Enviar Formulario"/>
</form>

Como se puede observar, aqui estamos haciendo algún tipo de busqueda.  Si desean utilizar esta técnica para hacer un UPDATE, por ejemplo, solo tendrían que cambiar “AND” por “,” en << implode(‘ AND ‘,$variables) >>.   Asi como este, hay muchos otros casos donde podría resultar muy muy útil este trozo de código.  Espero que le puedan sacar provecho.

PHP: Type Hinting

| Categorías Personal, PHP, Programacion, Tutoriales | | Comentario 0

Number of View: 1562

Aquí les traigo un trozo de código bastante interesante sobre Type Hinting.  Esto se refiere al tipo de parámetros que recibe un determinado método.  Personalmente me parece bastante útil,  ya que obtendremos un Fatal Error si el tipo de dato es incorrecto, esto nos ayuda a trabajar de manera más cuidadosa y prevenir futuros posibles errores, sólo por decir una de las utilidades.

1
2
3
4
5
6
7
8
9
10
11
12
< ?php
/**
 * @author Williams Mendez
 */
class MyClass {
    private $Database;
 
    public function __Construct(MyDB $Database = null) {
        $this->Database = $Database;
    }
   public function Insert(array $Data){ ..... }
}

Se pueden apreciar dos métodos, en el primer caso, se tiene la opción de no pasarle parámetro, pero si es invocado ese método, debe recibir un objeto del tipo MyDB. En el segundo caso, el método sólo debe recibir un parámetro del tipo “array”.

Otra buena aplicación de estas técnicas se puede apreciar en la creación de Interfaces y Clases Abstractas.

Suerte con el código :) .

Internet Explorer sigue cayendo

| Categorías internet | | Comentario 1

Number of View: 1645

Aquí les traigo una imagen de Net Market Share, donde muestran la enorme caída de MS Internet Explorer en menos de un año.  En total, IE ha perdido aproximadamente 8% de la cuota del mercado.  Esto es decenas de millones de usuarios.

internet explorer cae en cuota de mercado

Cómo nació PHP?

| Categorías internet, PHP, Programacion, Software Libre | | Comentario 2

Number of View: 3998

Esta es la historia como la cuentan en PHP.net:

PHP proviene de un programa anterior, llamado PHP/FI. PHP/FI fue creado por Rasmus Lerdorf en 1995, inicialmente como un simple conjunto de scripts de Perl para controlar quién accedia a su curriculum online. Llamó a ese conjunto de scripts ‘Personal Home Page Tools’. Según se requería, Rasmus fue añadiendo más funcionalidad escrita en C que era capaz de comunicarse con bases de datos y permitía a los usuarios desarrollar sencillas aplicaciones Web dinámicas. Rasmus decidió » liberar el código fuente de PHP/FI para que cualquiera pudiese utilizarlo, así como arreglar errores y mejorar el código.

PHP/FI, que se mantuvo para páginas personales y como intérprete de formularios, incluidas algunas de las funciones básicas de PHP tal y como lo conocemos hoy. Tenía variables como las de Perl, interpretación automática de variables de formulario y sintaxis incrustada HTML. La sintaxis por sí misma era similar a la de Perl, aunque mucho más limitada, simple y algo inconsistente.

En 1997, PHP/FI 2.0, la segunda vez que se escribió la implentación en C, tuvo un seguimiento estimado de varios miles de usuarios en todo el mundo, aproximadamente 50.000 dominios tenían PHP/FI instalado, sumando alrededor del 1% de los dominios de Internet. Mientras había mucha gente contribuyendo con líneas de código a este proyecto, en su mayor parte era todavía el proyecto de una sola persona.

PHP/FI 2.0 no se liberó oficialmente hasta Noviembre de 1997, después de estar la mayoría del tiempo en versión beta. Después de poco tiempo de liberarse aparecieron las primeras versiones alpha de PHP 3.0.

Para leer toda la historia, visite PHP.net

Forzar descarga de un archivo en PHP

| Categorías PHP, Programacion, Tutoriales | | Comentario 2

Number of View: 1739

Este ejemplo es muy bueno para aquellas ocaciones en las que quisieramos forzar a descargar un archivo, aun sea una imagen, ya que generalmente se abren dentro del mismo navegador.

Tambien es posible aprovechar este pequeño script para esconder nombres de archivos, de manera que se puede pedir un ID de un archivo y no su nombre, mucho menos su ruta.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
< ?php
// downloading a file
$filename = $_GET['path'];
 
// fix for IE catching or PHP bug issue
header("Pragma: public");
header("Expires: 0"); // set expiration time
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
// browser must download file from server instead of cache
 
// force download dialog
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
 
// use the Content-Disposition header to supply a recommended filename and
// force the browser to display the save dialog.
header("Content-Disposition: attachment; filename=".basename($filename).";");
 
/*
The Content-transfer-encoding header should be binary, since the file will be read
directly from the disk and the raw bytes passed to the downloading computer.
The Content-length header is useful to set for downloads. The browser will be able to
show a progress meter as a file downloads. The content-lenght can be determines by
filesize function returns the size of a file.
*/
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
 
@readfile($filename);
exit(0);
?>

Cómo iniciarse en Twitter, segun mi criterio.

| Categorías facebook, Redes Sociales, twitter | | Comentario 0

Number of View: 2406

Twitter ha sido para mí una herramienta increíblemente poderosa y de mucha ayuda.  Me ha servido para informarme, para conocer gente con mis propios gustos, para darme a conocer en el medio en el que me desenvuelvo, en fin, un montón de buenas cosas.

El propósito de este POST es para que aquellos que se inicien en twitter encuentren el camino al verdadero arte de twittear de manera “efectiva”.

El proceso de adaptarse a twitter sigue una trayectoria de este tipo:

  • Creas tu cuenta porque un amigo te dice que es lo máximo, pero no te interesa en lo más mínimo
  • Tu primer tweet dice algo así: “Hola twitter”
  • Estas entre emocionado y disgustado porque es algo nuevo pero es tan simple que es muy complicado…o abstracto…
  • Vas con tu segundo intento, twitteas nuevamente y nadie te hace caso
  • Dejas de usar twitter por meses(realmente nunca lo usaste)
  • Decides retomar twitter porque todos hablan de el o porque ves que tu lista de followers ha crecido o simplemente por curiosidad
  • Crees que empiezas a entender y empiezas a twittear cosas como: “estoy en la cocina” o “Estoy en el baño”
  • Ganas algunos seguidores
  • Sigues twitteando estupideces sin mucho sentido, solo porque ahora eres mas popular
  • Te das cuenta que muchos dejan de seguirte porque hablas demasiado
  • Empiezas a aprender…empiezas a aportar, empiezas a conocer
  • Ultimo paso: Aprendes a twittear

Este proceso puede reducirse en unos cuantos pasos, al menos eso pienso yo, tomando en consideración estos puntos:

  • Twitter es libre, dices lo que quieras y cuando quieras, no tiene limites, solo hazlo, pero recuerda que hay cosas de las que alguna vez te puedes arrepentir, ya todo esta almacenado en algún sitio…
  • Sigue a las personas que traten temas de tu interes o que sean personas interesantes para ti
  • No sigas a alguien porque ese alguien te sigue a ti, siguelo por lo que te pueda aportar
  • Usa twitter como tu medio de darte a conocer, pero no intentes centrar toda la atencion en ti, te daran un unfollow
  • Aporta algo, aparte de que ganaras seguidores, la gente tendre un concepto de quien eres
  • Twitter no es un chat, puedes responder o preguntar, pero no caigas en el vicio
  • No solo uses twitter, cada herramienta social tiene su objetivo
  • Haz RT(retweet)

Tutoriales de GIMP

| Categorías Linux, Software Libre, Tutoriales | | Comentario 0

Number of View: 1846

Una de las principales objeciones que hacen los usuarios al intentar migrar a un entorno GNU/Linux es el uso de las herramientas artísticas, como lo es GIMP.  Aquí les dejo un link de un blog de una joven venezolana experta en GIMP, quién se ha dedicado a crear tutoriales muy interesantes sobre GIMP.

WWW.TATICA.ORG

@tatadbb

Streams en PHP: Haciendo un “POST” con Sockets

| Categorías internet, PHP, Programacion | | Comentario 0

Number of View: 5801

Este es un ejemplo tomado directamente desde PHP.net, que  como siempre digo, es el site con la mejor y oficial documentación de PHP y que muchos no recurren a ella.  En el ejemplo se muestra como con Sockets se puede hacer una petición “POST” y capturar la respuesta en una variable:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
< ?php
/* Send POST request to https://secure.example.com/form_action.php
* Include form elements named "foo" and "bar" with dummy values
*/
 
$sock = fsockopen("ssl://secure.example.com", 443, $errno, $errstr, 30);
if (!$sock) die("$errstr ($errno)\n");
 
$data = "foo=" . urlencode("Value for Foo") . "&bar=" . urlencode("Value for Bar");
 
fwrite($sock, "POST /form_action.php HTTP/1.0\r\n");
fwrite($sock, "Host: secure.example.com\r\n");
fwrite($sock, "Content-type: application/x-www-form-urlencoded\r\n");
fwrite($sock, "Content-length: " . strlen($data) . "\r\n");
fwrite($sock, "Accept: */*\r\n");
fwrite($sock, "\r\n");
fwrite($sock, "$data\r\n");
fwrite($sock, "\r\n");
 
$headers = "";
while ($str = trim(fgets($sock, 4096)))
$headers .= "$str\n";
 
echo "\n";
 
$body = "";
while (!feof($sock))
$body .= fgets($sock, 4096);
 
fclose($sock);
?>

Interesante video: ¿Qué pasa dentro de un BlackBerry?

| Categorías facebook, google, internet, Redes Sociales, Tecnologia, telecomunicaciones | | Comentario 0

Number of View: 1704

Aquí les dejo un video que me parece que describe de una manera muy buena y diferente las cosas que pasan dentro de nuestras redes…Y esto que se ve en la realidad pasa en tan poco tiempo!!! Disfruten la tecnología:

OpenCV en PHP: Detectando caras en imagenes

| Categorías internet, PHP, Programacion, Redes Sociales, Software Libre | | Comentario 0

Number of View: 3343

Hace unas semanas mi amigo David Tavarez publicó en su Blog un artículo sobre OpenCV, que no es mas que unas librerías bastante interesantes, que permiten identificar un rostro en una imagen.  Estas librerías no solo existen para PHP, sino que también la podemos encontrar en C++, Python, otros.

Les dejo una cita del post:

OpenCV wrapper to detect faces with PHP. The extension offers the two new functions: face_count() and face_detect(). In princible, they differ only by their return value. The first returns only the number of faces found on the given image and the other an associative array of their coordinates. face_count() serves only to save the loops for counting. Examples:
OpenCV in PHP example 1
OpenCV in PHP example 2

Face detection in pure PHP (without OpenCV). This is a PHP Class to face recognition without OpenCV, it use an data file, but not external libraries. We can use it with few code:

 
$detector = new Face_Detector('detection.dat');
$detector->face_detect('maurice_svay_150.jpg');
$detector->toJpeg();

Example:
Example FaceDetection

Comandos interesantes: Manual wget

| Categorías internet, Linux, Sistemas Operativos, Software Libre, Tutoriales | | Comentario 0

Number of View: 11742

Wget es un comando en Linux muy interesante y poderoso.  Su función más simple es descargar archivos desde la web, soportando transferencias sobre protocolos como FTP, HTTP y HTTPS.

Pues como se pueden descargar archivos, cuando intentamos descargar una página, simplemente WGET nos trae el contenido HTML de esta página.  Ahí es que viene lo de interesante, pues este comando tiene unas opciones sumamente poderosas, las cuales podemos utilizar para crear arañas, por ejemplo, como es la opción “-r”, que se refiere a recursivo.

(more…)

Mi reflexión sobre Mozilla y el problema de H.264

| Categorías Apple, google, internet, Software Libre, Tecnologia | | Comentario 0

Number of View: 1461

Hace varios días estamos escucFirefox HTML5hando las noticias de que Youtube y Vimeo presentan sus videos utilizando HTML5 en vez de utilizar Adobe Flash, y es algo realmente interesante.  Resulta que tanto Vimeo como Youtube han optado por utilizar H.264 para la compresión de video, un formato privativo el cual debe ser pagada una licencia para poder incluirlo en los navegadores web.

Firefox ya incluye HTML5 en sus versiones más recientes, pero sólo soporta el formato Ogg Theora, el cual es un formato libre, al igual que lo es Firefox. Por tanto, sólo Chrome y Safari son capaces de reproducir los videos, lo que podría significar un golpe bastante duro a Firefox.  Entonces aquí viene la discusión: Incluir soporte a un formato Privativo para usar Youtube, o utilizar un plugin como Flash, que también es privativo???

De repente no se que pensar, pero bueno, ninguna de las opciones pretende fomentar el uso de Software Libre, entonces, cuál es la discusión? Personalmente creo que Mozilla tiene mucho que pensar…Qué opinan ustedes??

Libro GNU/Facil de Antonio Perpiñan y la FCLD

| Categorías internet, Linux, Personal, Sistemas Operativos, Software Libre, Tecnologia | | Comentario 0

Number of View: 2042

Antonio Perpiñan es el presidente de la Fundación Código Libre Dominicano, una institución dedicada a la enseñanza y capacitación en Software Libre, en todas las áreas del Software.  Antonio Perpiñan ha escrito varios libros sobre GNU/Linux, desde los niveles más básicos hasta los más avanzados.

Ésta semana, la Fundación Código Libre Dominicano(FCLD) presenta la 4ta edición de GNU/Fácil, un libro orientado al aprendizaje de sistemas GNU/Linux para principiantes, basado en la super popular Distro Ubuntu Linux.  Hace ya unos años yo me apoyé en este libro y realmente lo recomiendo.

Además de este libro, podrán encontrar otros más para niveles más avanzados y aplicaciones más específicas como Networking, por ejemplo.

Pueden descargar los libros desde Aquí.