Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Temas - :ohk<any>

#91
Bases de Datos / Iniciando en base de datos.
5 Noviembre 2009, 21:44 PM
CitarUna base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos.

Seguir leyendo...

Existen programas denominados Sistemas de Gestion de Base de Datos (SGBD) que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de estos SGBD, así como su utilización y administración, se estudian dentro del ámbito de la informática.

Entre los mas conocidos estan:

Mysql, Postgresql, Firebird, SQLite.
Oracle, Microsoft SQL Server, Open Access, # Advantage Database, dBase, FileMaker, Fox Pro, IBM DB2 Universal Database (DB2 UDB), IBM Informix, Interbase de CodeGear, filial de Borland, MAGIC, Paradox, PervasiveSQL, Progress (DBMS), Sybase ASE, Sybase ASA, Sybase IQ, WindowBase, IBM IMS Base de Datos Jerárquica, CA-IDMS, entre otros.

¿Por que utilizar una Base de Datos?


  • Es Compacto: No hacen falta archivos de papeles que pudieran ocupar mucho espacio.
  • Es Rápido: La máquina puede obtener y modificar datos con mucha mayor velocidad que un ser humano. Así es posible satisfacer con rapidez consultas de casos particulares, del momento, sin necesidad de búsquedas visuales o manuales que refieren mucho tiempo.
  • Es menos Laborioso: Se elimina gran parte del tedio de manera archivos a mano. Las tareas mecánicas siempre serán mejor realizadas por las maquinas.
  • Es Actual: Se dispone en cualquier momento de información precisa y al día.
  • Cómoda: Al tener la información en un mismo sitio, ahorraremos tiempo y trabajo.

Otras ventajas de las bases de datos


  • Disminuir la Redundancia
  • Compartición de Datos
  • Posibilidad de aplicar restricciones de seguridad
  • Posibilidad de mantener la integridad

Para conocer mas a fondo los mas utilizados, veremos los manuales.

Manual Mysql:

http://downloads.mysql.com/docs/refman-5.0-es.a4.pdf
PHP & MySQL Everyday Apps for Dummies
:http://www.4shared.com/file/73791776/6113812a/PHP__MySQL_Everyday_Apps_for_Dummies.html

Manual Postgresql:

http://palomo.usach.cl/Docs/postgres/Postgres-User.pdf

Manual de Oracle:

http://www.jorgesanchez.net/bd/oracleSQL.pdf
http://www.oracle.com/technology/tech/php/pdf/underground-php-oracle-manual.pdf

Manual de referencia SQL Server:

http://www.lsgames.com/tmp/Manual%20de%20Referencia%20-%20SQL%20Server.pdf
http://gamp.c.u-tokyo.ac.jp/~ueda/varilex/art/manual.pdf
Microsoft SQL Server 2005 for Dummies
:http://www.4shared.com/file/73770632/45c3304/Microsoft_SQL_Server_2005_Reporting_Services_for_Dummies.html

Manual Informix:

Ejercicios Access:

http://difusion.osi.iteso.mx/pdfs/Access_I.pdf
Access Forms & Reports for Dummies:
:http://www.4shared.com/file/73692405/6cf48445/Access_Forms__Reports_for_Dummies.html

Ejercicios Resueltos:

http://epcc.unex.es/modules.php?op=modload&name=Downloads&file=index&req=descargar&lid=3008
http://superalumnos.net/files/EjerciciosSQL.pdf




Mysql por Consola

Arranque como usuario:

Código (sql) [Seleccionar]
mysql –u usuario –p clave

En el caso  en el que el servidor no se encuentre en el ordenador que estamos trabajando el orden de uso será:

Código (sql) [Seleccionar]
mysql –h nombre_host –u usuario –p clave

Consultas generales sobre las bases de datos

Mostrar las bases de datos:

Código (sql) [Seleccionar]
show databases;

Mostrar las bases de datos seleccionadas:

Código (sql) [Seleccionar]
select databases();

Mostrar las tablas que contiene una base de datos:

Código (sql) [Seleccionar]
show tables;

Seleccionar una base de datos:

Código (sql) [Seleccionar]
use nombre_base;

Describir la estructura de campos de una tabla:

Código (sql) [Seleccionar]
describe nombre_tabla;

Creación de bases de datos, tablas y registros:

Crear una base de datos:

Código (sql) [Seleccionar]
create database nombre_base;

Creación de una tabla:

Código (sql) [Seleccionar]
create [temporary] table [if no exists] nombre_tabla (nombre_campo tipo[color=red](1)[/color] opciones[color=red](2)[/color] cláusulas[color=red](3)[/color], ..., [último campo]  );

[temporary] -->  la tabla existirá mientras exista la conexión con el cliente actual o hasta que se emita la instrucción drop table.

[if no exist] --> si existe la tabla no se crea una nueva.

(1)

Las posibles opciones de tipo de campo son:

tinyint --> 1 byte
smallint --> 2 byte
mediumint --> 3 byte
int --> 4 byte
bigint --> 8 byte
float --> 4 byte
double --> 8 byte
decimal --> variable
char(n) --> cadena de caracteres de longitud fija
varchar(n) --> cadena de caracteres de longitud variables
tinyblob --> objeto binario largo (muy pequeño)
blob --> objeto binario largo (pequeño)
mediumblob --> objeto binario largo (medio)
longblob --> objeto binario largo (grande)
tinytext --> cadena de texto muy pequeña
text --> cadena de texto pequeña
mediumtext --> cadena de texto media
longtext --> cadena de texto larga
enum --> una enumeración
set --> un conjunto
date --> valor fecha (aaaa-mm-dd)
time --> valor de hora (hh-mm-ss)
datetime --> valor de fecha y hora 
timestamp --> valor de lapso de tiempo (aaaammddhhmmss)
year --> valor de año

(2)

Las posibilidades del apartado opciones son:

Generales:
null --> admite valores nulos
no null --> rechaza dejar el campo en blanco
default --> permite establecer un valor por defecto

Columnas numéricas:
auto_increment --> para generar identificadores únicos o valores en serie.
unisgned --> rechazo de valores negativos

Cadena:
binary --> trata los valores como cadenas binarias (campos char y varchar)
       
(3)

Cláusulas:

primary key --> columna indexada para búsqueda rápida. Clave principal, solo puede haber una.
unique --> crea un índice con valores únicos
index, key --> son sinónimos y crean índices que pueden contener valores repetidos.

Inserción de registros en una base de datos:
 
Código (sql) [Seleccionar]
insert [low_priority | delayed][ignore][into] nombre_tabla forma_introducción(1)

I. LOW_PRIORYTY  |  DELAYED: la  primera de las opciones hace que la inserción sea
postergada hasta que ningún cliente utilice la tabla. La segunda genera una cola de
introducción de registros, que se añadirán a la tabla cuando esta quede libre de usuarios.

II. IGNORE: se desechan las filas que duplican valores para claves únicas.

III. INTO: se requiere en versiones 3.22.5.

(1)Las formas de introducción son:

(lista_columnas) VALUE (lista_valores_o_expresión)
(lista_columnas) SELECT (opción_de_recuperación)
SET (nombre_columna=expresion, ....)

Uso de una base de datos

Código (sql) [Seleccionar]
Use database;

Consulta de una base de datos:

La forma general del comando de consulta es:

Código (sql) [Seleccionar]
select  opciones (1)
lista (2)
cláusulas (3);


(1) Tipos de opciones permitidas:

all --> provoca el regreso de todas las filas
distinct, distinctrow --> especifican que las líneas duplicadas deben ser eliminadas
high_prioruty --> da mayor prioridad a la instrucción en el caso de espera.
sql_byg_result, sql_small_result --> especifican que el conjunto de resultados será mas largo o más corto
straignt_join --> fuerza a las tablas a unirse en el orden citado en la cláusula from

(2) Lista --> especifica las columnas que deben devolverse, el símbolo "*" especifica que deben extraerse todas las columnas. La separación entre los diferentes nombres de  columnas se hacen con el símbolo ",".

(3)Cláusulas (en caso de haber varias cláusulas deben seguir el orden expuesto en la lista):

Intro outfile 'nombre_fichero' opciones --> El resultado de la consulta es transferido a un fichero, paro lo cual debemos tener privilegio de crear el fichero y además este no debe existir. 

Las opciones de importanción son las siguientes:

Código (sql) [Seleccionar]
[fields [terminate by 'cadena']
(a)

Código (sql) [Seleccionar]
[opcionally] [enclosed by 'carácter']
(b)

Código (sql) [Seleccionar]
[escape by 'carácter']
(c)

Código (sql) [Seleccionar]
[lines terminated by 'carácter']
(d)

a)especifica el carácter o caracteres que delimitan valores dentro de la línea

b)especifica un carácter  entrecomillado que se  quita del final del campo de valores.

OPTIONALLY establece que los valores solamente se entrecomillan para las columnas char y varchar.

c)Se utiliza para especificar el carácter de escape especial

d)Especifica un carácter o caracteres que determinan el final de la línea.

Los caracteres especiales son los siguientes:

-\0  ascii 0
-\b retroceso
-\n línea nueva
-\r retorno de carro
-\s espacio
-\t tabulación
-\' comilla simple
-\" comilla doble
-\\ barra inversa

from  tabla-tablas  --> especifica una o varias tablas desde las que se obtendrán las filas.
Existen varias posibilidades de unión de tablas (mirar libro de mysql).

where expresión --> establece una expresión que se aplica a las filas seleccionadas

group by  lista_columnas -->  agrupa filas del conjunto de resultados de acuerdo con  las
columnas citadas.

having  expresión --> especifica una expresión secundaria para limitar filas después de
satisfechas las condiciones expuestas en la cláusula where.

order by entero_unsigne|nombrecoluma|fórmula --> indica como se va a clasificar el conjunto de resultados. Las posibilidades son:

asc – ascendente
desc – descendente
rand() – orden aleatorio

procedure  nombre_procedimiento -->  indica un nombre de procedimiento al que serán enviados los datos antes de su salida.




Practicas | Ejercicios de referencia:

Tabla de referencia:



* Obtener los apellidos de los empleados.

Código (sql) [Seleccionar]
SELECT Apellidos FROM EMPLEADOS

*Obtener los apellidos de los empleados sin repeticiones.

Código (sql) [Seleccionar]
SELECT DISTINCT Apellidos FROM EMPLEADOS

*Obtener todos los datos de los empleados que trabajan para el departamento 14

Código (sql) [Seleccionar]
SELECT * FROM EMPLEADOS WHERE Departamento = 14

*Obtener todos los datos de los empleados que trabajan para el departamento 37 y
para el departamento 77

Código (sql) [Seleccionar]
SELECT * FROM EMPLEADOS
WHERE Departamento = 37 OR Departamento = 77


Código (sql) [Seleccionar]
SELECT * FROM EMPLEADOS
WHERE Departamento IN (37,77)


*Obtener todos los datos de los empleados cuyo apellido comience por 'P'

Código (sql) [Seleccionar]
SELECT * FROM EMPLEADOS
WHERE Apellidos LIKE 'P%'


*Obtener el presupuesto total de todos los departamentos.

Código (sql) [Seleccionar]
SELECT SUM(Presupuesto) FROM DEPARTAMENTOS

*Obtener el numero de empleados en cada departamento.

Código (sql) [Seleccionar]
SELECT Departamento, COUNT(*)
FROM EMPLEADOS
GROUP BY Departamento


*Obtener un listado completo de empleados, incluyendo por cada empleado los datos
del empleado y de su departamento.

Código (sql) [Seleccionar]
SELECT *
FROM EMPLEADOS INNER JOIN DEPARTAMENTOS
ON EMPLEADOS.Departamento = DEPARTAMENTOS.Codigo


*Obtener un listado completo de empleados, incluyendo el nombre y apellidos del
empleado junto al nombre y presupuesto de su departamento.

Código (sql) [Seleccionar]
SELECT EMPLEADOS.Nombre, Apellidos, DEPARTAMENTOS.Nombre, Presupuesto
FROM EMPLEADOS INNER JOIN DEPARTAMENTOS
ON EMPLEADOS.Departamento = DEPARTAMENTOS.Codigo


Código (sql) [Seleccionar]
SELECT E.Nombre, Apellidos, D.Nombre, Presupuesto
FROM EMPLEADOS E INNER JOIN DEPARTAMENTOS D
ON E.Departamento = D.Codigo


*Obtener los nombres y apellidos de los empleados que trabajen en departamentos
cuyo presupuesto sea mayor de 60.000

Código (sql) [Seleccionar]
SELECT EMPLEADOS.Nombre, Apellidos
FROM EMPLEADOS INNER JOIN DEPARTAMENTOS
ON EMPLEADOS.Departamento = DEPARTAMENTOS.Codigo
AND DEPARTAMENTOS.Presupuesto > 60000


Código (sql) [Seleccionar]
SELECT Nombre, Apellidos FROM EMPLEADOS
WHERE Departamento IN
(SELECT Codigo FROM DEPARTAMENTOS WHERE Presupuesto > 60000)


*Obtener los datos de los departamentos cuyo presupuesto es superior al presupues-
to medio de todos los departamentos.

Código (sql) [Seleccionar]
SELECT *
FROM DEPARTAMENTOS
WHERE Presupuesto >
(
SELECT AVG(Presupuesto)
FROM DEPARTAMENTOS
)


*Obtener los nombres (unicamente los nombres) de los departamentos que tienen
mas de dos empleados.

Código (sql) [Seleccionar]
SELECT Nombre FROM DEPARTAMENTOS
WHERE Codigo IN
(
SELECT Departamento
FROM EMPLEADOS
GROUP BY Departamento
HAVING COUNT(*) > 2
)


Código (sql) [Seleccionar]
SELECT DEPARTAMENTOS.Nombre
FROM EMPLEADOS INNER JOIN DEPARTAMENTOS
ON Departamento = Codigo
GROUP BY DEPARTAMENTOS.Nombre
HAVING COUNT(*) > 2


*Aplicar un recorte presupuestario del 10 % a todos los departamentos.

Código (sql) [Seleccionar]
UPDATE DEPARTAMENTOS SET Presupuesto = Presupuesto * 0.9

*Reasignar a los empleados del departamento de investigacion (codigo 77) al depar-
tamento de informatica (codigo 14).

Código (sql) [Seleccionar]
UPDATE EMPLEADOS SET Departamento = 14 WHERE Departamento = 77

*Despedir a todos los empleados que trabajan para el departamento de informatica (codigo 14).

Código (sql) [Seleccionar]
DELETE FROM EMPLEADOS
WHERE Departamento = 14


*Despedir a todos los empleados que trabajen para departamentos cuyo presupuesto
sea superior a los 60.000

Código (sql) [Seleccionar]
DELETE FROM EMPLEADOS
WHERE Departamento IN
(
SELECT Codigo FROM DEPARTAMENTO
WHERE Presupuesto >= 60000 )


*Despedir a todos los empleados.

Código (sql) [Seleccionar]
DELETE FROM EMPLEADOS

Hago una pausa cuando tocamos la eliminación de registros, segun mi criterio, jamas debemos eliminar los registros, personas, productos, nada.

Para esto en nuestra tabla debemos incrementar un campo denominado "estado" que especifique 2 valores, 1 por activo otro por eliminado.

Y al momento de "eliminar un registro" debemos hacer simplemente un UPDATE cambiando el estado, y cuando se listen los productos o personas deberemos incrementar en la consulta AND estado = 'Activo'.

Esto para conservar todos los registros, muchas empresas lo hacen.

Sigue en construcción...
#92
Hola, sin desestimar a nuestro amigo Nakp, me atrevo a sugerir a ^TiFa^ como segundo moderador de dicho foro, ambos haran un gran trabajo, al menos ^TiFa^  :xD

Saludos
#93
CitarEl Global Positioning System (GPS) o Sistema de Posicionamiento Global (más conocido con las siglas GPS, aunque su nombre correcto es NAVSTAR-GPS[1] ) es un sistema global de navegación por satélite (GNSS) que permite determinar en todo el mundo la posición de un objeto, una persona, un vehículo o una nave, con una precisión hasta de centímetros, usando GPS diferencial, aunque lo habitual son unos pocos metros. Aunque su invención se atribuye a los gobiernos francés y belga, el sistema fue desarrollado e instalado, y actualmente es operado por el Departamento de Defensa de los Estados Unidos.

Leer mas...

PRINCIPIO DE FUNCIONAMIENTO DEL GPS

Los receptores GPS más sencillos están preparados para determinar con un margen mínimo de error la latitud, longitud y altura desde cualquier punto de la tierra donde nos encontremos situados. Otros más completos muestran también el punto donde hemos estado e incluso trazan de forma visual sobre un mapa la trayectoria seguida o la que vamos siguiendo en esos momentos. Esta es una capacidad que no poseían los dispositivos de posicionamiento anteriores a la existencia de los receptores GPS.

El funcionamiento del sistema GPS se basa también, al igual que los sistemas electrónicos antiguos de navegación, en el principio matemático de la triangulación. Por tanto, para calcular la posición de un punto será necesario que el receptor GPS determine con exactitud la distancia que lo separa de los satélites.

LATITUD Y LONGITUD

Para localizar un punto sobre la superficie de la Tierra y trasladarlo o plotearlo en un mapa o carta náutica, es necesario conocer primero las coordenadas donde se encuentra ubicado ese punto, es decir, la latitud y la longitud. Conocer el valor de las coordenadas es imprescindible para poder ubicar la posición de automóviles o coches, barcos, aviones, personas, carreteras, ciudades, puntos de interés, objetos, manchas de peces, fauna animal y hasta una piedra que se encuentre sobre la superficie de la Tierra.

Las líneas de latitud o paralelos están formadas por círculos de diferentes tamaños que parten de la línea del Ecuador y se expanden en dirección a los polos. La línea del Ecuador constituye el círculo de latitud de mayor diámetro de la Tierra y la divide en dos mitades: hemisferio Norte y hemisferio Sur. La línea del Ecuador se identifica en las cartas náuticas y los mapas como latitud "0" grado (0º) y el nombre lo recibe porque atraviesa la ciudad de Quito, capital de la República del Ecuador, situada en el continente sudamericano.



A partir del Ecuador se extienden, hacia el norte y el sur, las denominadas líneas de latitud. El diámetro de los círculos que forman esas líneas se van empequeñeciendo a medida que se acercan a los polos hasta llegar a convertirse solamente en un punto en ambos polos, donde adquiere un valor de 90 grados (90º). El Ecuador, como cualquier otro círculo, se puede dividir (y de hecho se divide) en 360 grados (360º), por lo cual pueden atravesarlo 360 líneas de longitud o meridianos.

Estos meridianos se extienden desde el polo norte hasta el polo sur de forma paralela al eje de rotación de la Tierra. Como longitud "0" grado (0º) se designó el meridiano que pasa por el Real Observatorio Astronómico de Greenwich, cerca de la ciudad de Londres, en Inglaterra. Esa línea de longitud se conoce también por el nombre de meridiano de Greenwich a partir del cual se rigen los husos horarios que determinan la hora en todos los puntos de la Tierra.

Hasta hace un tiempo atrás, en navegación siempre se tomaba como referencia para todas las operaciones la hora GMT (Greenwich Mean Time) u hora del meridiano de Greenwich. Este meridiano divide la Tierra en otras dos mitades a partir de los polos, tomando como referencia su eje de rotación: hemisferio occidental hacia el oeste y hemisferio oriental hacia el este. De hecho las longitudes se miden en las dos direcciones correspondientes a cada hemisferio partiendo del meridiano 0º de Greenwich. La hora GMT se define por la posición del Sol y las estrellas, pero con la aparición de los relojes atómicos, como los que emplean los satélites GPS, se ha establecido la hora UTC o Tiempo Universal Coordinado en sustitución de la hora GMT. Este cambio se debe a que la rotación de la Tierra sufre variaciones retrasándose la hora con respecto al tiempo atómico. En contraposición, la hora UTC es de una alta precisión, tal como la requieren los navegadores GPS para poder localizar con exactitud un punto cualquiera de la Tierra.

En dirección oeste partiendo de Greenwich, el hemisferio occidental comprende parte de Europa y de África, América y algunas islas hasta llegar a la línea de longitud o meridiano 180º situada en el Océano Pacífico. En sentido contrario, en dirección al este, el hemisferio oriental comprende la mayor parte de Europa y África, Asia, y la mayoría de las islas del Pacífico hasta llegar de nuevo a la misma línea de longitud o meridiano 180º. Si sumamos 180º hacia el oeste más 180º hacia el este obtendremos como resultado los 360º grados correspondientes a la circunferencia del Ecuador. El meridiano 180º se conoce también por el nombre de "línea internacional de cambio de la fecha", pues hacia el oeste corresponde a un nuevo día y hacia el este corresponde al día anterior.

Tanto las líneas longitud como las de latitud, además de dividirse en grados, se subdividen también en minutos y segundos. Por tanto podemos localizar un punto situado exactamente en las coordenadas 40º de latitud norte y 3º de longitud este y si nos desplazamos unos kilómetros, el punto de localización podría ser 38º 40´ 20´´ (38 grados, 40 minutos, 20 segundos) de latitud norte y 3º 30´ 59´´ (3 grados, 30 minutos, 59 segundos) de longitud este. Si la medida anterior se repitieran en el hemisferio opuesto, por ejemplo en los 40º de latitud sur y 3º de longitud oeste, ésta sería una ubicación completamente distinta y muy alejada de la primera.

CÓMO CONOCER DÓNDE ESTAMOS SITUADOS

El principio matemático de la triangulación permite establecer el punto sobre la Tierra sobre el cual estamos situados. Para ello será necesario conocer la distancia que nos separa de  tres puntos de ubicación conocida y trazar tres círculos, cuyos radios (r)   se corresponden con esas distancias.

Supongamos que nos encontramos situados en un punto desconocido, cerca de otro al que llamaremos "A", cuyo radio es (r); al doble de esa distancia (2r) está situado el punto "B" y al triple de la distancia (3r) el punto "C".



Si trazamos sobre un mapa de la zona tres circunferencias, tomando como centro los puntos A, B y C y como valor de sus radios las distancias a escala reducida que nos separa del centro de cada círculo, el punto donde se cortan las circunferencias será el lugar donde nos encontramos situados.

Por supuesto, esta explicación sólo constituye una demostración matemática del principio de la triangulación, porque no sería lógico conocer dónde están situados esos tres puntos de referencia e incluso la distancia que nos separa de ellos y no conocer realmente el punto donde nos encontramos situados.

Sin embargo, si contáramos con un dispositivo capaz de calcular por sí mismo la distancia que nos separa de A, B y C, entonces sí sería posible ubicar nuestra posición. Es en ese principio en el que se  basa, precisamente, el funcionamiento de los receptores GPS.

COMPOSICIÓN DEL SISTEMA GPS

El sistema GPS consta de tres partes principales: los satélites, los receptores y el control terrestre.

El sistema se compone de 24 satélites distribuidos en seis órbitas polares diferentes, situadas a 2 169 kilómetros (11 000 millas) de distancia de la Tierra. Cada satélite la circunvala dos veces cada 24 hora. Por encima del horizonte siempre están "visibles" para los receptores GPS por lo menos 4 satélites, de forma tal que puedan operar correctamente desde cualquier punto de la Tierra donde se encuentren situados.



Por norma general y para mayor exactitud del sistema, dentro del campo visual de cualquier receptor GPS siempre hay por lo menos 8 satélites presentes. Cada uno de esos satélites mide 5 m de largo y pesa 860 kg . La energía eléctrica que requieren para su funcionamiento la adquieren a partir de dos paneles compuestos de celdas solares adosadas a sus costados. Están equipados con un transmisor de señales codificadas de alta frecuencia, un sistema de computación y un reloj atómico de cesio, tan exacto que solamente se atrasa un segundo cada 30 mil años.



La posición que ocupan los satélites en sus respectivas órbitas facilita que el receptor GPS reciba, de forma constante y simultánea, las señales de por lo menos 6 u 8 de ellos, independientemente del sitio donde nos encontremos situado. Mientras más señales capte el receptor GPS, más precisión tendrá para determinar las coordenadas donde se encuentra situado.

TIPOS DE RECEPTORES GPS



Los receptores GPS detectan, decodifican y procesan las señales que reciben de los satélites para determinar el punto donde se encuentran situados y son de dos tipos: portátiles y fijos. Los portátiles pueden ser tan pequeños como algunos teléfonos celulares o móviles. Los fijos son los que se instalan en automóviles o coches, embarcaciones, aviones, trenes, submarinos o cualquier otro tipo de vehículo.

Control terrestre de los satélites

El monitoreo y control de los satélites que conforman el sistema GPS se ejerce desde diferentes estaciones terrestres situadas alrededor del mundo, que rastrean su trayectoria orbital e introducen las correcciones necesarias a las señales de radio que transmiten hacia la Tierra. Esas correcciones benefician la exactitud del funcionamiento del sistema, como por ejemplo las que corrigen las distorsiones que provoca la ionosfera en la recepción de las señales y los ligeros cambios que introducen en las órbitas la atracción de la luna y el sol.


Receptor GPS situado de forma fija en el salpicadero de un coche o automóvil. A la derecha se puede apreciar el< trazado de las calles de la urbanización por las que se desplaza el vehículo en esos momentos.

Fuente: :http://www.asifunciona.com/electronica/

Para que usamos el GPS:

En la actualidad tenemos al gps muy introducido en nuestras vidas, gps tienen los coches, las motocicletas de carrera, los aviones, los tanques, los barcos, los submarinos. Todo lo que requiera ser rastreado o lo que requiera conocer su posición exacta en el globo cuenta con un gps. Y si no lo tiene incorporado, se puede incorporar.

El sistema de posicionamiento global ha evolucionado muy de prisa solo porque en un principio tenia fines militares y bélicos. Ya que mediante las coordenadas podrian poner con mas exactitud una bomba en la casa del vecino o en la casa de algun terrorista.

GPS como quia de viaje:

Los gps actualmente permiten medir distancias, grabar puntos y muchas cosas mas que facilitan de gran manera el movimiento en un área desconocida además que muchos de los gps cuentan con brujula propia, aunque ya no es muy necesaria.

Manual de uso GPS:

http://ibcperu.nuxit.net/doc/public/src/00362.pdf

Información sobre satelites y cobertura:

http://www.sateliteinfos.com/satelites/
#94
Diseño Gráfico / Ayuda con un efecto en flash
24 Octubre 2009, 15:10 PM
Hola, necesito darle un efecto en flash a como se muestra una imagen, no quiero el tipico zoom o el de persianas sino el efecto golpe.

Osea llegan las palabras como golpeando al monitor, como si arrojaran piedras, espero me deje entender. Alguien me puede conseguir un efecto asi de alguna animacion en .fla porfavor.

De antemano muchas gracias  ;D
Saludos
#95
PHP / Limitar tamaño de carpeta
8 Octubre 2009, 23:57 PM
Hola, hay alguna forma en la cual se pueda limitar el tamaño maximo que puede ocupar una carpeta  :huh:

Por ejemplo creo una carpeta nueva para una galeria y quiero que solo puedan subir 5 megas a esa carpeta, como lo hago?

De antemano muchas gracias  ;D
#96
PHP / nombre de este mod
26 Septiembre 2009, 16:45 PM
Hola, alguien sabe como se llama este mod?



Me gustaria el nombre y si pueden darme tambien el link para bajarlo.

Saludos
#97
Hola, mi problema es el siguiente:
Estoy haciendo una pagina de acceso libre para visitantes y que tambien te permita usuarios, pero no hay problema con no ser registrado para ver los contenidos.

Encontes en la pagina inicial (sera de ejemplo) index.php necesito que un visitante pueda ver un enlace de registrese, o inicie sesion y que los usuarios que ya iniciaron sesion enves de el enlace de registrese debera aparecer, ver perfil y cerrar sesion.

Encontes no es mucho problema la hacerlo con un simple if.

if(isset($_SESSION["variable"])){ echo "menu 1";} else { echo "menu2"; }

Y aqui el problema, cuando un usuario registrado y que ha iniciado sesion esta en la pagina todo va bien, pero un visitante mira el menu2 que no deberia ver, sale los enlaces de ver perfil y cerrar sesion cosa que nada que ver.

Quiza estoy haciendo mal mi sentencia, pero he probado preguntando de varias formas, acotando a esto comentarles que en el principio de la pagina estoy haciendo de esta manera:

Código (php) [Seleccionar]
if (!isset($_SESSION)) {
 session_start();
}


mmm, bueno aun tengo muchas lagunas por lo que estoy haciendo quiza necesite un descanso para darme cuenta de mi error o quiza necesite revisar mejor el codigo, pero cualquier ayuda que me puedan brindar no estaria de mas.

De antemano muchas gracias
Un saludo

#98
Hola, nose si alguien mas tiene ese problema, pero en mi caso, inicio sesion y dejo la opcion de permanecer conectado por 90 minutos, pero a los 30 minutos se cierra mi sesion.

Nose si es un problema mio o quiza el foro, estoy con el google chrome.

Un saludo
#99
Nivel Web / Version SMF
15 Julio 2009, 16:48 PM
Version actual 1.1.9  :P :P
Ultima version por SMF 1.1.10 es recomendable la actualización :huh:
Porque ahora veo que siguen con la version 1.1.9.

Un saludo
#100
PHP / Existe algun modulo en php que...
1 Junio 2009, 22:22 PM
Existe algun modulo en php que me ayude a visualizar mi camara web, algo asi como para usarlo en videoconferencias o un simple chat como el messenger.

Lo hay? Tiene nombre? Me hechan una mano?

un saludo
#101
Hola,

Me podrían orientar en como puedo utilizar un vector de formato .eps en photoshop cs3, ya que segun parece este formato es mas bien para versiones mas antiguas o talves estoy equivocado.

De antemano muchas gracias
Un saludo




SOLUCIONADO
#102
Nivel Web / Bugs en smf 1.1.7
6 Febrero 2009, 15:54 PM
Smf 1.1.7 tiene problemas?

You're using an outdated version of SMF, which contains some bugs which have since been fixed. It is recommended that you update your forum to the latest version as soon as possible. It only takes a minute!

Es recomendable y estable usar el smf 1.1.8 ?

Gracias por sus respuestas.
Un saludo
#103
Hola,

Me preguntaba si piensan cambiar los smileys del foro por unos mas elocuentes a lo que ya se nos viene.

:D >:( ::) :-( ;D :huh: :-* :-X :rolleyes: :( :o :) :P :-\ ;) :-[ >:D :xD :¬¬ :laugh:

jejeje, cambiarles el gorrito de cocineros por el gorrito de papa noel.



Claro que no tan pálidos  :laugh:
#104
PHP / Mod o funcion para hacer graficas en Php
30 Noviembre 2008, 21:10 PM
Hola, pues queria ver si me pueden recomendar algun script o una función o algun paquete extra en php, que me permita hacer graficas, tortas y esas cosas que son muy útiles a la hora de sacar estadísticas.

De antemano muchas gracias
Un saludo
#105
Óscar Sánchez es Director General de Tech Sales Group

El Siglo XXI ha traído nuevas formas de emprender, apoyadas en una tecnología como es Internet y una nueva manera de entender la vida y el desarrollo profesional. Se ha desmitificado tal dicho de que para triunfar como emprendedor hay que dejarse la piel 20 horas diarias. Aquí os presentamos un estudio que revela los nuevos tiempos que corren para los emprendedores.

Con este titular lanzamos un órdago a muchos prejuicios sobre los emprendedores. Se dice que estos son los que más trabajan y que lo hacen de forma desmesurada. Nada más lejos de la realidad. El Siglo XXI ha traído nuevas formas de emprender, apoyadas en una tecnología como es Internet y una nueva manera de entender la vida y el desarrollo profesional. Se ha desmitificado tal dicho de que para triunfar como emprendedor hay que dejarse la piel 20 horas diarias. Aquí os presentamos un estudio que revela los nuevos tiempos que corren para los emprendedores.


El lema de que los emprendedores son los que menos trabajan podría ser el reclamo que tanto hace falta para que aumenten los que se atrevan a dar el paso. Ya hoy es una realidad que se plasma en todos aquellos que han tomado la decisión de trabajar para si mismos. Es también un buen incentivo para todos aquellos que se lo están pensando y están realizando la reflexión final. He aquí una causa más para que podáis decidiros de una vez.

En el estudio se revela que los que tienen su propio negocio dedican menos horas que los que trabajan para cuenta ajena. La flexibilidad que les permite su horario y una dedicación fructuosa produce que las horas que se ejercen se hagan con una eficiencia y productividad mayor. Otra variable que conlleva a reducir las horas es la importancia que se le da al disfrute personal y la conciliación con la familia.


Pero hay muchos emprendedores que ya tienen su propio proyecto y resulta que trabajan más que nunca. Es el caso por ejemplo de Charles, un buen amigo mio. Desayuné el pasado jueves y resulta curioso su andadura. Ha estado dos años de su vida trabajando una media de 16 horas diarias con el único fin de acumular cuanto más dinero mejor para así poder plantearse una vida mejor. El resultado es que se ha desgastado enormemente, ha envejecido, y el negocio no le ha ido muy bien al pelearse con un socio. Resulta que se ha tenido que ir con prácticamente nada y con dos años tirados por la ventana.

El camino de Charles no es el camino a emprender.

Fuente: :http://www.baquia.com/noticias.php?id=14381

#106
Hola foro :D

Me podrían ayudar con algun link o alguna información para dar con la información de un microcontrolador de la familia PIC o de la familia Motorolla, en caso de ser Motorolla, de preferencia el 6800.

Lo que pasa es que necesito ver sus Assemblies para compararlos, ver su arquitectura y cosas asi, pero tiene que estar en español, porque el ingles tecnico no lo comprendo  :P

Gracias por su tiempo
Un saludo

OHK
#107
Sugerencias y dudas sobre el Foro / Mensajes Leet
30 Octubre 2008, 01:56 AM
Que significa eso :huh:

Castiblanco
Mensajes: leet (4,659 por día)
Grupo: Wiki

Castiblanco

N/A, es cuando recién se ha registrado, pero leet que es :huh:
#108
Diseño Gráfico / Utilizar imagen de fondo
29 Octubre 2008, 14:05 PM
Hola,

como puedo hacer para utilizar una pequeña imagen para fondo de un diseño.
La imagen es de el 3% del tamaño de el diseño que estoy haciendo, me gustaría poder repetir la imagen muchas veces para que cubra todo el documento y pueda usarlo como fondo.

Asi como en HTML utilizamos el background y la imagen se repite por defecto hasta llenar todo el documento, de esta misma forma quiero hacerlo en Photoshop.

Alguna sugerencia?
Un saludo
Gracias por su tiempo
OHK
#109
Planteamiento del Ejercicio acompañado del algoritmo de resolución en Java

Planteamiento:

Ejercicio 1. Programar un algoritmo recursivo que calcule el factorial de un número.

Solución:

Código (java) [Seleccionar]

   int factorial(int n){
     if(n==0) return 1;   //AXIOMA
     else return n*factorial(n-1);  //FORMULA RECURSIVA
  }  





Planteamiento:

Ejercicio 2. Programar un algoritmo recursivo que calcule un número de la serie fibonacci.

Solución:

Código (java) [Seleccionar]

   int fibonaci(int n){
     if(n==1 || n==2) return 1;
     else return fibonaci(n-1)+fibonaci(n-2);
   }  





Planteamiento:

Ejercicio 3. Programar un algoritmo recursivo que permita hacer la división por restas sucesivas.

Solución:

Código (java) [Seleccionar]

   int division (int a, int b)
   {
if(b > a) return 0;
else
   return division(a-b, b) + 1;
   }





Planteamiento:

Ejercicio 4. Programar un algoritmo recursivo que permita invertir un número. Ejemplo: Entrada: 123 Salida: 321

Solución:

Código (java) [Seleccionar]

    int invertir (int n)
   {
if (n < 10)         //caso base
   return n;
else
   return (n % 10) + invertir (n / 10) * 10;
   }





Planteamiento:

Ejercicio 5. Programar un algoritmo recursivo que permita sumar los dígitos de un número. Ejemplo: Entrada: 123 Resultado:6

Solución:

Código (java) [Seleccionar]

    int sumar_dig (int n)
   {
if (n == 0)      //caso base
   return n;
else
   return sumar_dig (n / 10) + (n % 10);
   }





Planteamiento:

Ejercicio 6. Programar un algoritmo recursivo que permita hacer una multiplicación, utilizando el método Ruso. Para mas informacion: aqui.

Solución:

Código (java) [Seleccionar]

    int mult_rusa(int A, int B)
   {
       if(A==1){
   return (B);
}
if(A%2!=0){
return(B+mult_rusa( A/2 , B*2));
}
else{
return(mult_rusa( A/2 , B*2));
}                                
   }





Planteamiento:

Ejercicio 7. Programar un algoritmo recursivo que permita sumar los elementos de un vector.

Solución:

Código (java) [Seleccionar]

    int suma_vec(int v [], int n)
   {
if (n == 0)
   return v [n];
else
   return suma_vec(v, n - 1) + v [n];
   }





Planteamiento:

Ejercicio 8. Programar un algoritmo recursivo que permita multiplicar los elementos de un vector.

Solución:

Código (java) [Seleccionar]

    int multiplicar (int vec [], int tam)
   {
if (tam == 0)
   return (vec [0]);
return (vec [tam] * multiplicar (vec, tam - 1));
   }





Planteamiento:

Ejercicio 9. Programar un algoritmo recursivo que calcule el Maximo comun divisor de dos números.

Solución:

Código (java) [Seleccionar]

   int sacar_mcd(int a, int b) {
       if(b==0)
           return a;
       else
           return sacar_mcd(b, a % b);
   }





Planteamiento:

Ejercicio 10. Programar un algoritmo recursivo que determine si un número es positivo.

Solución:

Código (java) [Seleccionar]

  public boolean positivo(int n){
    if(n>0) return true;
    else return negativo(n);
   }

   public boolean negativo(int n){
    if(n<0) return false;
    else return  positivo(n);
   }





Planteamiento:

Ejercicio 11. Programar un algoritmo recursivo que determine si un número es impar utilizando recursividad cruzada.

Solución:

Código (java) [Seleccionar]

       public boolean par(int n){
if(n==0) return true;
else return impar(n-1);
}

public boolean impar(int n){
if(n==0) return false;
else return par(n-1);
}





Planteamiento:

Ejercicio 12. Programar un algoritmo recursivo que permita sumar los elementos de una matriz.

Solución:

Código (java) [Seleccionar]

    int suma (int fila, int col, int orden, int mat [] [])
   {
if (fila == 0 && col == 0)
   return mat [0] [0];
else
   if (col < 0)
return suma (fila - 1, orden, orden, mat);
   else
return mat [fila] [col] + suma (fila, col - 1, orden, mat);
   }





Planteamiento:

Ejercicio 13. Programar un algoritmo recursivo que permita resolver el cuadro latino. Ejemplo de cuadro latino:

0 0 0 0 1
0 0 0 1 2
0 0 1 2 3
0 1 2 3 4
1 2 3 4 5


Solución:

Código (java) [Seleccionar]

    latino (int fila, int col, int cont, int orden, int mat [] [])
   {
if (fila == 0 && col == 0)
   mat [0] [0] = 1;
else
   if (fila == col)
latino (fila - 1, orden - 1, orden, orden, mat);
   else
   {
mat [fila] [col] = cont;
latino (fila, col - 1, orden + 1, orden, mat);
   }
   }





Planteamiento:

Ejercicio 14. Programar un algoritmo recursivo que permita resolver la siguiente matriz:

1 1 1 1 1
1 2 2 2 2
1 2 4 4 4
1 2 4 8 8
1 2 4 8 16


Solución: Solucionado por: AmeRiK@nO

Código (java) [Seleccionar]

public class MatrizRecursividad {

private static int a=0, aux=1, b=0; //Declaramos los datos necesarios
private static int[][] matriz = new int[6][6]; //La matriz debe ser cuadrada

public static void main(String[] args) {

llenarMatriz(matriz, a, b); //Iniciamos el llamado recursivo
imprimir(); //imprimimos la matriz

}

public static void llenarMatriz(int matriz[][], int i, int j){

if(j > matriz.length -1){ //Si llegó a la ultima coluna, reseteamos los datos para la siguiente
i++;
j=0;
aux++;
}
if(i <matriz.length){ // compara que no hallamos llegado al final

if(i==(aux-1) && j >= (aux-1)){ //comprueba que estemos en el lugar adecuado, es decir ira imprimiento escaladamente
if(i==0)// si es la primera fila ingresamos aux=1
matriz[i][j] = matriz[i][j]=aux;
else
matriz[i][j] = matriz[i][i-1]*2;//ingresamos el valor correspondiente al ultimo de la "escala" *2
llenarMatriz(matriz, i , j+1);
}
else{ //si no, asignamos los valores anteriores de la escala
if(j==0)// comprobamos si es el primer digito a ingresar
matriz[i][j] = j+1;
else
matriz[i][j] = matriz[i-1][j];// asignamos el mismo numero de la fila anterior (i-1)
llenarMatriz(matriz, i, j+1);
}
}
}

public static void imprimir(){ //este metodo nos imprime la matriz por consola

for(int i=0; i< matriz.length; i++){
for(int j=0; j< matriz.length; j++){
System.out.print(matriz[i][j] + " ");
}
System.out.print("\n");
}
}

}





Planteamiento:

Ejercicio 15. Programar un algoritmo recursivo que ejecute la matriz del cubo mágico.

Solución:

Código (java) [Seleccionar]

   void magico(int mat [] [], int fil, int colmedio, int c, int n)
   {
if (c == n * n)
{
   mat [n-1] [colmedio] = c;
}
else
{
   if (fil < 0 && colmedio == n)
   {
magico(mat, fil + 2, n - 1, c, n);
   }
   else
   {
if (fil < 0)
{
   magico(mat, n - 1, colmedio, c, n);
}
else
{
   if (colmedio == n)
   {
magico(mat, fil, 0, c, n);
   }
   else
   {
if (mat [fil] [colmedio] == 0)
{
   mat [fil] [colmedio] = c;
   magico(mat, fil - 1, colmedio + 1, c + 1, n);
}
else
{
   magico(mat, fil + 2, colmedio - 1, c, n);
}
   }
}
   }

}
   }





Planteamiento:

Ejercicio 16. Programar un algoritmo recursivo que muestre el numero menor de un vector.

Solución:

Código (java) [Seleccionar]

       int menorvec (int x [], int n, int menor) {
       if (n == 0)
           if (menor > x [n]) return x [0];
           else return menor;
       else
           if (menor > x [n]) return menorvec (x, n - 1, x [n]);
           else return menorvec (x, n - 1, menor); }





Planteamiento:

Ejercicio 17. Programar un algoritmo recursivo que muestre el numero mayor de un vector.

Solución:

Código (java) [Seleccionar]

       int mayor (int numeros [], int posicion) {
       int aux;
       if (posicion == 0) return numeros [posicion];
       else {
           aux = mayor (numeros, posicion - 1);
           if (numeros [posicion] > aux) return numeros [posicion];
           else return mayor (numeros, posicion - 1);
        }    
       }





CitarRecursividad

1.1. Introducción.

El concepto de recursividad va ligado al de repetición. Son recursivos aquellos algoritmos que, estando encapsulados dentro de una función, son llamados desde ella misma una y otra vez, en contraposición a los algoritmos iterativos, que hacen uso de bucles while, do-while, for, etc.

1.2. Definición.

Algo es recursivo si se define en términos de sí mismo (cuando para definirse hace mención a sí mismo). Para que una definición recursiva sea válida, la referencia a sí misma debe ser relativamente más sencilla que el caso considerado.
1.3. Elementos de la Recursión

1.3. 1. Axioma

Es un caso donde el problema puede resolverse sin tener que hacer uso de una nueva llamada a sí mismo. Evita la continuación indefinida de las partes recursivas.

1.3.2. Formula recursiva

Relaciona el resultado del algoritmo con resultados de casos más simples. Se hacen nuevas llamadas a la función, pero están más próximas al caso base.
Por ejemplo: El factorial de un número

factorial(0)   ->  1
factorial(1)   ->  1*factorial(0)
factorial(2)   ->  2*factorial(1)
factorial(3)   ->  3*factorial (2)
...               ->  ...
factorial(N)   ->  3*factorial (N-1)

En la resolución de algoritmos recursivos es imprescindible encontrar estos dos elementos.

1.4. Tipos de recursión

1.4.1. Recursividad simple

Aquella en cuya definición sólo aparece una llamada recursiva. Se puede transformar con facilidad en algoritmos iterativos.

1.4.2. Recursividad múltiple
Se da cuando hay más de una llamada a sí misma dentro del cuerpo de la función, resultando más difícil de hacer de forma iterativa. Un ejemplo típico es la función de fibonacci

1.4.3. Recursividad anidada
En algunos de los argumentos de la llamada recursiva hay una nueva llamada a sí misma. La función de Ackermann se define por recursividad como sigue:

1.4.4. Recursividad cruzada o indirecta
Son algoritmos donde una función provoca una llamada a sí misma de forma indirecta, a través de otras funciones.

OHK
#110
Hola, no estoy seguro de a quien reportar esto asi que por eso lo hago aqui.

http://hwagm.elhacker.net/aircrack-ng.htm

Descargar el Aircrack-ng 1.0-beta para windows 

-->

CitarNot Found

The requested URL /aircrack-ng-1.0-beta1-win.zip was not found on this server.

El enlace a esa descarga no se encuentra, esta es una notificación, no se molesten conmigo  ;)

Un saludo
OHK
#111
Ejercicios / Encriptacion basica con matrices
24 Septiembre 2008, 23:54 PM
=========================================
== Encriptacion basica con matrices y una palabra clave==
=========================================


Realizar un programa en Java que resuelva una encriptacion basica utilizando matrices, el mismo deberá poder descifrar los datos.

La encriptacion debera ser de la siguiente forma:

Utilizar una palabra clave: clave
Texto a cifrar:             Hola mundo

Primer paso:

Generar una matriz, que contenga la palabra clave, luego de ello debera llenarse las filas con el texto a cifrar.

    c   l   a   v   e

    h   o   l   a

   m   u   n   d   o

Como pueden ver, queda un espacio vacio, este debe permanecer asi.
Paso 2:

Ordenar alfabeticamente la palabra clave, que en nuestro caso es "clave"
Y a su ves, debemos mover las columnas que estan debajo de la palabra clave, como se ve en la matriz.

   a   c   e   l   v
   l    h       o   a
   n   m  o  u   d

Paso 3:

La matriz debera voltearse, las filas deberan ser columnas, como en el siguiente ejemplo:

   a   l    n
   c    h    m
   e         o
   l    o    u
   v    a    d

Y nuestro resultado seria:
   ln hm  o ou ad

Y para la desencriptacion, debera usarse la palabra clave:
acelv que en un principio se era "clave"

Un saludo

Espero sus respuestas.

OHK
#112
Juegos y Consolas / Cs 1.6 stream a Cs 1.6 NO stream
19 Septiembre 2008, 18:08 PM
Hola foro :D

Me gustaria saber como puedo cambiar mi Counter Strike 1.6 Stream a Counter Strike 1.6 NO stream.

Bueno, la verdad no le entiendo muy bien que son, o simplemente son lo mismo y yo estoy armando algo de nada... o es que a algunos se les olvida poner el NO cuando comprimen los ejecutables...

O es que si son diferentes...
Si es que lo fueran, hay algun metodo?

O es que me tengo que buscar el No stream por separado.

Un saludo
OHK
#113
Juegos y Consolas / Transportar Deck
17 Septiembre 2008, 23:40 PM
Hola foro :D

Bueno, espero que haya gente que sepa de este juego :P
Como puedo llevar el deck (osea mis cartas) de joey the pasion (yu-gi-oh) de un computador a otro, cual es el archivo que lo contiene ?
O debo hacer algun artificio para llevarmelo?

De antemano muchas gracias
Un saludo

OHK
#114
Ejercicios / Problema recursivo
8 Septiembre 2008, 17:45 PM
Hola :D

Continuando un poco con los ejercicios recursivos, aquí les dejo otro.  :P

Hacer un Algoritmo Recursivo en Java que calcule la multiplicación de dos números utilizando la multiplicación por el método Ruso, también llamado  Multiplicación por Duplicación.

Para mas información sobre el método Ruso, aqui:

Espero sus respuestas.
Un saludo

OHK

#115
Hola foro :D

Tomando en cuenta los últimos acontecimientos en el foro, como el cierre de pídanme juegos, pídanme software eh incluso el fichaje al hilo de descarga directa de software, por la ilegalidad del asunto, propongo lo siguiente: (Espero no lo hayan propuesto antes)

Pues recordales que el funcionamiento de estos hilos mencionados eran: Hola me consigues este juego...

Hola, aqui esta tu juego links, links, links
Desde mi punto de vista dar los links en el foro ah sido el punto principal por el cual se los han cerrado.

Ahora bien, mi propuesta es la siguiente:
Crear un post (de preferencia en el Foro de Dudas Generales(aunque eso no depende de mi)) el cual trate de pedidos de todo tipo, software, musica, juegos y etc...

El mismo que tendrá la siguiente regla, preguntas puntuales, nada de post de agradecimientos y las respuestas serían directivas de busqueda en el google.

ejemplo:

Pregunta. Hola me pueden conseguir el album de Panda?
Respuesta. Hola, aqui la directiva:
"panda" -html -asp -php -htm (rar|torrent)

Solo es un ejemplo.
Desde mi punto de vista, responder de esa forma ayuda al usuario y no mete en problemas legales al foro, pero claro ese es mi punto de vista.

Espero haber explicado bien mi idea.
Que dicen...

Un saludo

OHK
#116
Diseño Gráfico / Pregunta, espero no les moleste
7 Septiembre 2008, 02:06 AM
Hola :D

Tengo una duda y antes de postear me gustaría que me la aclaren.
Puedo poner un reto, así como los que ponen ustedes, pero excluirme como participante?

Me explico, por decir Reto a que hagan un Mural y el mejor tendrá bla bla bla, pero yo no voy a participar, simplemente voy a ser un veedor. Puedo?

Ojo, la pregunta no va solo a los Moderadores (con todo respeto) ya que no solo ellos participan.

Un saludo

OHK
#117
Juegos y Consolas / Spore: jugando a ser Dios
3 Septiembre 2008, 17:58 PM
El creador de "Los Sims" presenta un nuevo juego en el que el jugador tiene total libertad para diseñar sus propias criaturas y controlar su evolución.

Uno de los videojuegos más revolucionarios de los últimos años, creador de toda una secuela de juegos basados en el mismo planteamiento, ha sido "Los SIms". En él, el jugador controlaba al detalle las actividades de las criaturas cibernéticas, convirtiéndose en una especie de ojo todopoderoso que controlaba su vida virtual.

Ahora, el creador de "Los SIms" Will Wright, ha ido un paso más allá con "Spore", en el que el jugador tiene todavía mayor libertad para crear y decidir el destino de las criaturas ideadas por él.

El juego sigue todos los pasos de la evolución: unas esporas se convierten en células, que desde su origen acuático evolucionan hacia una especie sensible. Después, se van generando organismos cada vez más complejos durante otras cuatro fases, como criaturas, tribus, civilizaciones y viajes espaciales, con distintos desafíos y metas en cada fase.

Aunque se trata de un juego para un único jugador, se pueden compartir las creaciones con las de otros jugadores, aumentando así el número de mundos para explorar. También pueden tomarse prestados otros seres para que formen parte del universo de cada jugador.

Video

Según ha desvelado Will Wright durante la presentación del juego en España, hay ya más de 3 millones de criaturas, una cifra que avala el éxito del juego, número uno en todos los ránkings de popularidad desde que estuviera disponible en Internet la primera demo del juego.

Wirght destacó la posibilidad de que los jugadores puedan "reconstruir su propia historia y ser creativos de una manera sencilla y también divertida". Según él, "con 20 clics podemos darle una capacidad creativa a los jugadores que antes sólo estaba al alcance de los diseñadores profesionales".

El juego se puede descargar desde la web de Electronic Arts, al precio de 56,95 euros. Sin duda hará, las delicias tanto de creacionistas como de darwinistas, pues los primeros podrán diseñar criaturas a su antojo, mientra que los segundos serán testigo de los avatares de su evolución como especie.

Fuente:
http://www.baquia.com/noticias.php?id=14082
#118
Ejercicios / De forma recursiva
2 Septiembre 2008, 23:45 PM
Hola foro :D

Aquí dos ejercicios.

1ro. Realizar un programa en Java que de forma recursiva verifique si un número es positivo. El método debe ser booleano, osea devolver true o false, dependiendo del número introducido.

2do. Realizar un programa en Java que de forma recursiva sume 2 números naturales.

Sencillo cierto?
Espero sus respuestas.

Un saludo
#119
PHP / Pregunta: para expertos en el tema
29 Agosto 2008, 06:34 AM
Hola foro, creo que voy progresando en este asunto.
Hace no mucho fuí seleccionado para dictar cursos de Photoshop y pues presenté un plan de tema para poder dictarlo el cual lo aprobaron y bla bla y pude dictar el curso, todo esto gracias a la colaboración de RedMX.

Bueno, ahora me han seleccionado para dictar PHP, y pues quería pedirles una mano con la elaboración de un plan de temas.

Como puedo empezar?
Sobre que me guío?
Hay algún prototipo para esto?
Me sirve guiarme de video tutoriales y su contenido?

Ejemplo de Intento de Plan de temas:

Tema1.

-Pequeña reseña histórica
-Algo conceptual

-Instalación y configuración del Apache.
-Instalación y configuración de PHP.
-Instalación y configuración de MYSQL (porque Php sin base de datos para mi esta incompleto).

-Mi primer script en Php
-Sintaxis y palabras reservadas.

Tema2.

...

Tema3.

Cuantos temas son necesarios para darles base en PHP?
Que temas son importantes que toque?

Necesito utilizar y enseñarles alguna interfaz para esto como el Dreamweaver?

Un saludo

OHK
#120
Ejercicios / Ayuda con este ejercicio
27 Agosto 2008, 06:37 AM
Hola foro, me he topado con este ejercicio y no lo puedo resolver aún, a ver si uno de ustedes me puede echar una mano.

Bueno aquí la descripción.

Realizar de forma recursiva la siguiente matriz denominada ( cubo mágico ).

        8   1   6
        3   5   7
        4   9   2

El cubo mágico es una matriz impar (obligatorio) la cual proporciona un mismo resultado si sumas las filas o las columnas.

      8 + 1 + 6  =  15
      3 + 5 + 7  =  15
      4 + 9 + 2  =  15


      8 + 3 + 4  = 15

Bueno, creo que el punto esta claro hasta ahí.

Ahora bien, hay reglas de llenado de matriz, pues primero siempre debe llenarse la matriz por la fila 0 y en el medio.

Como hacemos esto?
n = tamaño de la matriz, por decir 5
n/2

        8   1   6
        3   5   7
        4   9   2

en nuestro ejemplo, el 1 se debe llenar 1ro.
Ahora bien, como es que llenamos todo lo demás.
Pues utilizamos el salto del caballo y las siguientes restricciones:

1ro.
                1

2do.
Haciendo salto:

De donde nos encontrábamos, nos movemos uno a la derecha y uno hacia arriba.

                         |
                   1  --

Pero que pasa, resulta que nos hemos salido de la matriz por encima de la matriz, entonces debemos utilizar la siguiente condicionante.

Si el numero a introducir cae fuera de la matriz se debe mover 1no a la derecha e ir a la parte de abajo de la matriz, como si fuera un pedazo de papel a la que hemos unido por ambos lados en forma de un cilindro.

        -   1   -
        -   -   -
        -   -   2

Ahora bien, si continuamos con la regla, avanzamos 1no a la derecha y uno hacia arriba, pero al avanzar a la derecha ya estamos fuera de la matriz, fuera de la columnas, entonces hacemos lo siguiente.

En ves de ir uno mas hacia la derecha, nos vamos hacia el principio y subimos de fila (o bajamos, dependiendo de como lo vean) y colocamos el numero donde debe ser.

        -   1    -
        3   -   -
        -   -   2

Ahora bien, siguiendo con el procedimiento nos movemos 1no a la derecha y 1no hacia arriba, pero que pasa, ahora resulta que la matriz en la posición que nos toca ocupar ya tiene un valor, entonces hacemos el siguiente procedimiento.

        -   1   -
        3   -   -
        4   -   2

Colocamos el siguiente número por debajo del número anterior, como se ve en el ejemplo.

Luego continuamos con los pasos y no encontramos ningún problema en el siguiente número, 1no a la derecha y 1no hacia arriba.

        -   1   -
        3   5   -
        4   -   2


He incluso no encontramos problemas hasta en el siguiente número. 1no derecha y 1no arriba.

        -   1   6
        3   5   -
        4   -   2


Continuando con las reglas avanzamos 1no a la derecha (y ya estamos fuera y por lo mismo consiguiente nos vamos al inicio de la columna) y subimos 1no, y ahora nos hemos salido de la fila y por lo mismo consiguiente nos vamos por debajo

        -   1   6
        3   5   -
        4   -   2

Pero como resultado tenemos el lugar ocupado, entonces recurrimos a:

CitarColocamos el siguiente número por debajo del número anterior

        -   1   6
        3   5   7
        4   -   2

Y lo hacemos según los procedimientos ya mencionados en los pasos anteriores hasta culminar con la matriz.

Ahora bien, cual es el axioma?

Nos preguntamos, cuando debe terminar de llenar?

Pues cuando haya llegado a 9 (que es el caso de nuestro ejemplo)
Lo cual podemos sacar con el tamaño de la matriz.

n = 5;  // Tamaño de la matriz

  if(contador == n*n)

Bueno, espero que el enunciado este claro.

Buena suerte!

Un saludo

OHK
#121
Hola Foro.
Necesito una mano con la instalación de una torre para una antena repetidora de señal de televisión.
Esta es la información que uno no encuentra buscando por el google  :¬¬

Lo que necesito saber es, a que altura tiene que estar y si debe estar con algun material especial que no sea cemento y nada mas, si necesita un cable a tierra y cosas por el estilo, aunque me dijeron que también pueden ir directo al piso, pero nose, no me convence.

Agradecimientos de antemano

Un saludo
OHK

EDITO: Espero que esto vaya aqui  :P
#122
PHP / Error de Imagenes
26 Julio 2008, 05:36 AM
Hola foro, estoy tratando de implementar un sistema de comentarios con sistema captcha, para evitar a los robots posteadores, y pues me sale el siguiente error#

[function.getimagesize]: failed to open stream:

Y bueno, he buscado y dice que no tengo Instalado las librerias gd, he bajado el gd, pero nose como instalarlo y no pillo ningun manual :(, alguien me puede hechar una mano?

Un saludo
OHK
#123
Ejercicios / Ejercicios simples en Java
25 Julio 2008, 22:03 PM
Hola Foro

Voy a lanzar un ejercicio y esperar a quien lo resuelva y al final del plazo voy a resolverlo con una breve explicación. (Ruego por la aprovación del Moderador de este Foro)

Los ejercicios no son muy dificiles, ya que es mas para ayudar y orientar a los mas novatos.

DATOS

Objetivo: Para los novatos, desarrollar Lógica.

Utilizando el Lenguaje de Programación Java, genere la siguiente matriz:

Matriz 1

   0  0  0  0  1
   0  0  0  1  2
   0  0  1  2  3
   0  1  2  3  4
   1  2  3  4  5

La matriz debe generarse dependiendo el número que el usuario asigne:
Si el usuario asigna 5, debe generarse una matriz de 5 por 5 como la que se ve en el primer ejemplo, en caso de ser 4, debe generar una Matriz de 4 por 4:

   0  0  0  1
   0  0  1  2
   0  1  2  3
   1  2  3  4

El codigo debe ser expuesto y debidamente comentado en el hilo dentro de las etiquetas Code.
El plazo para resolver esta ejercicio es de 8 días. Luego de ese tiempo, pasaré a mostrar el ejercicio resuelto.

En caso de que el ejercicio sea resuelto en menos de 2 días se proseguira a plantear un nuevo ejercicio, bajo este mismo hilo o en un nuevo post, dependiendo si la situación lo amerita.

Un saludo y a Programar :D

OHK
#124
Forbidden

You don't have permission to access /post2.html;start=0;board=2 on this server.


Apache Server at foro.elhacker.net Port 80




Que puedo hacer para que no me salga?

Un saludo
OHK
#125
Hola foro, me gustaría que me recomendaran algún programa para hacer mi sitio web en flash, sin saber mucho del tema :P, algún software así como el TrendyFlash, solo que de preferencia que sea software libre, o si tienen uno con su respectivo serial  :¬¬ sería estupendo :P

Saludos y desde ya muchas gracias.

Edito:
Nadie?  :huh:
#126
Hola foro, buscando ví el tuto de Azielito para hacer el cambio de color de el Iris del ojo, pero no puedo ver las imágenes que muestra el tutorial, nose si alguien me puede hechar una mano con el procedimiento  :P

saludos
#127
Hola foro, hace unos instantes me borraron cerca de 10 respuestas en distintos post, los cuales no incumplían ninguna regla, es mas ayudaban a resolver problemas, nose quien lo hizo, pero me gustaría saber porque lo hizo   :P

saludos
#128
Electrónica / Ventajas y Desventajas
13 Mayo 2008, 22:01 PM
Hola foro

quisiera me ayudaran con un problemita :P
espero no se enojen  :D

Si me puedieran explicar las ventajas y desventajas entre los contadores sincronos y los asíncronos :P
He encontrado una ventaja de los síncronos sobre los asíncronos:

todos los Flips Flops  cambian de estado al mismo tiempo, todos estan sincronizados por los TPN de los pulsos de la señal del reloj,  a diferencia de los contadores asíncronos, los retrasos de propagación de los FF no se suman para producir un retraso global, o algo así :P

gracias de antemano y espero me puedan ayudar  :)
#129
PHP / Ayuda php.ini
1 Marzo 2008, 02:01 AM
Hola foro

he buscado como habilitar la función mail en php, he buscado en el foro y he encontrado una chicheta.

http://foro.elhacker.net/index.php/topic,251.0.html

Bueno la idea es que ahí me dice que modifique...

[mail function]
;For Win32 only. //aca
SMTP = localhost
smtp_port = 25

;For Win32 only.
; sendmail_from = me@example.com //aca

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path = "C:\web services\xampp\sendmail\sendmail.exe -t" //aca

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =


pero de todas formas no puedo enviar un mail desde php, miren mi phpmailer, este es el error que me sale.

Warning: mail() [function.mail]: SMTP server response: 550 Invalid recipient: ohk.george@gmail.com in C:\web services\xampp\htdocs\emailer_.php on line 97

y en mi emailer_.php en la linea 97

if(mail($mail_destino, $titulo, $contenido, $headers))

Nosé si podrían ayudarme con esto de la [function mail]. Se los agradezco de antemano.  :xD
#130
Juegos y Consolas / Juego con crack
6 Febrero 2008, 17:03 PM
Hola gente, hace no mucho me compré un juego "Comand Conquer Generals Zero Hour" y uno mas antiguo aún "Red Alert 2 + Yuri's Revenge" pero los juego eran trucados  :¬¬ (no originales) y pues cuando los instalo tienen una carpeta con el crack, pero luego de instalarlo, aún siguiendo los pasos de crackeo, para jugarlos me pide el disco, siempre y pues todo estaba bien hasta que mi lector se fue deteriorando y por último se me colgo mi partida y quisiera saber si uno de ustedes tiene o sabe de algún programa que me permita jugar estos juegos o cualquier otro juego sin necesidad de meter el cd, se los agradezo de antemano.