Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - Physlet

Páginas: [1] 2
1
Si buscas programar orientado a objetos, les recomiendo que para empezar eviten usar clases donde todos sus atributos y métodos son estáticos.

2
Charlas / Offtopic / ¿Qué has aportado a tu país, a tu gente?
« en: 09 de Junio de 2012, 19:36:57 pm »
Escribo este post con el objetivo de hacerlos reflexionar un poco.
Muchas veces nos ponemos a estudiar cosas muy interesantes, nos vamos más allá y buscamos desarrollar proyectos. ¿Pero cuántos de estos proyectos has terminado y son accesibles públicamente? ¿Cuántos clientes satisfechos llevas? ¿Has pensado en hacer algo más que solo cosas para ganar dinero?

También pasa que a veces nos dedicamos a programar cosas que solo programadores o máquinas entienden. Pero, ¿y el resto de las personas?

No todo en la vida es lucrar. Hagan algo para la sociedad, para su país.

Los dejo con eso :P

3
Proyectos y búsqueda de equipos / Les vengo a hablar de GitHub
« en: 02 de Marzo de 2012, 03:03:05 am »
¡Hola a todos!

No me gusta crear temas lleno de copy&pastes ni nada por el estilo. En este momento les vengo a hablar de GitHub de la manera más natural posible.

GitHub es un hosting de proyectos desarrollado en Ruby on Rails. Es gratuito solo para proyectos públicos open source, que vienen siendo aquellos en los que tu código es libre para compartirlo y en el que cualquiera (esté registrado en GitHub o no) pueda ver tu código.

GitHub también es una comunidad donde puedes ver los proyectos de los demás, usarlos para empezar proyectos tuyos o aportar en ellos. Está basado en Git, un sistema de control de versiones, cuyo objetivo es mantener un control de los cambios en los archivos del proyecto. Algo así como: "Oye Juan, he modificado el archivo index.html y puse el texto del título en cursivas. Línea 49". Obviamente no tendrás que especificar todo el cambio que hiciste ni la línea, esto es algo que el sistema Git lo descubre solo y tu deber es únicamente dar un resumen de lo que hiciste, es decir que bastaría solo con: "Le puse negritas al título porque así mola más".

Ahora se preguntarán, ¿por qué Physlet nos viene a hablar de GitHub? Pues bueno, muchos de ustedes están empezando a desarrollar código por aprender y les gusta compartirlo con los demás. ¿Por qué no hacerlo en una comunidad abierta como lo es GitHub? A menos que sea un proyecto con el que quieras lucrar, en ese caso no sería tan buena idea ponerlo público, bueno, eso depende de tu estrategia de marketing.

El subir tu proyecto a GitHub te da ventajas, por ejemplo:
- Mantener un control de todos los cambios que se vayan haciendo en tu proyecto
- Muy buena opción para realizar proyectos en equipo
- Puedes recibir apoyo de otras personas que no estén directamente relacionadas con tu equipo de trabajo

Y la que más me gusta a mí...
- Para una entrevista de trabajo, este puede servirte como portafolio virtual

Recuerden que en las entrevistas no les interesa tanto lo que sabes o dices saber, sino también lo que has hecho. Demuestra lo que sabes, haz, publica y comparte. Date a conocer.

Yo anteriormente he trabajado con otro sistema de control de versiones llamado Subversion, pero era algo más privado. Estaba montado en un servidor mío y solo los que trabajaban conmigo tenían acceso a los proyectos, de acuerdo a los permisos que yo les daba. Pero me decidí por comenzar a exponer mis proyectos al público y aportar.

Si se deciden sumar, pueden entrar a http://github.com

Mi cuenta es: https://github.com/Initsogar y muy pronto estaré montando proyectos y trabajándolos desde allí. Mi primera meta es desarrollar la versión actual de mi "Habbo News" en la nueva tecnología Node.js utilizando las bibliotecas Jade, Stylus, Coffee Script y Express. Siempre es bueno experimentar con cosas nuevas y les prometo que si todo resulta como espero, empezarán a ver tutoriales sobre esta nueva tecnología por aquí.

Y tú, ¿qué opinas?

4
Sistemas Operativos / [Android] ChatOn: nuevo cliente de mensajería instantánea
« en: 17 de Octubre de 2011, 14:40:10 pm »
ChatON, el cliente de mensajería de Samsung, llega a Android


A finales de agosto Samsung presentó ChatON, un servicio gratuito de mensajería instantánea bajo red de datos, para competir con otros ya populares como los ofrecidos por BlackBerry, Apple, y los que han surgido con posterioridad: Whatsapp, Viber, Kik Messenger, etc.

Desde el principio, la compañía surcoreana tenía previsto que la aplicación fuera multiplataforma, con clientes para Bada, BlackBerry, iOS, Android y tal vez Windows Phone 7. También estaba en cartera una versión para tablets.

El proyecto, que contempla la implantación del servicio en 120 países y 62 idiomas, tendrá una versión Web, característica diferenciadora que puede ser la clave para el éxito de ChatON. Los planes de Samsung se van cumpliendo y la versión para Android ya está disponible.

Fuente | GenBeta

5
Charlas / Offtopic / Steve Jobs ha muerto
« en: 06 de Octubre de 2011, 01:45:13 am »
Pues sí, se ha ido un grande... Mi más sentido pésame a toda la gente muy allegada a él y también a nuestro compañero SoyJoaquin.

Citar
"De acuerdo a Associated Press y CBS, Apple ha enviado un comunicado con la noticia que Steve Jobs ha muerto. Estamos intentando ampliar la noticia. Emitiremos actualizaciones aquí mismo."
http://alt1040.com/2011/10/steve-jobs-ha-muerto

Citar
    We are deeply saddened to announce that Steve Jobs passed away today.

    Steve’s brilliance, passion and energy were the source of countless innovations that enrich and improve all of our lives. The world is immeasurably better because of Steve.

    His greatest love was for his wife, Laurene, and his family. Our hearts go out to them and to all who were touched by his extraordinary gifts.
http://mashable.com/2011/10/05/breaking-steve-jobs-has-died/

Y el anuncio oficial...

6
Charlas / Offtopic / Sobre marcadores de navegador (Bookmarks)
« en: 03 de Octubre de 2011, 01:07:32 am »
Hola a todos,

Soy un usuario que no se mantiene estático en un solo navegador web por razones de trabajo. Los dos que más uso son Firefox y Chrome.
Resulta que busco una manera cómoda y automática de sincronizar los marcadores de un navegador e independientemente del equipo o sistema operativo usado.
Es decir, si estoy en el trabajo con Windows 7 y Google Chrome, agrego un nuevo marcador y luego si voy a mi casa con Ubuntu y Firefox, pueda sincronizarlo rápidamente.

Estoy consciente de que Google Chrome tiene un sistema de portabilidad en los marcadores, ya que se alojan en tu cuenta de Google.... Pero curiosamente no me ha funcionado muy bien que digamos.

¿Alguno se le ocurre algo o existe ya alguna aplicación online que permita esto?

Saludos.

7
Charlas / Offtopic / La API de Google+ ya está aquí
« en: 15 de Septiembre de 2011, 21:32:20 pm »
Hola a todos,

Es para informarles que la API de Google+ para desarrollar aplicaciones que involucren esta nueva red social ya ha llegado aunque no esté del todo completa ya han anunciado que poco a poco irán agregando más información.

https://developers.google.com/+/

Saludos.

8
Charlas / Offtopic / ¡Feliz día del programador!
« en: 14 de Septiembre de 2011, 00:03:19 am »
¡Feliz día del programador!

Espero que no descuiden sus estudios profesionales o independientes. Todos somos jóvenes y estamos aprendiendo a caminar.
Recuerden que la práctica es buena, pero la teoría es ideal para comprender bien lo que se hace.

Todo es posible con esfuerzo, interés y dedicación.

Saludos!

9
C / C++ / Leer cadena cuya longitud desconozco
« en: 14 de Abril de 2011, 02:19:24 am »
Hola,

Resulta que un amigo me pidió que lo ayudara en una aplicación de consola en C++, pero he estado teniendo muchos problemas con la lectura de cadenas. ¿Cuál es la forma más correcta para hacerlo?

10
A continuación les muestro una clase en la que estoy trabajando, esta es sólo la parte más simple, ya que solo permite registrar nombre de usuario y contraseña, sin ningún dato adicional. Las columnas de la base de datos irán representadas por el atributo $cols que contiene "columna_1, columna_2", en este caso puse: "user, pass".

Register.php
Código: [Seleccionar]
<?php
/* Creamos las clases de las excepciones que se puedan producir en tiempo de ejecución */
//Indica que el usuario existe
class UserExistsException extends Exception{}
//Indica que las contraseñas no coinciden
class PassDontMatchException extends Exception{}

class 
Register{
private $username//String
private $password//String
private $sql//Object
private $table//String
private $cols//String

//Método constructor
public function __construct(){
$this->cols "user, pass";
}

//Asigna el objeto de la base de datos MySQLi y el nombre de la tabla a utilizar
public function setSQL($sqlObject$tableName){
$this->sql $sqlObject;
$this->table $tableName;
}

//Asigna los datos a almacenar en la tabla de usuarios
public function setData($user$pass){
$this->username htmlspecialchars($this->sql->real_escape_string($user));
$this->password md5($this->sql->real_escape_string($pass));
}

//Comprueba si el usuario existe en la base de datos, si existe arroja una excepción UserExistsException
public function checkUser(){
$query $this->sql->query("SELECT * FROM ".$this->table." WHERE user =&#39;".$this->username."&#39;;");
if($query->fetch_row())
throw new UserExistsException();
}

//Comprueba si las contraseñas coinciden, de lo contrario arroja una excepción del tipo PassDontMatchException
public function checkPass($pass2){
if($this->password != md5($pass2))
throw new PassDontMatchException();
}

//Método que se encarga de registrar al nuevo usuario en la base de datos
public function registerUser(){
$this->sql->query("INSERT INTO ".$this->table." (".$this->cols.") VALUES (&#39;".$this->username."&#39;, &#39;".$this->password."&#39;);");
}
}
?>

Y ahora veremos como utilizar esta sencilla clase.

registro.php
Código: [Seleccionar]
<form method="post">
Nombre: <input type="text" name="user" /><br />
Contraseña: <input type="password" name="pass" /><br />
Vuelve a escribir contraseña: <input type="password" name="pass2" /><br />
<input type="submit" name="submit" value="Registrar" />
</form>

<?php
require_once(&#39;Register.php&#39;);

//Iniciar el proceso sólo si ha sido presionado el botón de Registrar
if(isset($_POST[&#39;submit&#39;])){
//Instanciamos el objeto de la conexión a MySQLi
$sql = new mysqli(&#39;tu_host&#39;, &#39;tu_usuario&#39;, &#39;tu_contraseña&#39;, &#39;tu_base_de_datos&#39;);

//Instanciamos el objeto de la clase Register
$reg = new Register();

//Asignamos el objeto de MySQLi y nombre de la tabla
$reg->setSQL($sql, &#39;users&#39;);

if(!empty($_POST[&#39;user&#39;]))
if(!empty($_POST[&#39;pass&#39;]))
{ //Asignar el nombre de usuario y contraseña a procesar
$reg->setData($_POST[&#39;user&#39;], $_POST[&#39;pass&#39;]);

//Iniciar el bloque Try para el manejo de excepciones
try{
//Comprobar si el usuario existe
$reg->checkUser();
//Comprobar si ambas contraseñas coinciden
$reg->checkPass($_POST[&#39;pass2&#39;]);
//Registrar el nuevo usuario
$reg->registerUser();
//Manejar la excepción UserExistsException
} catch(UserExistsException $e){
//Aquí se coloca lo que se hace si el usuario existe
echo &#39;EL USUARIO YA EXISTE&#39;;
//Manejar la excepción PassDontMatchException
} catch(PassDontMatchException $e){
//Aquí se coloca lo que se hace si las contraseñas no coinciden
echo &#39;LAS CONTRASEÑAS NO COINCIDEN&#39;;
}
}
else
exit(&#39;Debe escribir una contraseña&#39;);
else
exit(&#39;Debe escribir un nombre de usuario&#39;);
?>



Cualquier cosa que no comprendan, pregunten. No explico mucho en este código porque me gustaría que ustedes mismos busquen decodificarlo y comprenderlo lo mejor posible porque sé que para muchos verán pequeñas cosas que jamás hayan experimentado. Y en sí el código es "simple", es decir que si lo sigues al pie de la letra entenderás al menos lo que hace.

Saludos!

11
PHP / ¿Base de datos normalizada?
« en: 14 de Enero de 2011, 19:46:39 pm »
Hola a todos,

Resulta que hoy tuve una entrevista de trabajo como programador web en mi universidad y me fue excelente. De todo el cuestionario que me hicieron sobre programación web, dudé en una sola pregunta: ¿Sabes qué es una base de datos normalizada?

He buscado pero no lo llego a comprender mucho, y me gustaría que algún usuario con previos conocimientos de este tema pueda aclarar mi duda, muchas gracias de antemano.

12
(POO) Programación Orientada a Objetos / Duda con MySQLi
« en: 11 de Enero de 2011, 02:38:25 am »
¡Hola a todos!

Resulta que estoy trabajando con MySQLi y estuve viendo el método fetch_all() y me pareció muy interesante pues te retorna todos los resultados de la consulta, sin tener que usar un ciclo o algo por el estilo. Todo esto lo probaba desde mi servidor local y ahora que quise probarlo en el servidor de un amigo, no me funciona dicho método.

¿Alguien me podría ayudar a dar con alguna alternativa a este método?
Lo necesito como si fuese el valor que retorna ese método, ya que luego lo codifico en JSON para leerlo con jQuery.

Gracias de antemano.

13
C / C++ / [Ayuda] Programar C/C++ en Ubuntu
« en: 24 de Octubre de 2010, 18:01:27 pm »
Hola chicos,

Me gustaría comenzar a desarrollar en estos lenguajes desde el Ubuntu, pero como no sé mucho de Linux, vengo a pedirles ayuda a ver qué necesito realmente aquí.

Yo me había bajado un editor de texto llamado SciTe que permite compilar en muchos lenguajes, aunque al intentar hacerlo con C no ocurre nada. ¿Alguien me recomienda IDE's para poder desarrollar en C/C++ sin tener que usar el terminal?

Muchas gracias de antemano.

14
PHP / 301 Moved Permanently
« en: 05 de Septiembre de 2010, 18:48:01 pm »
Hola chicos, resulta que estuve intentando extraer información de una web con el file_get_contents(), pero lo que me devuelve es este error... Conocerán alguna forma de solucionarlo sin tener que usar el cURL con FOLLOWLOCATION?

15
PHP / ¿Diferencia entre 'ASIGNACION' y 'ASIGNACION-EVALUACION'?
« en: 30 de Agosto de 2010, 15:50:48 pm »
Hola,

Antes que nada, este es un tema que se trata en cualquier lenguaje de programación, elegí este foro porque es el más activo.
Nuestra profesora de Desarrollo de Software II (Java) nos ha puesto una tarea de identificar qué tipo de expresiones son las presentadas y qué valor imprimen.
Los tipos de expresiones que ella colocó son: "ASIGNACIÓN", "ASIGNACIÓN-EVALUACIÓN" y "LÓGICA".
Para mí las expresiones lógicas son las que llevan AND (&&), OR (||), NOT(!) o que retornan un tipo booleano (TRUE, FALSE).
Pero, ¿cuáles creen que son las diferencias entre 'ASIGNACIÓN' y 'ASIGNACIÓN-EVALUACIÓN'?

Aquí coloco algunas de las expresiones que las profesora nos colocó:

1. $b = ($x = 5) == ($y = -5);
R: FALSE

2. $x = 0; $z = --$x;
R: -1

3. $x=10; $y=($x %= 3);
R: 1

Entonces, la 1. entiendo yo que es una expresión lógica, la 3. es un operador con asignación, ¿será esa la "asignación-evaluación"? ¿Qué opinan ustedes?

Muchas gracias de antemano,
Saludos.

Páginas: [1] 2