Monthly ArchiveMay 2008
General & Php & Programación 29 May 2008 10:05 am
Internet in 2035
Ayer martes asistimos a la conferencia que dió Vint Cerf (vicepresidente de Google, Premio Príncipe de Asturias 2002, considerado uno de los padre de Internet, etc..)en la Universidad de Murcia. En un principio la temática era el Software Libre, pero la conferencia empezó con un futurista Internet in 2035.

Y la verdad es que me encantó, no sólo por la temática (que ahora comentaré), si no por lo bien que lo comunicó y por lo cercano que estuvo (al final nos hicimos unas fotos con él).
Empezó la conferencia dando estadísticas hacerca del uso de Internet en el mundo hoy en día, su penetración, número de dispositivos capaces de acceder a Internet, etc. Y también nos dió datos de lo que el predice (junto con estadísticas de la ONU) que pasará en los próximos 50 años, tales como el aumento de la población, la penetración que tendrá esta dentro de 50 años, así como el número de dispositivos que tendrían acceso. Más o menos preveía que para una población de unos 9 mil millones de personas (previsión media) habría unos 10 mil millones de teléfonos móviles y unos 12 mil millones de aparatos capaces de acceder a Internet, evidentemente la porporción por habitante crecía si hablamos de paises desarrollados o subdesarrollados.
Comentó también como broma, que ahora se están migrando las IPs de IPv4 a IPv6 (que dentro de pocos años sólo habrán IPs de esta versión), y que entona el “Mea Culpa”, ya que cuando en el 1979 (creo recordar) eligió los actuales 32 bits de las direcciones IPs, pensó que para un experimento (recordemos el uso militar que en un principio tenía Internet), los 2.2 mil millones de direcciones distintas habría de sobra.
A continuación nos puso el ejemplo del frigorífico del futuro, capaz de saber la cantidad de comida que hay dentro de él. Así, cuando llegues a casa, dependiendo de lo que quede en la nevera, consultará en Internet recetas que contengan dichos ingredientes y te lo presentará. Otro caso de uso sería cuando vayas al supermercado, te llegará un sms al móvil diciendo: Hola soy el frigorífico, no te olvides de comprar leche. Y por último, cuando vayas al médigo y te diga que tienes sobrepeso, cuando llegues a casa el frigorífico te mostrará dieta a seguir, ya que se conectó a Internet y vió que el médico te había puesto el sobrepeso en su informe.
Hacia el final de la charla habló de las comunicaciones InterPlanetarias (InterPT), por ejemplo la comunicación de robots en Marte con la Tierra, y nos contó que quisieron establecer una conexión TPC/IP pero que era imposible dado las distancias “astronómicas” de las que hablamos, ya que la emisión de radio de Marte a la Tierra tardan sobre 15 minutos, y claro, no es posible mantener una cominicación en la que la emisión y la respuesta tarde tanto tiempo. También tenían el problema de que los planetas tienen la mala costumbre de rotar, por lo que cuando permanecen en el lado oculto, la conexión se interrumpe. Por ello, apostaron por una comicación como la de los correos electrónicos, es decir, tú mandas el mensaje (comunicación) y no sabes si el receptor estará on-line y podrá leerlo, por lo que se queda almacenado hasta que el receptor pueda abrirlo, y lo mismo con la respuesta. Por último, habló también que en el futuro cuando se vaya a otro planeta, lo que harán será portar los mismos procedimientos que están haciendo en Marte.
Tags: conferencia, internet, vint cerf
General 23 May 2008 05:51 pm
Loreena Mckennitt actuará este verano en España
Este año mi cantante favorita vuelve a los escenarios europeos en la gira “Live in Concert European Summer Tour 2008″. Supongo que le encantará España ya que, además de inspiración para varios álbumes, ha tocado en nuestro país en diversas ocasiones y por suerte, esta vez también lo hará y muy repartido además. Os pongo las fechas y lugares de los próximos conciertos en España:
| Fecha | Ciudad | Lugar | Comprar entradas | ||||
|---|---|---|---|---|---|---|---|
| Julio 15 | Madrid |
Cuartel Conde Duque | Comprar Tickets | ||||
| Julio 16 | Malaga |
Teatro Cervantes | Comprar Tickets | ||||
| Julio 18 | Huelva |
Auditorio de la Rabida | Por confirmar | ||||
| Julio 19 | Lorca |
Castillo de Lorca | Comprar Tickets | ||||
| Julio 20 | Barcelona |
Poble Espanyol | Comprar Tickets | ||||
| Julio 22 | Valencia |
Jardines de Viveros | Por confirmar | ||||
| Julio 26 | Granada |
Palacio de Congresos | Comprar Tickets | ||||
| Julio 27 | Alicante |
Explanada del Puerto | Comprar Tickets | ||||
| Por confirmar |
Bilbao |
Por confirmar | Por confirmar | ||||
| Por confirmar |
Santiago de Compostela |
Por confirmar | Por confirmar |
||||
Más información en : Quinlan Road
Tags: concierto, loreena mckennitt
Php & Programación 23 May 2008 05:35 pm
Vint Cerf dará una conferencia en Murcia
Directamente os pongo el correo que han enviado desde el Vicerrectorado de la Universidad de Murcia:
Tenemos el placer de comunicaros que el próximo miércoles *28 de mayo* visitará nuestra universidad VINGTON G. CERF, Vicepresidente y jefe ejecutivo de Google y Premio Príncipe de Asturias a las “Comunicaciones y humanidades” en el año 2002. Durante esta visita impartirá la conferencia “Una aproximación al software libre” a las *12:00 horas* en el Salón de Actos de la *Facultad de Informática*. Posteriormente se trasladará al Edificio de *Atica* para la presentación de 2 experiencias de software libre de la Universidad de Murcia. Quedáis todos invitados.
Sin duda todo un acontecimiento que no me pienso perder ![]()
Php & Programación 22 May 2008 11:50 am
Migración de datos
Este artículo se basa en una traducción (y transcripción) de un podcast de PHP Abstract, el cual explica de manera sencilla y a través de un ejemplo, como migrar o importar datos de una supuesta table de empleados a otra tabla existente de clientes, la cual viene con otro formato distinto.
Esta es la tabla de empleados (Employee), el origen de datos:
+-----------+-----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+-----------------------+------+-----+---------+----------------+ | id | mediumint(8) unsigned | NO | PRI | NULL | auto_increment | | Name | varchar(255) | YES | | NULL | | | Dept | varchar(255) | YES | | NULL | | | Join_Date | varchar(50) | YES | | NULL | | | Email | varchar(255) | YES | | NULL | | | Comments | text | YES | | NULL | | +-----------+-----------------------+------+-----+---------+----------------+
Mientras que el sistema al que se quiere migrar es la siguiente tabla, más una tabla auxiliar para facilitar las búsquedas de los departamentos:
+---------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------+--------------+------+-----+---------+----------------+ | employee_id | int(11) | NO | PRI | NULL | auto_increment | | first_name | varchar(50) | YES | | NULL | | | last_name | varchar(50) | YES | | NULL | | | department_id | int(11) | YES | | NULL | | | join_date | datetime | YES | | NULL | | | email | varchar(255) | YES | | NULL | | | comments | text | YES | | NULL | | +---------------+--------------+------+-----+---------+----------------+ +---------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------+--------------+------+-----+---------+----------------+ | department_id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(255) | YES | | NULL | | +---------------+--------------+------+-----+---------+----------------+
De la tabla original, debemos hacer las siguientes transformaciones:
- El id se transforma en employee_id y el tipo de dato cambia ligeramente
- El Name se seàra en dos, first_name y last_name
- El campo Dept se necesita sacar fuera a una tabla de búsqueda y se crea el department_id en esta tabla
- El campo Join_date tiene que cambiar su tipo de dato
- Y los campos Email and Comments permanecen inmutables
Convertir el tipo de dato - Employee ID
Es bastante sencillo, simplemente se añade una nueva columna dentro de la tabla Employees y luego se cargan los datos
alter table Employees add column employee_id int; update Employees set employee_id = id;
Separando Strings - El campo Name
Por suerte, los datos que se almacenan en este campo tienen el nombre y el apellido separados por un espacio. Para separar el nombre y el apellido empezaremos con la siguiente sentencia select:
select Name , substring_index(Name,' ',1) as first_name, substring_index(substring_index(Name,' ',2),' ',-1) as last_name from Employees limit 10; +--------------------+------------+-------------+ | Name | first_name | last_name | +--------------------+------------+-------------+ | Anika Lott | Anika | Lott | | Jenette Gibson | Jenette | Gibson | | Lacy Barton | Lacy | Barton | | Noelani Peck | Noelani | Peck | | Lacy Prince | Lacy | Prince | | Glenna Rowland | Glenna | Rowland | | Isabella Hall | Isabella | Hall | | Hadley Fitzpatrick | Hadley | Fitzpatrick | | Elaine Steele | Elaine | Steele | | Kathleen Davidson | Kathleen | Davidson | +--------------------+------------+-------------+
Ahora nos toca modificar la tabla con los nuevos campos e ir poniendo los datos en su correspondiente lugar:
alter table Employees add column first_name varchar(50); alter table Employees add column last_name varchar(50); update Employees set first_name = substring_index(Name,' ',1), last_name = substring_index(substring_index(Name,' ',2),' ',-1)
Del tipo string para las Fechas al tipo Fecha real
Tenemos una columna llamada join_date en nuestra tabla Employee, por lo que crearemos otra columna con otro nombre:
alter table Employees add column join_date_formatted datetime;
De nuevo, una sentencia Select primero, y a continuación la conversión con una sentencia Update:
select join_date , str_to_date(join_date, '%m-%d-%y') as machine_date from Employees limit 10; update Employees set join_date_formatted = str_to_date(join_date, '%m-%d-%y');
MySQL por defecto pondrá la hora a la medianoche del día seleccionado.
Datos enumerados (o casi enumerados) pasan a la tabla de búsqueda
En un principio, vamos a echar un vistazo a los datos que contiene la tabla de origen:
select distinct Dept from Employees; +--------------------------+ | Dept | +--------------------------+ | Human Resources | | Research and Development | | Accounts | | Finances | | Quality Assurance | | Accounting | | Tech Support | | LegalPayroll | | QA | | Sales and Marketing | | Customer Service | | Advertising | +--------------------------+
Observando los datos, hay unas cuantas cosas que tenemos que tener en cuenta, como por ejemplo “LegalPayroll” debería ser “Legal and Payroll”, y tenemos también “Accounts” y “Accounting” además de “Quality Assurance” y “QA”, que son de hecho el mismo departamente. Como el conjunto de datos es realmente pequeño, vamos a pasar los datos manualmente a la tabla de búsqueda, junto con un índice.
+---------------+--------------------------+ | department_id | name | +---------------+--------------------------+ | 1 | Human Resources | | 2 | Research and Development | | 3 | Accounting | | 4 | Finances | | 5 | Quality Assurance | | 6 | Tech Support | | 7 | Legal and Payroll | | 8 | Sales and Marketing | | 9 | Customer Service | | 10 | Advertising | +---------------+--------------------------+
A continuación, creamos la nueva columna en la vieja tabla de Employees y vamos dandole las entradas “fáciles”.
alter table Employees add column department_id int;
update Employees set department_id = (select department.department_id
from department where Employees.Dept = department.name);
Echando un vistazo a los registros que no se actualizaron, nos queda todavía cosas para corregir:
select Name, Dept from Employees where department_id is null; +--------------------+--------------+ | Name | Dept | +--------------------+--------------+ | Lacy Barton | Accounts | | Isabella Hall | Accounts | | Kathleen Davidson | Accounts | | Chiquita Rodriguez | LegalPayroll | | Emi Ochoa | LegalPayroll | | Wanda Sullivan | QA | | Yen Wilder | QA | | Echo Hopkins | LegalPayroll | | Germane Stout | Accounts | | Evangeline Oconnor | Accounts | | Hadley Ochoa | QA | | Carly Riley | LegalPayroll | | Destiny Brock | QA | | Mariam Baldwin | Accounts | +--------------------+--------------+ update Employees set department_id = 3 where Dept = "Accounts"; update Employees set department_id = 5 where Dept = "QA"; update Employees set department_id = 7 where Dept = "LegalPayroll";
El paso final
Finalmente insertamos en la tabla employee con todos los nuevos datos preparados y formateados:
insert into employee select id, first_name, last_name, department_id, join_date_formatted, Email, Comments from Employees;
Artículo original: DevZone
Podcast: PHP Abstract
Tags: base de datos, datos, migracion, sql
General & Linux 01 May 2008 08:24 pm
¿Alguien dijo crisis?
Menuda sorpresa me he llevado cuando me ha llegado un correo de un portal de búsqueda de empleo y he visto los dos puestos que más dinero ofrecían…
Así es, más de 90.000€ brutos anuales por ser dependiente, con una experiencia mínima de un año y con sólo el graduado escolar. Lo normal es decir, nah, es un error, serían 9.000€ brutos en lugar de 90.000€, pues bien, la siguiente oferta es:
Mismo puesto, misma experiencia y sueldo entre 72.000€ y 90.000€, eso si, esto es de otra empresa, por lo que creo que se puede descartar lo del error.
Espero que este mensaje ayude a aquellos niños indecisos que no tengan clara su vocación de futuro, yo como muchos ya no podemos cambiar, pero tú sí puedes ![]()


