martes, 14 de julio de 2015
JAVASCRIPT: Crear una Agenda de Direcciones con COOKIES
<SCRIPT LANGUAGE="JavaScript">
var arrRecords = new Array();
var arrCookie = new Array();
var recCount = 0;
var strRecord="";
expireDate = new Date;
expireDate.setDate(expireDate.getDate()+365);
function cookieVal(cookieName) {
thisCookie = document.cookie.split("; ")
for (i = 0; i < thisCookie.length; i++) {
if (cookieName == thisCookie[i].split("=")[0]) {
return thisCookie[i].split("=")[1];
}
}
return 0;
}
function loadCookie() {
if(document.cookie != "") {
if(cookieVal("Records") != ""){
arrRecords = cookieVal("Records").split(",");
}
currentRecord();
}
}
function setRec() {
strRecord = "";
for(i = 0; i < document.frm1.elements.length; i++) {
strRecord = strRecord + document.frm1.elements[i].value + ":";
}
arrRecords[recCount] = strRecord;
document.frm2.add.value = " NEW ";
document.cookie = "Records="+arrRecords+";expires=" + expireDate.toGMTString();
}
function newRec() {
switch (document.frm2.add.value) {
case " NEW " :
varTemp = recCount;
for(i = 0; i < document.frm1.elements.length; i++) {
document.frm1.elements[i].value = ""
}
recCount = arrRecords.length;
document.frm2.add.value = "CANCEL";
break;
case "CANCEL" :
recCount = varTemp;
document.frm2.add.value = " NEW ";
currentRecord();
break;
}
}
function countRecords() {
document.frm2.actual.value = "Record " + (recCount+1)+"; "+arrRecords.length+" saved records";
}
function delRec() {
arrRecords.splice(recCount,1);
navigate("previous");
setRec();
}
function currentRecord() {
if (arrRecords.length != "") {
strRecord = arrRecords[recCount];
currRecord = strRecord.split(":");
for(i = 0; i < document.frm1.elements.length; i++) {
document.frm1.elements[i].value = currRecord[i];
}
}
}
function navigate(control) {
switch (control) {
case "first" :
recCount = 0;
currentRecord();
document.frm2.add.value = " NEW ";
break;
case "last" :
recCount = arrRecords.length - 1;
currentRecord();
document.frm2.add.value = " NEW ";
break;
case "next" :
if (recCount < arrRecords.length - 1) {
recCount = recCount + 1;
currentRecord();
document.frm2.add.value = " NEW ";
}
break;
case "previous" :
if (recCount > 0) {
recCount = recCount - 1;
currentRecord();
}
document.frm2.add.value = " NEW ";
break;
default:
}
}
function pageLoad(){
if (!Array.prototype.splice) {
function array_splice(ind,cnt) {
if (arguments.length == 0) return ind;
if (typeof ind != "number") ind = 0;
if (ind < 0) ind = Math.max(0,this.length + ind);
if (ind > this.length) {
if (arguments.length > 2) ind = this.length;
else return [];
}
if (arguments.length < 2) cnt = this.length-ind;
cnt = (typeof cnt == "number") ? Math.max(0,cnt) : 0;
removeArray = this.slice(ind,ind+cnt);
endArray = this.slice(ind+cnt);
this.length = ind;
for (var i = 2; i < arguments.length; i++) {
this[this.length] = arguments[i];
}
for(var i = 0; i < endArray.length; i++) {
this[this.length] = endArray[i];
}
return removeArray;
}
Array.prototype.splice = array_splice;
}
recCount = 0;
loadCookie();
countRecords();
}
</script>
Colocar dentro del Tag <BODY> ejemplo <Body onLoad="pageLoad()">
Colocar entre el <BODY> y </BODY>
<center>
<form name="frm1">
<table align="center" resize="none" border="0">
<tr>
<td align="right">Name:</td>
<td colspan="5"><input type="box" name="name" size="49"></td>
</tr>
<tr>
<td align="right">Address:</td><td colspan="5"><input type="box" name="address" size="49"></td></tr>
<td align="right">Address 2:</td><td colspan="5" align="left"><input type="box" name="address2" size="49"></td>
</tr>
<tr>
<td align="right">City:</td>
<td><input type="box" name="city" size="15"></td>
<td>State:</td><td><input type="box" name="state" size="15"></td>
<td>Zip:</td><td><input type="box" size="6" name="zip"></td>
</tr>
<tr>
<td align="right">Phone:</td>
<td align="left"><input type="box" name="phone" size="15"></td>
<td align="right">Fax:</td><td align="left"><input type="box" name="fax" size="15"></td>
</tr>
<tr>
<td align="right">Web Page:<td colspan="5" align="left"><input type="box" name="address" size="49"></td>
</tr>
<tr>
<td align="right">E-Mail:<td colspan="5" align="left"><input type="box" name="email" size="49"></td>
</tr>
<tr>
<td align="right" valign="top">Comments:</td>
<td colspan="5" align="left"><input type="box" name="comment1" size="49"><br>
<input type="box" name="comment2" size="49"><br>
<input type="box" name="comment3" size="49"><br>
<input type="box" name="comment4" size="49"><br>
<input type="box" name="comment5" size="49">
</td>
</tr>
</table>
</form>
<form name="frm2">
<table align="center" border="1" resize="none">
<tr>
<td align="center">
<input type="button" name="first" value="|<< " onClick="navigate('first');countRecords()">
<input type="button" name="previous" value=" < " onClick="navigate('previous');countRecords()">
<input type="button" name="next" value=" > " onClick="navigate('next');countRecords()">
<input type="button" name="last" value=" >>|" onClick="navigate('last');countRecords()">
<input type="box" name="actual" size=30>
</td>
</tr>
<tr>
<td align="center">
<input type="button" name="add" value=" NEW " onClick="newRec();countRecords()">
<input type="button" name="set" value="SAVE RECORD" onClick="setRec();countRecords()">
<input type="button" name="del" value="Delete" onClick="delRec();countRecords()">
</td>
</tr>
</table>
</form>
</center>
JAVASCRIPT: Mostrar la Última Visita de una Persona en tu Web
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var expDays = 30;
var exp = new Date();
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
function Who(info){
var VisitorName = GetCookie('VisitorName')
if (VisitorName == null) {
VisitorName = prompt("Quién eres tú ?");
SetCookie ('VisitorName', VisitorName, exp);
}
return VisitorName;
}
function When(info){
var rightNow = new Date()
var WWHTime = 0;
WWHTime = GetCookie('WWhenH')
WWHTime = WWHTime * 1
var lastHereFormatting = new Date(WWHTime);
var intLastVisit = (lastHereFormatting.getYear() * 10000)+(lastHereFormatting.getMonth() * 100) + lastHereFormatting.getDate()
var lastHereInDateFormat = "" + lastHereFormatting;
var dayOfWeek = lastHereInDateFormat.substring(0,3)
var dateMonth = lastHereInDateFormat.substring(4,11)
var timeOfDay = lastHereInDateFormat.substring(11,16)
var year = lastHereInDateFormat.substring(23,25)
var WWHText = dayOfWeek + ", " + dateMonth + " at " + timeOfDay
SetCookie ("WWhenH", rightNow.getTime(), exp)
return WWHText
}
function Count(info){
var WWHCount = GetCookie('WWHCount')
if (WWHCount == null) {
WWHCount = 0;
}
else{
WWHCount++;
}
SetCookie ('WWHCount', WWHCount, exp);
return WWHCount;
}
function set(){
VisitorName = prompt("Quién eres tú ?");
SetCookie ('VisitorName', VisitorName, exp);
SetCookie ('WWHCount', 0, exp);
SetCookie ('WWhenH', 0, exp);
}
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
function DeleteCookie (name) {
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
// End -->
</SCRIPT>
ENTRE EL <BODY> Y </BODY>
<SCRIPT LANGUAGE="JavaScript">
document.write("Hola " + Who() + ". Tú estuviste aquí " + Count() + " veces. La última vez fué: " + When() +".");
</SCRIPT>
HTML: Buen Script si quieres poner un Color de Fondo Degradado a tu Página
Código:
style="filter:progid:DXImageTransform.Microsoft.Gradient( endColorstr='#C0CFE2', startColorstr='#FFFFFF', gradientType='0');"
Ejemplo:
<body style="filter:progid:DXImageTransform.Microsoft.Gradient( endColorstr='#C0CFE2', startColorstr='#FFFFFF', gradientType='0');" >
Calculadora en Consola C# (C Sharp)
{
class examen
{
static void Main(string[] args)
{
Console.Title = "Calculadora";
Console.SetCursorPosition(55, 5);
Console.Write(" : Negro");
Console.SetCursorPosition(55, 6);
Console.Write(" : Blanco");
Console.SetCursorPosition(55, 7);
Console.Write(" : Amarillo");
Console.SetCursorPosition(55, 8);
Console.Write(" : Rojo");
Console.SetCursorPosition(55, 9);
Console.Write(" : Verde");
fondo();
Console.SetCursorPosition(55, 20);
Console.Write("/1/ : Muy pequeño");
Console.SetCursorPosition(55, 21);
Console.Write("/2/ : Pequeño");
Console.SetCursorPosition(55, 22);
Console.Write("/3/ : Normal");
Console.SetCursorPosition(55, 23);
Console.Write("/4/ : Mediano");
Console.SetCursorPosition(55, 24);
Console.Write("/5/ : Grande");
tamaño();
Console.SetCursorPosition(3, 2);
int a = ingreso();
Console.SetCursorPosition(3, 3);
int b = ingreso();
Console.SetCursorPosition(55, 2);
Console.Write("(+) : suma");
Console.SetCursorPosition(55, 4);
Console.Write("(-) : resta");
Console.SetCursorPosition(55, 6);
Console.Write("(*) : multiplicacion");
Console.SetCursorPosition(55, 8);
Console.Write("(/) : division");
Console.SetCursorPosition(3, 5);
Console.Write("===========================");
Console.SetCursorPosition(3, 11);
Console.Write("===========================");
Console.SetCursorPosition(3,6);
Console.Write("operacion");
operaciones(a, b);
Console.ReadKey();
}
static int ingreso()
{
Console.Write("Ingrese el numero--> ");
int n = Int16.Parse(Console.ReadLine());
return n;
}
static void operaciones(int x, int y)
{
Console.SetCursorPosition(25, 6);
string z = Console.ReadLine();
switch (z)
{
case "+":
Console.SetCursorPosition(25, 9);
Console.Write("{0}", x + y);
resultado();
break;
case "-":
Console.SetCursorPosition(25, 9);
Console.Write("{0}", x - y);
resultado();
break;
case "*":
Console.SetCursorPosition(25, 9);
Console.Write("{0}", x * y);
resultado();
break;
case "/":
Console.SetCursorPosition(25, 9);
Console.Write("{0:0.00}", x / y);
resultado();
break;
default:
Console.Write("Error");
break;
}
}
static void fondo()
{
Console.SetCursorPosition(3, 5);
Console.Write("¡CAMBIA EL COLOR DE FONDO!^^----> ");
char f = char.Parse(Console.ReadLine());
switch (f)
{
case 'N':
Console.BackgroundColor = ConsoleColor.Black;
Console.Clear();
break;
case 'B':
Console.BackgroundColor = ConsoleColor.White;
Console.Clear();
break;
case 'A':
Console.BackgroundColor = ConsoleColor.Yellow;
Console.Clear();
break;
case 'R':
Console.BackgroundColor = ConsoleColor.Red;
Console.Clear();
break;
case 'V':
Console.BackgroundColor = ConsoleColor.DarkGreen;
Console.Clear();
break;
default:
Console.Write("Error");
break;
}
}
static void tamaño()
{
Console.SetCursorPosition(3, 18);
Console.Write("¡VAMOS..AGRANDA O ACHICA!^^----> ");
string t = Console.ReadLine();
switch (t)
{
case "1":
Console.SetWindowSize(5,10);
Console.Clear();
break;
case "2":
Console.SetWindowSize(10,20);
Console.Clear();
break;
case "3":
Console.SetWindowSize(15,25);
Console.Clear();
break;
case "4":
Console.SetWindowSize(25,35);
Console.Clear();
break;
case "5":
Console.SetWindowSize(50,59);
Console.Clear();
break;
default:
Console.Write("Error");
break;
}
}
static void resultado()
{
Console.SetCursorPosition(3, 9);
Console.Write("RESULTADO");
int res = Int16.Parse(Console.ReadLine());
}
}
}
lunes, 13 de julio de 2015
C# - Calculadora sencilla usando Metodos
using System.Collections.Generic;
using System.Linq;
using System.Text;
using c = System.Console;
/* Para más códigos visita www.zvipuapica.blogspot.com , KEHACKSOFT */
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
c.Title="Calculadora Sencilla Usando Metodos";
string s=signo();
int n1=ingreso();/*Igualamos el valor que toma
el método Ingreso() y lo asignamos a Una variable n1*/
int n2 = ingreso();/*Igualamos el valor que toma
el método Ingreso() y lo asignamos a Una variable n2*/
operacion(n1,n2,s);
denuevo();
c.ReadKey();
}
static int ingreso()
{
c.WriteLine("Ingresa un Numero");
int num = int.Parse(c.ReadLine());
return num;/*devolvemos el valor leido desde consola al metodo.
*/
}
static string signo()
{
c.WriteLine("Ingresa Una Operacion: + - * /");
string d=c.ReadLine();
return d;
}
static void operacion(int a, int b, string t)
{
switch (t)
{
case "+":
c.WriteLine("El resultado es: {0}", a + b);
break;
case "-":
c.WriteLine("El resultado es: {0}", a - b);
break;
case "*":
c.WriteLine("El resultado es: {0}", a * b);
break;
case "/":
c.WriteLine("El resultado es: {0}", a / b);
break;
default:
c.WriteLine(" ");
c.WriteLine(" ");
c.Write("¡¡¡Error!!!");
c.WriteLine(" ");
c.WriteLine(" ");
break;
}
}
static void denuevo()
{
c.WriteLine(" ");
c.WriteLine(" ");
c.WriteLine("Desea Hacer Otra Operacion: 1=Si 2=No");
string rsp=c.ReadLine();
if (rsp == "1")
{
Main();
}
else if (rsp != "1" && rsp != "2")
{
c.WriteLine(" ");
c.WriteLine(" ");
c.WriteLine("¡¡Error Introdusca Una opcion valida..!!");
denuevo();
}
else
{
c.WriteLine(" ");
c.WriteLine(" ");
c.WriteLine("Gracias por Usar esta calculadora");
}
}
}
}
C# - Registro de Notas Usando Arrays
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*Para más códigos visita www.zvipuapica.blogspot.com, KEHACKSOFT */
/*using c = System.Console;*/
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.Title="Registrando Notas…!";
Console.BackgroundColor=ConsoleColor.Red;
Console.ForegroundColor=ConsoleColor.Yellow;
Console.Clear();
int cont=0; string s=" "; string p=" ";
inicio(ref p, ref s, ref cont);
int[] num=new int[cont];
string[] alumnos=new string[cont];
float[]parcial=new float[cont];
float[]pfinal=new float[cont];
float[]promedio=new float[cont];
string[] estado=new string[cont];
ingreso(ref alumnos, ref parcial, ref pfinal);
promov(ref promedio, ref estado, ref parcial, ref pfinal, ref num);
Console.Clear();
salida(p,s,num,alumnos,parcial,pfinal,promedio,estado);
Console.ReadKey();
}
static void inicio(ref string nd, ref string nc, ref int na)
{
Console.WriteLine("Nombre del Docente");
nd=Console.ReadLine();
Console.WriteLine("Nombre de la Asignatura");
nc=Console.ReadLine();
Console.WriteLine("Número de Alumnos");
na=Int16.Parse(Console.ReadLine());
Console.Clear();
}
static void ingreso(ref string[] h, ref float[]a, ref float[]r)
{
for (int i = 0; i < a.Length; i++)
{
Console.WriteLine("Nombre del Alumno");
h[i] =Console.ReadLine();
Console.WriteLine("Nota del Parcial");
a[i] =float.Parse(Console.ReadLine());
Console.WriteLine("Nota del Parcial Final");
r[i] =float.Parse(Console.ReadLine());
Console.Clear();
}
}
static void promov(ref float[] z, ref string[] x, ref float[] c, ref float[]v, ref int[]b)
{
for (int i=0; i {
b[i]=i+1;
}
for(int i=0; i
z[i]=(c[i]+v[i])/2;
for (int k=0; k
if (z[k]<10 .5="" br=""> x[k]="Desaprobado";
else
x[k]="Aprobado";
}
}
}
static void salida(string a, string s, int[] d, string[] f, float[] g, float[] h, float[] j, string[] k)
{
Console.WriteLine("Nombre del Docente: {0}", a);
Console.WriteLine("Nombre del curso: {0}", s);
Console.SetCursorPosition(0,3);
Console.Write("Numero");
Console.SetCursorPosition(7,3);
Console.Write("Alumno");
Console.SetCursorPosition(32,3);
Console.Write("Parcial");
Console.SetCursorPosition(40,3);
Console.Write("Parcial-Final");
Console.SetCursorPosition(54,3);
Console.Write("Promedio");
Console.SetCursorPosition(65,3);
Console.Write("Estado");
for (int i=0; i
Console.SetCursorPosition(1, i+5);
Console.WriteLine(d[i]);
Console.SetCursorPosition(12, i + 5);
Console.WriteLine(f[i]);
Console.SetCursorPosition(35, i + 5);
Console.WriteLine(g[i]);
Console.SetCursorPosition(46, i + 5);
Console.WriteLine(h[i]);
Console.SetCursorPosition(56, i + 5);
Console.WriteLine(j[i]);
Console.SetCursorPosition(65, i + 5);
Console.WriteLine(k[i]);
}
}
}
}
miércoles, 15 de septiembre de 2010
JAVA Netbeans: Area y Perimetro de un Triangulo Isoseles
-->
martes, 14 de septiembre de 2010
JAVA Netbeans: Que tipo de triangulo es solo x sus Lados? y calcular area y perimetro del triangulo Isoseles
He creado 5 clases están enumeradas...!
1.- Work (Main)
package trabajo;
/**
*
* @author KEHACKSOFT
*/
public class work {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ingresodatos ing=new ingresodatos();
ing.ingreso();
triangulo_isoseles obj=new triangulo_isoseles(ing.getladoA(),ing.getladoB(),ing.getladoC());
obj.triangulo();
}
}
2.- IngresaDatos
package trabajo;
import javax.swing.JOptionPane;
/**
*
* @author KEHACKSOFT
*/
public class ingresodatos {
int a,b,c;
void ingreso()
{
c=Integer.parseInt(JOptionPane.showInputDialog("Ingresa LADO C (BASE): ",""));
a=Integer.parseInt(JOptionPane.showInputDialog("Ingresa LADO A: ",""));
b=Integer.parseInt(JOptionPane.showInputDialog("Ingresa LADO B: ",""));
}
public int getladoA()
{
return a;
}
public int getladoB()
{
return b;
}
public int getladoC()
{
return c;
}
}
3.- triangulo_isoseles
package trabajo;
import javax.swing.JOptionPane;
/**
*
* @author kEHCKSOFT
*/
public class triangulo_isoseles {
//public int catetoA,catetoB,
public double a, b, c; // tamaño de los lados
public double A, B, C; // angulos
public double suma;
//MI CONSTRUCTOR
triangulo_isoseles(int LadoA,int LadoB,int LadoC)
{
a=LadoA;
b=LadoB;
c=LadoC;
}
void triangulo()
{
A = Math.acos( (b * b + c * c - a * a) / (2 * b * c)) * 180 / Math.PI;
B = Math.acos( (a * a + c * c - b * b) / (2 * a * c)) * 180 / Math.PI;
C = Math.acos( (a * a + b * b - c * c) / (2 * a * b)) * 180 / Math.PI;
suma = A + B + C;
JOptionPane.showMessageDialog(null,"Los lados son = [ " + a + ", " + b + ", " +c + "]\n "
+ "Los angulos son = [ " + A + ", " + B + ", " +C + "]\n"
+"La suma de sus angulos es = " + suma);
if (A != B && B != C && C != A)
JOptionPane.showMessageDialog(null,"Es un triangulo escaleno");
}
}
}
}
}
}
4.- Area
package trabajo;
import javax.swing.JOptionPane;
/**
*
* @author KEHACKSOFT
*/
public class area {
double area1,base,altura,basetriangulorectangulo,lado;
area(double a, double c)
{
lado=a;
base=c;
}
void trianguloisoseles()
{
basetriangulorectangulo=base/2;//La altura de un triángulo isósceles divide a la base en dos segmentos iguales.
altura=Math.sqrt(Math.pow(lado, 2)-Math.pow(basetriangulorectangulo, 2));
area1=(base*altura)/2;
JOptionPane.showMessageDialog(null,"El area del Triangulo isoseles es: "+area1);
}
}
5.- Perimetro
package trabajo;
import javax.swing.JOptionPane;
/**
*
* @author KEHACKSOFT
*/
public class perimetro {
double lado,base,perimetro1;
perimetro(double a, double c)
{
lado=a;
base=c;
}
void isoseles()
{
perimetro1=(2*lado)+base;
JOptionPane.showMessageDialog(null,"El perímetro del triangulo Isoseles es..."+perimetro1);
}
}
lunes, 19 de julio de 2010
Google adquiere Metaweb, un paso más hacia la Web semántica
Google cada vez está más cerca de ofrecer “resultados de búsqueda inteligentes”. El gigante de los buscadores ha anunciado una importante adquisición dentro del espacio de Web semántica. Metaweb, los creadores de Freebase y líderes de Web semántica, se han unido a Google.
La web semántica consiste en estructurar datos de manera que seres humanos y ordenadores puedan interpretar más fácilmente la red y descubrir información relevante con diversos fines.
Freebase es una base de datos enorme abierta-estructurada sobre casi cualquier cosa, incluyendo libros, películas y música. De hecho, Google ya tiene una relación con Freebase y extrae su información para ofrecer resultados de búsqueda inteligentes dentro de Google Noticias. Con la adquisición de Metaweb, Google ahora puede aprovechar las herramientas y los datos de la empresa más aún, especialmente dentro de los resultados de búsqueda básicos.
“Se trata de un enorme éxito para la Web semántica”, nos ha dicho Alex Iskold, fundador y CEO de AdaptiveBlue, la empresa de tecnología semántica responsable de GetGlue.com. “No podría ser más importante porque, realmente, es la empresa más grande de la red comprando al nombre más importante dentro del espacio de Web semántica.”
Google ya ofrece algunos resultados de búsqueda inteligentes, incluyendo matemática básica, resultados deportivos y cumpleaños de celebridades, por mencionar unos cuantos. Sin embargo, en su mayor parte, Google simplemente ofrece enlaces a páginas Web; el saber más sobre lo que hay detrás de esos enlaces podría permitir al gigante de las búsquedas ofrecer resultados mejores y más contextuales. Para tener una mejor idea de lo que podría suceder, podemos echar un vistazo al siguiente vídeo (en inglés).
Microsoft realizó una adquisición similar al comprar Powerset hace dos años. Desde entonces, Bing ha superado a Google a la hora de ofrecer resultados de búsqueda inteligentes, y lleva un tiempo haciendo mella poco a poco en su cuota de mercado. En un intento por evitar que Bing le robe el puesto semántico, Google adoptará la tecnología y los datos de Metaweb.
“¿Qué tal [universidades en la Costa Oeste con cursos por menos de 30.000 dólares] o [actores mayores de 40 años que hayan ganado al menos un Oscar]? Son preguntas difíciles, y hemos adquirido Metaweb porque creemos que trabajando juntos seremos capaces de ofrecer mejores respuestas”, escribe Jack Menzel, director de desarrollo de productos de Google.
Metaweb afirma que Freebase se mantendrá gratuito y abierto, como siempre, y se mejorará gracias a la adquisición por Google. Los datos descargables trimestralmente del servicio ahora se ofrecerán semanalmente, y la empresa espera que con la adquisición, más empresas se animen a contribuir a Freebase.
viernes, 14 de mayo de 2010
jueves, 29 de abril de 2010
GOOGLE LANZA SERVICIO DE MAPAS 3D
martes, 27 de abril de 2010
SE CUMPLEN 5 AÑOS DESDE QUE SE SUBIÓ EL PRIMER VÍDEO A YOUTUBE
El 23 de abril de 2005 se inauguró en internet la plataforma YouTube con un modesto vídeo de 19 segundos llamado 'Me at zoo' ('Yo en el zoológico'). Sólo han pasado cinco años, pero el sitio es, a pesar de su juventud, uno de los más populares y visitados en la Red. La historia de esta empresa tan poderosa comenzó cuando tres compañeros de PayPal, Jawed Karim, Chad Hurley y Steve Chen, decidieron crear un espacio en el que se podría compartir vídeos entre amigos. Registraron entonces el dominio 'http://www.youtube.com/' y luego subieron allí su primera producción, 'Yo en el zoológico', en la que aparecía uno de los creadores hablando sobre elefantes.
Pese a que el vídeo no fue profesional, ni tampoco demasiado interesante, el día en el que apareció en la web supuso un antes y un después en la historia del desarrollo de internet.
En julio de 2006, la empresa YouTube anunció que se subían 65.000 vídeos por día. Gracias a la facilidad con la que cualquier usuario podía difundir sus vídeos personales en internet, el sitio se convirtió en la 'televisión planetaria' hecha por los propios televidentes. De ahí en adelante, la trayectoria de YouTube sólo se podría describir como un cúmulo de cifras exageradas.
En octubre de 2006 la empresa Google anunció la compra del invento del trío de genios por 1.650 millones de dólares. Hoy en día, YouTube es el tercer sitio web más visitado, después de Google y Facebook. El canal cuenta con más de 48 millones de usuarios, número que no incluye a los internautas que usan los servicios sin tener cuenta propia. Se estima, además, que cada 7 minutos se sube a la página un total de 24 horas de contenido audiovisual. Lo más popular de Youtube 'Yo en el zoológico' no consiguió ser el vídeo más visto del sitio. Este privilegio lo tiene la cantante estadounidense Lady Gaga, con su 'Bad Romance', que cuenta con más de 190 millones de reproducciones. Le sigue la grabación 'Evolution of dance', el fabuloso baile del comediante Judson Laipply que en 6 minutos hace un breve recorrido por la historia del rock y el pop.
Algunos usuarios de YouTube se hicieron mundialmente famosos sólo con subir sus vídeos. Así le pasó al pequeño Edgar, un chico de Monterrey, México. Sus primos y su tío lo grabaron cayéndose en un río sucio. La producción casera, denominada 'La caída de Edgar' convirtió al protagonista en el chico más popular de Latinoamérica. Edgar participó en distintos 'shows' y comerciales televisivos e inspiró a centenares de personas para crear nuevos vídeos y dibujos animados (algunos con un final alternativo, en el cual Edgar no se cae) en base a la grabación original de 40 segundos. Uno de los vídeos hispanos más impactantes de YouTube fue grabado por una mujer peruana de 60 años. Judith Bustos, más conocida como 'la tigresa del oriente', se hizo famosa gracias a su música popular y a su aspecto extravagante. Otra de las verdaderas sensaciones del momento en la plataforma es una canción sin letra compuesta en la época de la Unión Soviética. El veterano cantante Eduard Khil, que la interpretó hace casi medio siglo, se ha erigido en un momento como la estrella de la Red. C
asi cinco millones de personas han visto ya el vídeo de esta canción en YouTube. Los usuarios de Asia también han hecho un importante aporte al contenido de la página: el vídeo de dos jóvenes chinos cantando una canción del grupo norteamericano Backstreet Boys fue reproducido miles de veces. Críticas a YouTube En varias ocasiones el sitio fue criticado por hacer caso omiso a los derechos de autor.
A pesar de ser advertidos por los administradores de la web, los usuarios siguen subiendo partes de películas, programas televisivos y vídeos musicales sin autorización de sus autores. El portal ya recibió varias demandas judiciales por haber permitido que se publicaran contenidos protegidos por los derechos de autor. Además, la página se convirtió en un espacio libre para la difusión de vídeos violentos y pornográficos. Para resolver este problema, en febrero de 2010 YouTube lanzó una nueva opción que permite bloquear semejantes grabaciones. Popular, pero poco rentable Parece extraño pero, pese a toda su popularidad, YouTube no produce ganancias a su propietario.
Google confirmó que el negocio que le costó más de 1.500 millones de dólares no es rentable. Este fenómeno se debe a los altos costes operativos que supone el mantenimiento de la plataforma. Los gastos crecen a medida que aumenta el número de usuarios que visitan la página. Por el momento se estima que una persona tendría que pasar frente al monitor al menos 1.700 años para llegar a ver todo el contenido de YouTube.
miércoles, 21 de abril de 2010
VÍDEOS HECHOS CON LETRAS... SÓLO EN YOUTUBE
El 1 de abril Youtube sorprendió a sus usuarios con una nueva opción para ver los vídeos, llamada TEXTp. A partir de ahora, los usuarios pueden elegir entre una imagen común y una hecha de centenares de letras y cifras. Esta teconología, según YouTube, ahorrará un dólar por minuto. Los creadores afirman que cada día se suben más vídeos a la página y la cantidad de grabaciones aumentó aún más con la introducción de los modos 1080p y HD. Esto significa considerables costos para la empresa. "Por eso, para controlar los gastos, decidimos que el 1 de abril será un día perfecto para dar un paso importante y ofrecer una nueva experiencia: opción sólo texto o tEXTp”, informa el blog oficial de la página.
"TEXTp es el resultado de meses de esfuerzos de nuestro ingenieros. Cambiando imágenes por una serie de letras y números, bajamos las tarifas para los vídeos… y ni hablar de que con esta manera ayudamos a subir el nivel de alfabetismo".
Para disfrutar de la nueva opción y ahorrar unos dólares para la página web, basta con tener la última versión del reproductor Flash. Nada más tiene que eligir "TEXTp" en el menú que aparece debajo de la imagen.
Los creadores señalan que mirando los vídeos en texto, todos los usuarios juntos podrían recaudar miles de millones de dólares para YouTube. "Así que si Youtube le importa, use TEXTp", afirman.
LA WEB DEL FUTURO, SEGÚN GOOGLE
El CEO de Google, Eric Schmidt, pronostica grandes cambios en la Red en los próximos cinco años según expresó en el Gartner Symposium/ITxpo Orlando 2009 en Salt Lake City. Entre sus pronósticos se cuentan una internet de alta velocidad, la televisión se volverá parte de la Red y el chino será el idioma dominante.
Dirigiéndose a unos 900 ejecutivos de la tecnología, Schmidt señaló —citando la Ley de Moor— que la capacidad de las computadoras será mucho más poderosa que las actuales. Esta ley señala que el número de transistores en un circuito integrado se duplica aproximadamente cada dos años.
Con una velocidad de conexión a internet de más de 100 Mbps se eliminarán las diferencias existentes en la distribución de la televisión, la radio y la Red, dijo el gerente.
También expresó que la presencia de las capacidades multimedias aumentará en la Red durante estos años. “YouTube ya genera algunas ganancias por lo que esperamos que el desarrollo sea exponencial”, señaló.
La información en tiempo real, como la que se ve en las redes sociales Twitter y Facebook, se utilizará extensivamente en cualquier empresa.
Además, Schmidt prevé que disminuirá el impacto de las fuentes tradicionales de información puesto que los usuarios prestarán más atención a las informaciones generada por sus propios pares.
GOOGLE CREA UN MUSEO VIRTUAL DE LAS ANTIGÜEDADES DE IRAK
El actual territorio del Estado de Irak antes era conocido como Mesopotamia, "la tierra entre los ríos", considerada por muchos como la “cuna de las civilizaciones”. El Museo Nacional de Irak posee una de las más ricas colecciones del mundo en lo que se refiere a las antigüedades de su legado histórico
Sin embargo, y debido a razones de seguridad, las antiguas muestras de las culturas babilónica, asiria y sumeria, ahora están fuera del alcance del público tras la irrupción estadounidense en la Segunda Guerra del Golfo.
Tropas estadounidenses y británicas invadieron a ese país en 2003 tras acusársele de mantener vínculos con la red Al-Qaeda y de poseer armas de destrucción masiva. Las denuncias nunca fueron probadas de manera convincente, sin embargo, el país se vio sumergido en disturbios y conflictos que culminaron en la ejecución de su presidente Saddam Hussein.
Hasta el momento Irak sigue ocupado por fuerzas estadounidenses.
Los empleados del motor de búsqueda web Google han realizado más de 14.000 fotografías de estos objetos, fotografías que estarán disponibles en la Red a partir de principios del año 2010.
GOOGLE ENTREGÓ DOS MILLONES DE DÓLARES A WIKIPEDIA
Google entregó una donación de 2 millones de dólares a la fundación Wikimedia, aquella que dirige el proyecto de la enciclopedia digital Wikipedia. Este dinero permitirá financiar sus operaciones corrientes e invertir en infraestructura.
Para el período 2009–2010 Wikimedia necesitó unos 9,4 millones de dólares para cubrir su presupuesto. Para eso inició una campaña de captación de fondos que tuvo mucho éxito: fue la más lucrativa en la historia de la fundación al lograr recaudar unos 8 millones de dólares.
"Wikipedia es uno de los grandes triunfos de internet", afirmó uno de los cofundadores de Google, Serguei Brin. "Ese vasto depósito de información generada por la comunidad de usuarios de internet es un recurso de incalculable valor para todos", agregó.
La Fundación Wikimedia es la organización madre de Wikipedia, Wikinoticias, Wikcionario, Wikibooks, Wikiquote, Wikisource, Wikicommons, Wikispecies, Wikiversidad y la ya abandonada Nupedia. Es una organización sin ánimo de lucro basada en San Francisco (costa oeste de Estados Unidos). Funciona con tan solo 35 empleados y sus sitios reciben más de 364 millones de visitantes únicos por mes, lo cual le permite ostentar el título de quinto sitio de internet más visitado del mundo.
El nombre de "Wikimedia" fue acuñado por Sheldon Rampton en una lista de correo (WikiEN-l) en marzo del 2003.
GOOGLE E ITALIA ACUERDAN DIGITALIZAR UN MILLÓN DE LIBROS
Google y el Gobierno de Italia firmaron este miércoles un acuerdo para digitalizar un millón de libros del dominio público italiano, que pertenecen a las colecciones de las bibliotecas nacionales de Roma y Florencia. Los acuerdos incluyen libros científicos y políticos raros como las primeras ediciones de obras de Kepler o Galileo Galilei.
Se trata del primer acuerdo del gigante de Internet con un Ministerio de Cultura, así lo destacaron los representantes de Google.
Según el funcionario del Ministerio de Cultura italiano, Mario Resca, este proyecto permitirá “preservar para siempre el contenido de los libros a través de Google Books”. Resca recordó que la inundación de 1966 en Florencia arruinó miles de libros de la biblioteca local, y dijo que digitalizar volúmenes anteriores a 1968 ayudará a divulgar la cultura italiana en todo el mundo.
En un comunicado, Google anunció que se encargará de la digitalización de los textos y que estos serán publicados en Google Books, además señaló que entregará una copia digitalizada de las obras a las bibliotecas “para que sean accesibles a los lectores en otras plataformas”.
Además, el portal web señaló que 285.000 ya han sido catalogados y traducidos por el Servicio Nacional de Bibliotecas (SBN), entre los que figuran obras que datan del siglo XVIII, como tratados científicos y ensayos antiguos de farmacología y herbología.
FOTÓGRAFOS E ILUSTRADORES ESTADOUNIDENSES DEMANDAN A GOOGLE
Fotógrafos e ilustradores estadounidenses demandaron a Google por infringir las leyes de derechos de autor, y exigen la compensación por imágenes que aparecen en libros escaneados por el gigante de Internet en su biblioteca digital.
“Nosotros queremos justicia y compensación por los trabajos de los artistas, que participaron en la creación de los 12 millones de libros que Google, violando las leyes ha logrado escanear hasta el momento”, dice el abogado de la sociedad de la American Society of Media Photographers, Víctor Perlman citado por The New York Times.
La demanda ha sido presentada en un tribunal de Nueva York por la American Society of Media Photographers; el sindicato de artistas gráficos; el Picture Archive Council of America; la asociación North American Nature Photography y la asociación de fotógrafos profesionales de Estados Unidos.
Esta no es la primera demanda que se presenta contra el buscador, en 2005 autores y editores estadounidenses demandaron a la web, argumentando que el proyecto de la biblioteca electrónica ‘Google-Libro‘ provoca pérdidas significativas a sus intereses e infringe los derechos de autor.
En ese litigio las partes llegaron a un acuerdo, que le costó 125 millones de dólares a Google, y las editoriales recibieron el derecho de digitalización y expansión de los libros, acuerdo que actualmente se está analizando.
Los fotógrafos e ilustradores, cuyos intereses no se tomaron en cuenta en aquel proceso, en esta ocasión pusieron la denuncia no sólo en contra del navegador de la web, sino también contra las editoriales que participan con el sitio web en el controvertido proyecto.
PIRATEAN GOOGLE-GMAIL
El daño lo sufrieron tanto los usuarios activos como los que no utilizan el servicio desde hace tiempo, pero la cantidad exacta de buzones pirateados no se conoce. El correo basura fue enviado desde los buzones intervenidos a todos los contactos de las víctimas. Los mensajes contienen referencias a una farmacia web ubicada en la zona .co.cc.
Según Sergéi Golovánov, un analista de la empresa productora de antivirus ‘Laboratorio Kaspersky’:“esta referencia guía a un sitio recientemente registrado (mrapgyan.net), que además no funciona”.
“A todos los usuarios del servicio Gmail les recomendamos comprobar el informe de los últimos usos de su cuenta, cambiar sus contraseñas y no olvidarse de salir de su buzón al terminar el trabajo”, señala el comunicado de la empresa. Se recomienda también actualizar el buscador regularmente y no hacer clic a las referencias sospechosas.