jueves, 11 de septiembre de 2008

¿Comó poner un texto en forma vertical con CSS?

Aca les dejo como poner el texto en forma vetical usando solo HTML y CSS.
Espero les sirva ^_^

Primero definimos los estilos:

.columnaVertical{
background-color:#36648B;
color: #eeeeff;
font-size:11;
font-weight:bold;
text-decoration:none;
height:110px;
width: 15px;
align: center;
vertical-align:bottom
valign:middle;
padding-bottom:10px;
padding-top:10px;
padding-right:5px;
padding-left:5px;
}

.textoVertical{
writing-mode: tb-rl;
}

.Rotar-RigthDown{
filter:flipv fliph;
}

.Rotar-RigthUp{
filter:flipv;
}

.Rotar-LeftDown{
writing-mode: tb-rl;
filter:fliph;
}

.Rotar-LeftUp{
}


Ahora el código:


<table bgcolor="white" width="1000px;" height="150px" style="valign:bottom">
<tr style="vertical-align:bottom">
<td>
<a class="columnaVertical textoVertical Rotar-RigthDown" href="#">
Texto derecha abajo
</a>
</td>
<td>
<a class="columnaVertical textoVertical Rotar-RigthUp" href="#">
Texto derecha arriba
</a>
</td>
<td>
<a class="columnaVertical textoVertical Rotar-LeftDown" href="#">
Texto izquierda abajo
</a>
</td>
<td>
<a class="columnaVertical textoVertical Rotar-LeftUp" href="#">
Texto izquierda arriba
</a>
</td>
<td width="100%">
&nbsp;
</td>
</tr>
</table>

jueves, 28 de agosto de 2008

La historia de las cosas

Vean esto está muy bueno.



Gracias a Lilian por el aporte

miércoles, 27 de agosto de 2008

Microsoft office 2007 + Visio 2007


Nombre: TEU Microsoft Office 2007 SP1
Tamaño: 1,97 GB
Idioma: Español
Soporte Plataforma: Windows XP/Vista
Desarrollador: Demgel
Password: zoom7815




Contiene:
Access 2007 - Communicator 2007 - Excel 2007 - InfoPath 2007 - Outlook 2007
PowerPoint 2007 - Publisher 2007 - Word 2007 - Visio 2007

Links de descarga - MEGAUPLOAD
parte 1 - parte 2 - parte 3 - parte 4 - parte 5 - parte 6 - parte 7

Computer Networks 4th Edition - Tanenbaum


Aca les dejo el link para bajar este clasico libro de redes.
El libro de redes de computación de Tanenbaum en su cuarta edición, viene actualizado con lo ultimo en tecnologias como: broadband wireless, ADSL, Bluetooth, gigabit Ethernet, the Web, the wireless Web, streaming audio, IPsec, AES, quantum cryptography, and more.
Usando ejemplos del mundo real Tanenbaum explica como funcionan las redes desde adentro, desde la capa fisica hasta la capa de aplicacion.

viernes, 22 de agosto de 2008

Don't judge too quickly

Aca les dejo unos videitos muy graciosos pero con una moraleja importante "No juzges a nadie demasiado rápido" (eso si te interesan las moralejas, sino velos solo porque son divertidos ^_^)





Se estas interesado en ver mas publicidades graciosas podes encontrar muchas en http://compubpro.blogspot.com

Y si las propagandas no son lo suficientemente graciosas, si lo serán los comentarios de Marcos (editor del blog).

Star Wars: The Clone Wars


Titulo original: Star Wars: The Clone Wars
País: Estados Unidos
Año: 2008
Género: Animación, Ciencia Ficción
Productora: Lucasfilm Animation
Director: Dave FiloniReparto: Anakin Skywalker, Ahsoka Tano, Obi-Wan Kenobi, Yoda, y muchos más.
Idioma: Español (Audio Latino)
Sinopsis: Entre los Separatistas y la República Galáctica se han desatado las Guerras Clónicas. Cuando el hijo de Jabba el Hutt es raptado por un grupo de renegados, dos caballeros Jedi son enviados a investigar. Anakin Skywalker y Obi-Wan Kenobi parten en busca de respuestas para saber dónde está el hijo del Hutt y quién controla al grupo de renegados. Mientras los Sith tratan de instigar una guerra a tres bandos, Yoda manda a Ahsoka Tano, como padawan de Anakin, para que lo ayude en la propia lucha del joven Skywalker contra el Conde Dooku.

Links de descarga directa MEGAUPLOAD
http://www.megaupload.com/?d=PYXRIORL

miércoles, 20 de agosto de 2008

La momia 3: La tumba del emperador Dragón


Nombre: La momia: La tumba del emperador Dragón
Categoria: TS-SCREENER
Formato: AVI
Idioma: Español Latino
Tamaño: 700MB

Descripción Completa:
La taquillera saga de La Momia cambia completamente de rumbo al desplazarse a Asia para la siguiente entrega de la mágica serie de aventuras, La Momia: La Tumba del Emperador Dragón. Brendan Fraser vuelve a encarnar al explorador Rick O?Connell, que deberá enfrentarse al resucitado emperador Han (Jet Li), en un cuento épico que empieza en las tumbas de la antigua China y acaba en las heladas cimas del Himalaya. En esta nueva aventura, Rick tiene por compañeros a su hijo Alex (el recién llegado Luke Ford), a su esposa Evelyn (Maria Bello) y al hermano de esta, Jonathan (John Hannah). La familia O'Connell deberá detener a una momia que acaba de despertarse de una maldición echada hace 2.000 años antes de que esclavice al mundo entero. Condenados por una bruja traidora (Michelle Yeoh) a permanecer en muerte aparente para la eternidad, el despiadado emperador chino Dragón y sus diez mil guerreros han esperado en su amplia tumba de barro, olvidados de todos, durante cientos de años, cual ejército de terracota. Pero cuando engañan al joven aventurero y arqueólogo Alex O'Connel para que despierte de su sueño eterno al temible gobernante, no le queda más remedio que pedir ayuda a las únicas personas que saben más que él acerca de los no muertos: sus padres. El monarca regresa a la vida con todo su poder y nuestros protagonistas descubren pronto que su afán de dominación no ha hecho más que crecer en todos estos años. Sirviéndose de poderes sobrenaturales inimaginables, el Emperador Momia cruzará el Lejano Oriente con su legión sin que nadie pueda detenerle... a menos que los O'Connell encuentren la forma de hacerlo.

Links de descarga directa:

lunes, 18 de agosto de 2008

Batman: El caballero de la noche


Ficha TecnicaTítulo Original: The Dark KnightTitulo
Traducido: El Caballero Oscuro
País: Hong Kong
Género: AccionDirector: Christopher Nolan
Actores: Christian Bale, Heath Ledger, Morgan Freeman, Michael Caine, Gary Oldman, Aaron Eckhart, Maggie Gyllenhaal, Eric Roberts, Anthony Michael Hall, Nestor Carbonell, Melinda McGraw, Nathan Gamble



Sinopsis: Secuela de "Batman Begins", en la que Batman (Christian Bale) asume más riesgos en su guerra contra el crimen. Con la ayuda del teniente Jim Gordon (Gary Oldman) y el fiscal de distrito Harvey Dent (Aaron Eckhart), Batman se propone desmantelar las organizaciones criminales que infestan las calles de la ciudad. La asociación demuestra ser efectiva, pero pronto se verán atrapados en un reino del caos desatado por una mente criminal en auge conocida por los aterrorizados habitantes de Gotham como Joker (Heath Ledger).




INFORMACION ADICIONAL

Tamaño: 700 MB
Formato: ..::TSHyperGOLD video: 352 x 240 codec: MpgFps: 29,97
Audio: Español Latino

Links de descarga directa (links funcionando):


Para unir los archivos necesitan: File Splitter and Joiner 2.7

jueves, 7 de agosto de 2008

Como hacer un BEEP por Javascript

Aunque no soy muy partidario de agregar sonidos a las páginas web, en ocasiones los clientes (los que pagan) insisten y hay que hacerlo.

Con respecto a como agregar un BEEP por javascript a pesar de haber buscado no encontré una forma de hacerlo (Si alguien sabe como que lo comente). Lo que si encontré es como simular un BEEP por medio de un archivo WAV.

La verdad el código javascript es sencillo, acá se los dejo:


function doBeepWav() {
ver=parseInt(navigator.appVersion)
ie4=(ver>3 && navigator.appName!="Netscape")?1:0
ns4=(ver>3 && navigator.appName=="Netscape")?1:0
ns3=(ver==3 && navigator.appName=="Netscape")?1:0
if (ie4)
document.all['BGSOUND_ID'].src='./sounds/beep.wav';
if ((ns4||ns3)
&& navigator.javaEnabled()
&& navigator.mimeTypes['audio/x-midi']
&& self.document.Bach.IsReady()
)
{
self.document.Bach.play()
}
}


Ahora para que funcione debemos agregar en nuestra página esto:

<BGSOUND id="BGSOUND_ID" LOOP=1 SRC="">

Para los interesados les dejo otra forma de hacer un verdadero BEEP no simulado como el anterior, pero que tiene la gran desventaja a mi entender que usa VBScript y ActiveX.


<script type="text/VBScript" language="VBScript">
'Permite hacer un beep,
'necesita que esté habilitado en el explorador la opción:
'Generar e iniciar controles active X
sub doBeep()
CreateObject("WScript.Shell").Run "cmd /c @echo " & Chr(7), 0
end sub
</script>

miércoles, 6 de agosto de 2008

Javascript: Permitir sólo el ingreso de números

Se da con frecuencia que tenemos un campo de texto en el cual queremos que sólo se puedan ingresar ciertos caracteres (En nuestro ejemplo sólo números y espacios).

A continuación les dejo el código para implementar esto.

//Esta funcion permite ingresar sólo valores numéricos y espacios en un campo numérico
//la invocación es: onkeypress="return validarNumericOnly(event);"
//Utiliza la función doBeep para generar una alerta al usuario cuando ingresa un valor incorrecto
function validarNumericOnly(e) {
var keyCode;
var returnVal = true;

if (window.event) {
e = window.event;
keyCode = e.keyCode;
}
//inicio=2 //fin= 3
//flechas izq= 29 //flechas der=28
//flechas up=30 //flechas down=31
//backspace=8 //supr=127
//espacio=32 //TAB=9

//TODOS LOS NÚMEROS y ESPACIO
if ((e.keyCode >= 48 && e.keyCode<= 57)){ returnVal = true; }else{ //FLECHAS+ESPACIO if ((e.keyCode >= 28 && e.keyCode<= 32)){ returnVal = true; }else{ //INICIO+FIN+BACKSPACE+SUPR+TAB if ((e.keyCode == 2 e.keyCode== 3 e.keyCode== 8 e.keyCode== 127 e.keyCode== 9)){ returnVal = true; }else{ //NO VALIDA returnVal = false; //hacer el Beep! doBeep(); } } } return returnVal; }

En otro post les publico el código para hacer el Beep!

jueves, 24 de julio de 2008

jueves, 17 de julio de 2008

Agregar gráficas a paginas JSP usando JFreeCharts


JFreeCharts es una librería (open source) para java, para generar gráficas de forma practica y sencilla. La librería JFreeCharts fue diseñada para poderse usar tanto en aplicaciones web como de escritorio.

A continuación presentamos una forma de utilizar JFreeCharts para generar gráficas que serán incluidas en páginas JSP.

Para poder mostrar las gráficas en la página es necesario que se realicen dos HTTP Request esto es debido a la forma en que los Browsers parsean los HTML. El primer HTTP Request es el que genera el contenido de la página y el segundo es el que genera la imagen.

Ahora JSP solo puede enviar texto, así que es necesario crear un servlet para poder enviar la imagen.

Consideremos el siguiente flujo:

- Primero tenemos una clase java (En el caso de struts un action) que se encarga de cargar todos los datos necesarios para la generación de la JSP. En esta clase se cargan en session los datos que serán mostrados en las gráficas.

- Una vez cargados los datos, se genera la JSP. la cual instancia un constructor de gráficas.

- Por ultimo la JSP invoca al servlet para obtener la imagen.

Codigo:

Action: Graficar.java
En esta clase se cargan en session los datos que serán gráficados.


package com.ui.actions;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.jfree.data.category.DefaultCategoryDataset;

import org.jfree.data.general.DefaultPieDataset;

import com.ui.actions.BaseAction;



public class Graficar extends BaseAction {



public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response) throws Exception {

ActionForward forward=null;

crearImagenes(request);

forward = mapping.findForward("success");

return forward;

}

private void crearImagenes(HttpServletRequest request) {

DefaultPieDataset pieDataset = new DefaultPieDataset();

pieDataset.setValue( "US 44.3%", 44.3 );

pieDataset.setValue( "France", 12.1 );

pieDataset.setValue( "Japan", 10.0 );

pieDataset.setValue( "UK", 8.4 );

pieDataset.setValue( "Spain", 3.4 );

pieDataset.setValue( "Germany", 8.6 );

pieDataset.setValue( "Australia", 3.2 );

pieDataset.setValue( "China", 5.4 );

pieDataset.setValue( "Other", 1.4 );

request.getSession().setAttribute("imagenData3",pieDataset);

}

}







JSP: graficar.jsp
Esta es la página que mostrara las gráficas, es donde se invoca al constructor de graficas y al servlet.

<html>
<head>
<title>Gráficas</title>
</head>
<jsp:useBean id="myChartPie" scope="session" class="com.ui.servlets.graficas.PieChartGraphic" />
<body>
<h2>Gráficas

<!--String getChartViewer(HttpServletRequest request, HttpServletResponse response, String databean, int width, int height, String valueAxisLabel, String title, String categoryAxisLabel, boolean urls, boolean legend, boolean tooltips, boolean orientacionHorizonal, float R, float G,float B) { -->

<%String chartViewer3 = myChartPie.getChartViewer(request, response, "imagenData3",350,250,"value axis label2","Lu","categoria axis label",false,true,false,true,200,200,255);%>

<img src="<%=chartViewer3%>" border=0 usemap="#imageMap">
</body>
</html>



En el código de la página hay que prestar atención sobretodo a estas lineas:

Se crea un bean en session, AreaChartGrafic que es el encargado de generar la gráfica.

<jsp:useBean id="myChart" scope="session" class="com.servlets.graficas.AreaChartGraphic" />

Se define una variable string con el resultado de la invocación al bean antes definido, en esta invocación se pueden especificar ciertos parámetros que serán usados en la creación de la página el mas importante es el correspondiente a "databean" (3ro)que contiene el nombre de la variable en session, correspondiente los datos cargados en el action.

<!--String getChartViewer(HttpServletRequest request, HttpServletResponse response, String databean, int width, int height, String valueAxisLabel, String title, String categoryAxisLabel, boolean urls, boolean legend, boolean tooltips, boolean orientacionHorizonal, float R, float G,float B) { -->

<%String chartViewer3 = myChartPie.getChartViewer(request, response, "imagenData3",350,250,"value axis label2","Lu","categoria axis label",false,true,false,true,200,200,255);%>

Imprime la imagen de la gráfica en la pantalla
<img src="<%=chartViewer3%>" border=0 usemap="#imageMap">


Clase básica de graficadores: BasicGraphic.java
Esta clase abstracta permite abstraer toda la lógica necesaria para la invocación a los graficadores y su comunicación con el Servlet.

import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.plot.PlotOrientation;

/***
*
* @author Ricardo
*
*/
public abstract class BasicGraphic {

protected HttpServletRequest request;
protected HttpServletResponse response;
protected String databean;
protected int width;
protected int height;
protected String valueAxisLabel;
protected String title;
protected String categoryAxisLabel;
protected boolean urls;
protected boolean legend;
protected boolean tooltips;
protected boolean orientacionHorizonal;
protected int R;
protected int G;
protected int B;
protected Object dataset;
protected PlotOrientation orientacion;
protected Color backgroundcolor;
/***
*
* @param request
* @param response
* @param databean Nombre de la variable en session que contiene los datos a graficar
* @param width Ancho que tendra la imagen
* @param height Alto de la imagen
* @param valueAxisLabel Etiqueta del eje de valores
* @param title Titulo de la grafica
* @param categoryAxisLabel Etiqueta del eje de categorias
* @param urls
* @param legend
* @param tooltips
* @param orientacionHorizonal Grafica horizontal o vertical
* @param R Componente RED del color de fondo
* @param G Componente GREEN del color de fondo
* @param B Componente BLUE del color de fondo
* @return Ruta al servlet que generara el mapping de la grafica notar que se le pasa como parametro el nombre de la variable en session que contiene el chart.
*/
public String getChartViewer(HttpServletRequest request, HttpServletResponse response, String databean, int width, int height, String valueAxisLabel, String title, String categoryAxisLabel, boolean urls, boolean legend, boolean tooltips, boolean orientacionHorizonal, int R, int G,int B) {
this.request=request;
this.response=response;
this.databean=databean;
this.width=width;
this.height=height;
this.valueAxisLabel=valueAxisLabel;
this.title=title;
this.categoryAxisLabel=categoryAxisLabel;
this.urls=urls;
this.legend=legend;
this.tooltips=tooltips;
this.orientacionHorizonal=orientacionHorizonal;
this.R=R;
this.G=G;
this.B=B;
this.backgroundcolor = new Color(R,G,B);
HttpSession session = request.getSession();
dataset = session.getAttribute(databean);
orientacion=null;
if (orientacionHorizonal ==true){
orientacion = PlotOrientation.HORIZONTAL;
}else{
orientacion = PlotOrientation.VERTICAL;
}
JFreeChart chart = crearJFreeChart();
ChartRenderingInfo info = null;
try {
//Create RenderingInfo object
response.setContentType("text/html");
info = new ChartRenderingInfo(new StandardEntityCollection());
BufferedImage chartImage = chart.createBufferedImage(width, height, info);//640,400
// putting chart as BufferedImage in session,
// thus making it available for the image reading action Action.
session.setAttribute("chartImage"+databean, chartImage);
PrintWriter writer = new PrintWriter(response.getWriter());
ChartUtilities.writeImageMap(writer, "imageMap", info,true);
writer.flush();
}
catch (Exception e) {
Log.getInstance().write(AreaChartGraphic.class.getName(), "getChartViewer" , e);
}
String pathInfo = "http://";
pathInfo += request.getServerName();
int port = request.getServerPort();
pathInfo += ":"+String.valueOf(port);
pathInfo += request.getContextPath();
String chartViewer = pathInfo + "/servlet/ChartViewer?sessionChart=chartImage"+databean;
return chartViewer;
}
protected abstract JFreeChart crearJFreeChart();
}


Graficadores: PieChartGraphic.java
Los graficadores son clases que extienden a BasicGraphic que implementan la función crearJFreeChart dependiendo del estilo de gráfica que se requiere.
import org.jfree.chart.*;
import org.jfree.data.general.DefaultPieDataset;
/***
*
* @author Ricardo
*
*/
public class PieChartGraphic extends BasicGraphic{

public PieChartGraphic() {
}

protected JFreeChart crearJFreeChart() {
JFreeChart chart = ChartFactory.createPieChart(title, (DefaultPieDataset)dataset, legend, tooltips, urls);
chart.setBackgroundPaint(this.backgroundcolor);
return chart;
}
}



import org.jfree.chart.*;
import org.jfree.data.general.DefaultPieDataset;
/***
*
* @author Ricardo
*
*/
public class PieChartGraphic extends BasicGraphic{
public PieChartGraphic() {
}

protected JFreeChart crearJFreeChart() {
JFreeChart chart = ChartFactory.createPieChart(title, (DefaultPieDataset)dataset, legend, tooltips, urls);
chart.setBackgroundPaint(this.backgroundcolor);
return chart;
}
}


Servlet: ChartViewer.java
Por ultimo esta el servlet el encargado de generar el maping de la imagen.

package com.ui.servlets.graficas;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.logging.Level;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.keypoint.PngEncoder;

/***
*
* @author Ricardo
*
*/
public class ChartViewer extends HttpServlet {

private static final long serialVersionUID = 1L;

public void init() throws ServletException {
}

//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("ChartViewer");
Log.getInstance().write(ChartViewer.class.getName(), "doGet", Log.ENTER, Level.INFO);
String sessionChart = request.getParameter("sessionChart");

// get the chart from session
HttpSession session = request.getSession();
BufferedImage chartImage = (BufferedImage) session.getAttribute(sessionChart);
// set the content type so the browser can see this as a picture
response.setContentType("image/png");

// send the picture
PngEncoder encoder = new PngEncoder(chartImage, false, 0, 9);

response.getOutputStream().write(encoder.pngEncode());
Log.getInstance().write(ChartViewer.class.getName(), "doGet", Log.EXIT, Level.INFO);
}

//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}

//Process the HTTP Put request
public void doPut(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}

//Clean up resources
public void destroy() {
}
}


tener en cuenta que para que el Servlet funcione hay que acoplarlo al sistema para esto hay que agregar al Web.xml las siguientes lineas:

<servlet>
<servlet-name>ChartViewer
<servlet-class>com.servlets.graficas.ChartViewer
</servlet>

<servlet-mapping>
<servlet-name>ChartViewer
<url-pattern>/servlet/ChartViewer
</servlet-mapping>


Una ves realizado todos los pasos descriptos podemos generar gráficas dinámicas fácilmente desde nuestras paginas JSP.

miércoles, 16 de julio de 2008

Como utilizar una DLL desde codigo java

En el desarrollo de un sistema que requeria el cargado dinamico de una dll, me surgio la necesidad de mover el proyecto. Consecuencia de esto fue que el sistema dejo de funcionar sin razon aparente. Investigando un poco encontre que el problema era que no se cargaba la dll correctamente, a continuación les dejo el resultado de la investigacion. Espero les sirva ^_^

Existe dos formas diferentes de cargar una libereria nativa desde un programa java en ejecucion:
  • System.loadLibrary(String)

  • System.load(String).

El metodo System.loadLibrary permite cargar una libreria desde la ruta por defecto, en cambio System.loadLibrary permite cargar una libreria desde cualquier lado utilizando la ruta absoluta a la DLL.

Cuando usamos System.loadLibrary, lo único que hace falta especificar el nombre del archivo DLL que queremos cargar. La JVM buscará la DLL especificada en "Java library path". Este camino esta dado por la propiedad: java.library.path system property (Y puede alterarce al utilizar el comando java.exe usando la opcion -D). Por defecto este valor esta relacionado con el Windows path.

Tener en cuenta que el directorio actual es agregado automaticamente al path, por esta razon no es necesario configurar nada siempre y cuando la DLL se encuentre en el directorio de trabajo actual.

Para poder hacer que la JVM cargue la libreria, necesitamos modificar nuestro código Java de la siguiente forma (El nombre de la DLL a cargar es "HelloWorld" y se encuentra en el path):


package example.jni;

public class HelloWorld {
private static native void writeHelloWorldToStdout();

public static void main(String[] args) {
System.loadLibrary("HelloWorld");
writeHelloWorldToStdout();
}
}


La JVM se encarga de resolver la extension dependiendo del sistema operativo.

Una vez realizados los pasos anteriores ya habremos cargado la DLL y seremos capas de usarla.

jueves, 3 de julio de 2008

Liga Deportiva Universitaria de Quito Campeón de la Copa Libertadores de América 2008

La Liga Deportiva Universitaria de Quito se coronó por primera vez como campeón de la Copa Libertadores luego de derrotar por penales a Fluminense en el estadio Maracaná.

En el partido de ida Liga había ganado 4 a 2. En el partido de vuelta Fluminense se impuso por 3 a 1.

Los goles del partido de vuelta fueron convertidos por
Luis Bolaños (min 5) y Thiago Neves (min 11, min 27, min 57).

Los jugadores de Liga se hicieron grandes en la serie de penales. José Cevallos demoró cada uno de los penales que le lanzaron y comenzó atajando el de Darío Conca. Cícero fue el único que anotó para Fluminense, recién en el tercer lanzamiento. Ni siquiera la figura del partido, Thiago Neves, acertó su penal.

Y en el cuarto penal, Washington remató muy mal y Cevallos desató la fiesta ecuatoriana en un desolado Maracaná.



Equipos ecuatorianos en la copa libertadores:


1975 - Liga de quito: semifinalista

1976 - Liga de quito: semifinalista

1985 - El Nacional: semifinalista

1986 - Barcelona: semifinalista

1987 - Barcelona: semifinalista

1990 - Bacelona: Finalista cayo ante el Olimpia

1992 - Barcelona: semifinalista

1995 - Emelec: semifinalista

1998 - Barcelona: Finalista cayo ante el Vasco da Gama

2008 - Liga de Quito: campeón derrontando al Fluminense


Ultimos campeones de la libertadores:


2004 - Once Caldas (COL)

2005 - Sao Pablo (BRA)

2006 - Internacional (BRA)

2007 -Boca Juniors (ARG)

2008 - Liga de Quito (ECU)



Historia de la liga de Quito:


Liga Deportiva Universitaria, nace en octubre de 1918 , cuando el equipo de los "doctorcitos", marca el inicio de una gran etapa con el nombre de 'Universitario' . Un club de fútbol para colmar la satisfacción y las necesidades de los universitarios de ese tiempo, pero con grandes y positivos resultados.


A continuación les dejo un video con un resumen de la final:


¿Cómo validar números enteros por JavaScript?

La páginas web están formadas por múltiples elementos pero el principal para la interacción con el usuario son los formularios, donde el usuario ingresa datos que luego serán enviados al servidor. Para evitar que se envíen datos incorrectos al servidor siempre es recomendable validarlos antes.
Una forma de validar los datos es por medio de funciones javascript que se ejecutan en el evento "onsubmit" del formulario.

A continuación les dejo una función javascript para validar que se ingrese un entero en un campo de texto.


//valida que el elemento con identificador (id)
//y de nombre (nombre) tenga un valor entero
function validarInt(id, nombre) {
var error = '';
elemento = document.getElementById(id);
var re = /^(-)?[0-9]*$/;
if (!re.test(elemento.value)) {
error = 'El campo '+nombre+' debe ser un número entero';
}
return error;
}

miércoles, 2 de julio de 2008

Cuidado señores a bordo!!

Es cierto que hay algunas personas que no deben acercarse a los botes por ejemplo las que aparecen en este videito, jaja. ^_^

España campeón de la Euro Copa 2008





De forma merecida tras desplegar el mejor fútbol del campeonato España se consagró campeón de la Euro Copa 2008 tras derrotar a Alemania 1 a 0 con gol de Fernando Torres.
Gracias a este título por fin la selección española fue capaz de demostrar un favoritismo (injustificado hasta la fecha) que se le otorgaba cada vez que iniciaba una competencia internacional y que hacia 44 años que no ganaba. Sin duda el triunfo da esperanzas de conseguir mayores logros en el futuro cercano.


El plantel de españa en la Euro:

Los campeones de la UEFA:
1960 - URSS
1964 - España
1968 - Italia
1972 - Alemania
1980 - Alemania
1984 - Francia
1988 - Holanda
1992 - Dinamarca
1996 - Alemania
2000 - Francia
2004 - Grecia
2008 - España

A continuación les dejo todos los goles de España en la Euro Copa 2008:

miércoles, 25 de junio de 2008

Defensor Sporting Campeón Uruguayo

Defensor Sporting se ha coronado Campeón Uruguayo 2008 luego de empatar 0 a 0 con Peñarol, en la segunda final por el campeonato.



En la primera final, disputada el 22 de junio el ganador fue Defensor Sporting por 2 a 1 con goles de Lamas y Gaglianone. El gol de Peñarol fue convertido por Matías Aguirregaray.

En la primera final Defensor Sporting fue totalmente superior a Peñarol y debió golearlo, mientras que en esta segunda final el partido fue mucho más parejo y Defensor Sporting no pudo aprovechar jugadas que se le presentaron para llevarse la victoria, mientras Peñarol se desesperaba en la búsqueda por conseguir un gol que le diera la chance de ir a un tercer partido.

Sin dudas el campeonato es merecido para Defensor Sporting ya que fue el mejor equipo del campeonato.

Ganó el Campeonato Apertura con 35 puntos, a 4 de Danubio y Rampla Jrs, y a 18 de Peñarol que había finalizado en la posición 11.

Finalizó 4º en el Clausura con 31 puntos, a 6 puntos de los finalistas River Plate y Peñarol (recordar además que se le quitaron 3 puntos del partido contra Liverpool y que perdió el partido con Peñarol 1 a 0 con un gol más que "polémico").

Ganó además la tabla Anual con 66 puntos, a 5 de River Plate y a 12 de Peñarol que finalizó cuarto.

Este campeonato es el 4º Campeonato Uruguayo conseguido por Defensor Sporting. Los demás campeonatos fueron conseguidos en el año 1976, 1987 y 1991


Por otro lado este es el segundo año consecutivo en que el campeonato no es ganado ni por Nacional ni por Peñarol.

Ultimos 5 campeones :

2008-Defensor Sporting
2007-Danubio
2006-Nacional
2005-Nacional
2004-Danubio

Peñarol, al perder esta final, suma un nuevo "quinqueño". Esta vez un quinqueño sin salir Campeón Uruguayo.

Además para ver lo malas que han sido las últimas campañas de Peñarol hay que agregar que de los últimos 11 Capeonatos Uruguayos (98-2008) , Peñarol solo ganó 2 (99,2003), lo que sin dudas es una campaña lamentable para un equipo que supo tener un gran prestigio a nivel local e internacional, claro está, en el siglo pasado.

Creo que este resultado muestra a las claras que no alcanza con conseguir una gran cantidad de jugadores de apuro para ganar un Campeonato Clausura y tener chances de salir campeón, sino que hay que "laburar" todo el tiempo y que no siempre se puede ganar con la "camiseta"


Felicitaciones a toda la gente de Defensor Sporting Club.

lunes, 23 de junio de 2008

Kung Fu Panda

Ficha técnica
TITULO ORIGINAL: Kung Fu Panda
AÑO: 2008
DURACIÓN: 95 min.
DIRECTOR: Mark Osborne, John Stevenson
GUIÓN: Jonathan Aibel, Glenn Berger
MÚSICA: Hans Zimmer
FOTOGRAFÍA: Yong Duk Jhun
PRODUCTORA: DreamWorks Animation
SINÓPSIS
El protagonista es un oso panda llamado Po, el más vago de todas las criaturas del Valle de la Paz. Con poderosos enemigos acercándose, la esperanza es depositada en una antigua profecía que dice que un héroe se alzará para salvarles. Voces originales de Jack Black, Angelina Jolie, Dustin Hoffman, Lucy Liu & Jackie Chan. (FILMAFFINITY)

Links de descarga
IDIOMA ESPAÑOL LATINO

martes, 17 de junio de 2008

El fin de los tiempos


SINOPSIS:Todo comienza sin previo aviso. Parece surgir de la nada. En cuestión de minutos, en las principales ciudades de Norteamérica se producen casos de extrañas y escalofriantes muertes que desafían cualquier explicación. ¿Qué está causando este repentino y total colapso del comportamiento humano? ¿Es algún nuevo tipo de ataque terrorista, un experimento fallido, una diabólica arma tóxica, un virus fuera de control? ¿Se transmite por el aire, a través del agua… cómo? Para Elliot Moore, profesor de ciencias de un instituto de Filadelfia, lo más importante de todo es encontrar el modo de escapar de este misterioso y letal fenómeno.


FICHA TÉCNICA
Dirección y guión: M. Night Shyamalan.
País: USA. Año: 2008.
Género: Drama, thriller.
Interpretación: Mark Wahlberg (Elliot Moore), Zooey Deschanel (Alma Moore), John Leguizamo (Julian), Betty Buckley (Sra. Jones).
Producción: Sam Mercer, Barry Mendel y M. Night Shyamalan.
Música: James Newton Howard. Fotografía: Tak Fujimoto. Montaje: Conrad Buff.
Diseño de producción: Jeannine Oppewall. Vestuario: Betsy Heimann.
Estreno en USA: 13 Junio 2008.
Estreno en España: 13 Junio 2008.
DETALLES DE LA DESCARGA:
Formato: .Avi Calidad Audio y Video: Buena (TS screener)
Idioma: ESPAÑOL
Tamaño. 700 MB dividido en 8 Archivos (7 de 99 mb y 1 de 13 mb)
Pass:by segam


VINCULO DE DESCARGA Megaupload

VINCULOS DE DESCARGA RAPIDSHARE:

viernes, 13 de junio de 2008

¿Comó deshabilitar teclas por javascript?

Existen ocasiones que durante el desarrollo de un página web (especialmente cuando se usa java o por razones de seguridad) es necesario impedir que el usuario presione algunas teclas. El script que les dejo a continuación sirve para esto.

Notar 1: Este script es útil solo si abrieron la página en modo modal sin la barra del explorador ^_^

Notar 2: Si bien el objetivo del script es el del impedir que un usuario presiones ciertas combinaciones de teclas, el código utilizado puede usarse para capturar las teclas que presiona el usuario para diferentes motivos.


<script>
//Autor: rbedat,
//Este script permite deshabilitar:
// El boton derecho del mouse,
// El F5 y F11
// El Ctrl + F5
// El Ctrl + N y Ctrl + U
// El Ctrl + R
// El Ctrl + [<-] y el Ctrl + [->]
// El Backspace fuera de los formularios.
//
//Tener en cuenta que utiliza los eventos:
// onkeydown y onkeyup

//begin desabilitar teclas

var controlprecionado = 0;
var altprecionado = 0;
function desactivarCrlAlt(teclaactual){
//alert(teclaactual);
var desactivar = false;
//Ctrl +
if (controlprecionado==17){
if (teclaactual==78 || teclaactual==85 ){
//alert("Ctrl+N y Ctrl+U deshabilitado");
desactivar=true;
}
if (teclaactual==82){
//alert("Ctrl+R deshabilitado");
desactivar=true;
}
if (teclaactual==116){
//alert("Ctrl+F5 deshabilitado");
desactivar=true;
}
if (teclaactual==114){
//alert("Ctrl+F3 deshabilitado");
desactivar=true;
}
}
//Alt +
if (altprecionado==18){
if (teclaactual==37){
//alert("Alt+ [<-] deshabilitado");
desactivar=true;
}
if (teclaactual==39){
//alert("Alt+ [->] deshabilitado");
desactivar=true;
}
}
if (teclaactual==17)controlprecionado=teclaactual;
if (teclaactual==18)altprecionado=teclaactual;
return desactivar;
}

document.onkeyup = function(){
if (window.event && window.event.keyCode==17){
controlprecionado = 0;
}
if (window.event && window.event.keyCode==18){
altprecionado = 0;
}
}

document.onkeydown = function(){
//116->f5
//122->f11
//117->f6
//114->f3
//alert(window.event.keyCode);
if (window.event &&
desactivarCrlAlt(window.event.keyCode)){
return false;
}
if (window.event &&
(window.event.keyCode == 122 ||
window.event.keyCode == 116 ||
window.event.keyCode == 114 ||
window.event.keyCode == 117)){
//alert("lo siento!, no hay f5, f3, f6 ni f11 :P");
window.event.keyCode = 505;
}
if (window.event.keyCode == 505){
return false;
}
if (window.event && (window.event.keyCode == 8)){
valor = document.activeElement.value;
if (valor==undefined) {
//Evita Back en página.
//alert("lo siento!, no hay back :P");
return false;
}
else{
if (document.activeElement.getAttribute('type')
=='select-one')
{ return false; } //Evita Back en select.
if (document.activeElement.getAttribute('type')
=='button')
{ return false; } //Evita Back en button.
if (document.activeElement.getAttribute('type')
=='radio')
{ return false; } //Evita Back en radio.
if (document.activeElement.getAttribute('type')
=='checkbox')
{ return false; } //Evita Back en checkbox.
if (document.activeElement.getAttribute('type')
=='file')
{ return false; } //Evita Back en file.
if (document.activeElement.getAttribute('type')
=='reset')
{ return false; } //Evita Back en reset.
if (document.activeElement.getAttribute('type')
=='submit')
{ return false; } //Evita Back en submit.
else //Text, textarea o password
{
if (document.activeElement.value.length==0){
//No realiza el backspace(largo igual a 0).
return false;
}
else{
//Realiza el backspace.
document.activeElement.value.keyCode = 8; }
}
}
}
}
//end desabilitar teclas
</script>

Computer Networking: A Top Down Approach, 4th Edition




Descripción:

Siguiendo el enfoque top-down, usado en las ediciones anteriores, La cuarta edicion de "Computer Networking" continua con el temprano enfoque en los paradigmas e interfaces de la capa de aplicación, de forma practica con protocolos y conceptos de redes. En esta cuarta edicion, Kurose and Ross incluyen los problemas de la seguiridad en el desarrollo de redes y como se integra esta con las mas relevantes tecnologias. .



Algo sobre los autores - J. Kurose, K. Ross:

James Kurose enseña en la Universidad de Massachusetts en Amherst. Sus intereses en la investigación incluyem protocolos y arquitectura de redes, mediciones de redes, redes sensoriales, comunicación multimedia, y modelado y evaluación de performance de redes. Recibió su doctorado en la Universidad de Columbia.


Keith Ross es un profesor de ciencias de computación en la Universidad Politécnica. Ha trabajado en redes peer-to-peer, mediciones de Internet, video streaming, web caching, redes de distribución, voz sobre IP, optimización, teoría de colas, control óptimo de colas y procesos de decisión de Markov. Obtuvo su doctorado en Ingeniería en Computación y en Control en la Universidad de Michigan.


Contenido del libro:


Cápitulo 1 Redes de computadoras e Internet
1.1 Qué es Internet?
1.2 Redes Edge
1.3 Redes Core
1.4 Demora, pérdida y throughput en redes de Packet-Switched
1.5 Protocolos de capas y sus modelos de servicio
1.6 Redes bajo ataque
1.7 Historia de las redes de computadoras e Internet
1.8 Sumario

Chapter 2 Capa de Aplicación
2.1 Principios de Aplicaciones de Redes
2.2 La web y HTTP
2.3 Transferencia de archivos vía FTP
2.4 Correo Electrónico en Internet
2.5 DNS—El servicio de directorio de Internet
2.6 Aplicaciones Peer-to-Peer
2.7 Programación de sockets con TCP
2.8
Programación de sockets con UDP
2.9 Sumario

Chapter 3 Capa de Transporte
3.1 Introducción y servicios de capa de transporte
3.2 Multiplexando y DeMultiplexando
3.3 Transportes UDP sin conección
3.4 Principios de transferencia confiable de datos
3.5 Transporte TCP orientado a conección
3.6 Principios del control de congestión
3.7 Control de congestión TCP
3.8 Sumario

Chapter 4 Capa de Red
4.1 Introducción
4.2 Redes de datagramas y circuito virtual
4.3 ¿Que hay dentro de un router?
4.4 El Protocolo de Internet (IP): Direccionar y enviar in Internet
4.5 Algoritmos de ruteo
4.6 Ruteo en Internet
4.7 Ruteos Broadcast y Multicast
4.8 Sumario

Chapter 5 Capa de Enlace y Redes de Área Local
5.1 Capa de enlace: Introducción y servicios
5.2 Técnicas de detección y corrección de errores
5.3 Protocolos de múltiple acceso
5.4 Direccionamiento de capa de enlace
5.5 Ethernet
5.6 Switches de capa de enlace
5.7 PPP: Protocolo Punto a Punto
5.8 Virtualización de enlaces: Una red como capa de enlace
5.9 Sumario

Chapter 6 Redes Inhalámbircas y Moviles
6.1 Introducción
6.2 Enlaces inhalámbricos and características de red.
6.3 WiFi: 802.11 Wireless LANs
6.4 Acceso a Internet desde Celulares
6.5 Administración de la Movilidad:Principios
6.6 IP Movil
6.7 Administrar la Movilidad en Redes de Celulares
6.8 Wireless y Movilidad: Impacto en protocolos de capas de niveles mayores
6.9 Sumario

Chapter 7 Redes Multimedia
7.1 Aplicaciones de Redes Multimedia
7.2 Streaming de Audio y Video almacenado
7.3 Haciendo el servicio con el mejor de los esfuerzos
7.4 Protocolos para aplicaciones interactivas en tiempo real
7.5 Proveer múltiples clases de servicios
7.6 Proveer servicios de calidad garantida.
7.7 Sumario

Chapter 8 Seguridad en Redes de Computadoras
8.1 Qué es la seguridad en redes?
8.2 Principios de criptografía
8.3 integridad de mensajes
8.4 Autenticación End-Point
8.5 Seguridad en E-mail
8.6 Seguridad en conexiones TCP: SSL
8.7 Network-Layer Security: IPsec
8.8 Seguridad en redes LAN inhalámbricas.
8.9 Seguridad operacional: Firewalls y Sistemas de Detección de Intrusos
8.10 Sumario

Chapter 9 Administración de Redes
9.1 Qué es la administración de redes?
9.2 Infraestructura para la Administración de Redes
9.3 Internet-Standard Management Framework
9.4 ASN.1
9.5 Conclusion

Referencias
Índice



Otros Libros:

miércoles, 11 de junio de 2008

Computer Organization and Architecture: Designing for Performance 6th Edition

Este texto prove de forma clara y con una presentacion compresiva la organizacion y arquitectura de las computadoras actuales, enfatiza en los principios fundamentales y en criterios de performance que se encuentran en el diseño de una computadora. El libro aune conceptos por medio de ricos y concretos ejemplos de sistemas RISC y CISC destacados.

WILLIAM STALLINGS ha realizado unicas contribuciones para el entendimiento del desarrollo de las computadoras y las redes. Es el autor de 17 titulos relacionados con estos temas. Desde hace cinco años es el ganador del premio para el mejor libro de "Computer Science and Engineering" del año otorgado por "Textbook and Academic Authors Association".
Con cerca de 25 años en el campo, El Dr. Stallings ha sido un contribuyente tecnico, director tecnico y ejecutivo de multiples firmas de tecnologia avanzada. Es creo y mantiene el sitio de "Computer Science Student Resource Site"

Dr. Stallings tiene un Ph.D. del MIT en ciencia de la computacion y un B.S. del la universidad de Notre Dame en ingenieria electrica.

Contenido del libro

I. OVERVIEW.
1. Introduction.
2. Computer Evolution and Performance.
II. THE COMPUTER SYSTEM.
3. System Buses.
4. Cache Memory.
5. Internal Memory Technology.
6. External Memory.
7. Input/Output.
8. Operating System Support.
III. THE CENTRAL PROCESSING UNIT.
9. Computer Arithmetic.
10. Instruction Sets: Characteristics and Functions.
11. Instruction Sets: Addressing Modes and Formats.
12. CPU Structure and Function.
13. Reduced Instruction Set Computers (RISCs).
14. Instruction-Level Parallelism and Superscalar Processors.
15. The IA-64 Architecture.
IV. THE CONTROL UNIT.
16. Control Unit Operation.
17. Microprogrammed Control.
V. PARALLEL ORGANIZATION.
18. Parallel Processing.
Appendix A: Digital Logic.
Appendix B: Number Systems
Appendix C: Projects for Teaching Computer Organization and Architecture.
References.
Glossary.
Index.
Acronyms.


Libro PDF en Inglés.

Links Descarga: (3 partes, 75MB en total) Parte 1 - Parte 2 - Parte 3

martes, 10 de junio de 2008

¿Comó deshabilitar el botón derecho del mouse en javascript?

Muchas veces existe la necesidad de deshabilitar el botón derecho del mouse para evitar que el usuario realice ciertas acciones. Yo en particular lo utilizo para evitar que el usuario haga refresh o back en una página que es particularmente delicada.

Para estos casos les dejo un script que a mi me funciona impecable:


<script>
function right(e) {
if (navigator.appName == 'Netscape'
&&(e.which == 3 || e.which == 2)){
return false;
}
else{
if (navigator.appName ==
'Microsoft Internet Explorer' &&
(event.button== 2 || event.button== 3)){
alert("Botón derecho no habilitado");
return false;
}
}
return true;
}

document.onmousedown=right;
document.onmouseup=right;
if (document.layers){
window.captureEvents(Event.MOUSEDOWN);
}
if (document.layers){
window.captureEvents(Event.MOUSEUP);
}
window.onmousedown=right;
window.onmouseup=right;
</script>

domingo, 8 de junio de 2008

River Plate Campeón en Argentina


Finalmente, a pesar de todas las dificultades que tuvo que soportar el club en estos últimos tiempos, River Plate finaliza la temporada obteniendo el Campeonato Clausura, tras vencer 2 a 1 a Olimpo de Bahía Blanca en el Estadio Monumental. Los goles de River fueron convertidos por Diego Buonanotte en los minutos 16 y 78. Josemir Lujambio había empatado para Olimpo en el minuto 66.


La victoria de River y el empate de Estudiantes frente a Colón de Santa Fé 0 a 0 hicieron que el equipo millonario obtuviera el título una fecha antes de la finalización del campeonato.

De esta manera River Plate llega al título número 33 y continúa siendo el equipo con más títulos de Liga en la Argentina.


A continuacíon los goles del partido:





Acá van algunos de los afiches que aparecerán en Buenos Aires.

viernes, 6 de junio de 2008

El orfanato


TÍTULO ORIGINAL: El Orfanato
AÑO: 2007
PAIS: Mexico/ España
GENERO: Horror / Drama/ Thriller
DIRECTOR: Juan Antonio Bayona
REPARTO: Belén Rueda, Geraldine Chaplin, Andrés Gertrudix, Mabel Rivera

SINOPSIS

Laura (Belén Rueda) regresa con su familia al orfanato donde creció, con la intención de abrir una residencia para niños discapacitados. Allí, el pequeño Simón (Roger Príncep), hijo de Laura, comienza a dejarse llevar por unos extraños juegos que generan en su madre gran inquietud, ya que dejarán de ser una mera diversión para convertirse en una amenaza. Una serie de inesperados acontecimientos obligarán a Laura a bucear en el dramático pasado de la casa que de niña fue su hogar.

A continuación les dejo los links de descarga directa:

Parte 1 - Parte 2 - Parte 3 - Parte 4 - Parte 5 - Parte 6
Parte 7 - Parte 8

jueves, 5 de junio de 2008

Snagit


El motivo de este post es presentarles para los que no lo conocen al Snagit. Este impresionante programa, es capaz de capturar todo lo que haga falta, desde una simple imagen, un texto, una página web o incluso un vídeo.
Es completísimo, tiene herramientas para todo, tanto antes de hacer la captura como para procesarla después a tu gusto y necesidad. Además de todos esto viene con un convertidor de imágenes excelente y sencillo.



Si quieren probarlo a continuación les dejo el link para descargarlo.
Download



Números, serial Numbers, clave de registración:
ES5CF-CCMB5-M2JHC-6GMVF-Q6D8D
UCMHA-BA4FC-KV7AK-Z63SR-LF63D
RTWMZ-FAH5S-MBECH-5MQ4S-UMD9A
CYCC4-46WCM-55DYN-Q8YGD-A49R3
YCMBS-KXCAD-BDDVQ-N934C-6693F
BZS3C-BMAQM-4HG5C-XMLQ4-B84FF
BVCMC-DCYKA-Q6DJB-Q85PD-JM6D9

Tabla de constantes de acidez

Por definición de Bronsted-Lowry, los ácidos son donadores de iones hidrógeno en reacciones químicas y las bases son aceptadores de iones hidrógeno. Las fuerzas de estos ácidos se comparan ordinariamente midiendo su grado de ionización en agua. Los ácidos fuertes, como HCl y HNO3 están ionizados prácticamente al 100% en agua.
Sin embargo, casi todos los ácidos orgánicos son ácidos débiles y muestran sólo escasa ionización en agua. Por esta razón, se establece un equilibrio químico entre las formas ionizadas y no ionizadas. El equilibrio se describe por medio de una expresión de equilibrio y una constante llamada contante de acidez,Ka

Definición: La constante de acidez se define como el producto de las concentraciones de los productos (en moles por litro) dividido entre las concentraciones de los reactivos. Puesto que el agua por lo común está presente en gran exceso, su concentración permanece prácticamente constante. Por consiguiente, no se incluye como tal en la expresión; al ser constante, se vuelve parte de Ka.

Tabla de constantes de acidez para 25ºC:

Ácido

Reacción

ka

pka

Yodhídrico

HI + H2O → I+ H3O+

Muy grande

Muy grande

Bromhídrico

HBr + H2O → Br + H3O+

Muy grande

Muy grande

Perclórico

HClO4 + H2O → ClO4+ H3O+

Muy grande

Muy grande

Clorhídrico

HCl + H2O → Cl + H3O+

Muy grande

Muy grande

Sulfúrico

H2SO4 + H2O → HSO4+ H3O+

Muy grande

Muy grande

Nítrico

HNO3 + H2O → NO3+ H3O+

Muy grande

Muy grande

Yódico

HIO3 + H2O → IO3+ H3O+

0,19

0,721

Sulfuroso

H2SO3 + H2O → HSO3+ H3O+

0,016

1,796

Hidrogenosulfato

HSO4+ H2O → SO4= + H3O+

0,012

1,921

Cloroso

HClO3 + H2O → ClO3+ H3O+

0,011

1,96

Fosfórico

H3PO4 + H2O → H2PO4+ H3O+

7,5 · 103

2,125

Fluorhídrico

HF + H2O → F+H3O+

7,0 · 104

3,155

Nitroso

HNO2 + H2O → NO2+ H3O+

4,5 · 104

3,347

Fórmico

HCOOH + H2O → HCOO+ H3O+

1,8 · 104

3,745

Benzoico

C6H5COOH + H2O → C6H5COO+ H3O+

6,6 · 105

4,180

Acético

CH3COOH + H2O → CH3COO+ H3O+

1,8 · 105

4,745

Carbónico

H2CO3 + H2O → HCO3+ H3O+

4,2 · 107

6,377

Sulfhídrico

H2S + H2O → HS+ H3O+

1,0 · 107

7,000

Hipocloroso

HClO + H2O → ClO+ H3O+

3,0 · 108

7,523

Dihidrógenofosfato

H2PO4+ H2O → HPO4= + H3O+

6,2 · 108

7,208

Amonio

NH4+ + H2O → NH3 + H3O+

5,5 · 1010

9,260

Cianhídrico

HCN + H2O → CN+ H3O+

4,0 · 1010

9,398

Hidrogenocarbonato

HCO3 + H2O → CO3= + H3O+

5,6 · 1011

10,25

Hidrogenofosfato

HPO4= + H2O → PO43− + H3O+

2,2 · 1013

12,66

Hidrogenosulfuro

HS + H2O → S= + H3O+

1,0 · 1013

13,00