Servidores DNS gratuitos
Tech July 29th, 2009
Como muchos usuarios del servicio de Speedy de Telefónica del Perú, decidí cambiar hace mucho tiempo los DNS (esos servidores que permiten navegar por Internet al convertir los nombres de dominios que usamos en direcciones IP) de este operador (los tristemente celebres 200.48.225.130 y 200.48.225.146) por otros que tuvieran mejor performance y muchos, muchos menos problemas (hace varios meses hubo un problema grande con estos servidores que hizo que la conexión a Internet de la gran mayoría de usuarios se viera afectada, aunque la empresa española culpó de un virus que infectó a los usuarios, según ellos).
Mi primera elección fue utilizar los de OpenDNS (208.67.222.222 y 208.67.220.220), que funcionan bien, lo único que no me gustó fue que cuando no encuentra el dominio requerido, te envía a una página de búsqueda dentro del dominio opendns.com con algunas alternativas similares. Si no tienes problemas con esto, entonces te recomiendo que los pruebes.
Hace unos días, cambie nuevamente, ahora hacia los servidores 4.2.2.1 y 4.2.2.2, que son incluso más fáciles de recordar. Estos son operados por Level 3, una importante empresa gringa de telecomunicaciones.
Otra alternativa de servidores DNS gratuitos es ScrubIT, por algún motivo cuando quise probarlos, no podía ni hacerles ping, pero tal vez era un problema con mi conexión. En otro momento probaré su servicio. Por el momento me quedo con los de Level 3.
Update 6/Abr/2010:
Desde hace algunos meses, Google ofrece servidores DNS públicos, que prometen ser muy veloces, los vengo usando hace algún tiempo, y no he tenido mayores problemas. Las IPs de sus servidores son 8.8.8.8 y 8.8.4.4.
Tags: DNS, Google, Level 3, OpenDNS, ScrubIT, Telefónica, Telefónica del Perú
Atributo min-height en IE6
Web July 29th, 2009
Hay algunos navegadores antiguos (IE6 por supuesto) que no soportan algunas propiedades interesantes de CSS como el min-height, que dice cual debe ser la altura minima que debe tomar un elemento.
Afortunamente, hay hacks para solventar este problema, el más simple (solo involucra CSS y no hay que hacer ningún cambio en el HTML) de todos es el siguiente:
selector { min-height: 500px; height: auto !important; height: 500px; }
IE6 no sabe que significa el !important, por lo que la altura no será automática sino de 500px. El resto de navegadores (los buenos como Firefox, Chrome, Opera… y bueno, también IE7) si harán un render correcto.
Pueden encontrar más información al respecto aquí.
Tags: CSS, HTML, IE6, min-height
Corregir el z-index de animaciones Flash
Web July 29th, 2009
Mientras trabajaba en una página web (que tenía un menú desplegable en CSS y algunas animaciones en Flash) encontré que estos objetos SWF siempre se mostraban sobre todos los demás layers de la web, sin importar que valores le pusiera al z-index de los elementos involucrados.
La solución resultó sencilla, solo bastaba agregar el valor transparent al parámetro wmode del objeto SWF, quedándo de la siguiente manera:
<object type="application/x-shockwave-flash" data="swf/animacion.swf" width="760" height="80"> <param name="movie" value="swf/animacion.swf" /> <param name="wmode" value="transparent"> </object>
Como yo estaba utilizando swfobject para colocar las animaciones en Flash de manera más práctica, entonces el cambio fue:
<script type="text/javascript">
var flashvars = {};
var params = {};
params.wmode = "transparent";
var attributes = {};
swfobject.embedSWF("swf/animacion.swf", "header", "760", "80", "9.0.115", "swf/expressInstall.swf", flashvars, params, attributes);
</script>
Cambiar la contraseña de un usuario en MySQL
SQL July 29th, 2009
Hay varios métodos para cambiar la contraseña de un usuario en MySQL, pero este es el que me parece más seguro ya que no deja rastro de la contraseña antigua ni nueva en el historial de comandos (por lo menos en bash).
Primero, nos logueamos al shell de MySQL con el usuario principal:
$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 111 Server version: 5.0.75-0ubuntu10 (Ubuntu) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
Escogemos la base de datos mysql:
use mysql;
Cambiamos los registros de la tabla user que almacenan la contraseña del usuario que queramos:
update user set password=PASSWORD("nuevacontraseña") where user='usuario';
Si quisieramos dejar al usuario con la contraseña en blanco, hacemos lo siguiente:
update user set password=NULL where user='usuario';
Limpiamos y volvemos a cargar los privelegios:
flush privileges;
Y salimos:
mysql> quit
CSS: Reemplazar texto con imágenes
Web July 21st, 2009
El método más simple que he encontrado para reemplazar texto con imágenes, por ejemplo, para hacer más vistosos los títulos en una web y no perder la semántica del HTML, es el de text-indent (creado por Mike Rundle).
Solo se necesita:
h1 { text-indent: -9000px; background: url(image.jpg) no-repeat 0 0; width: 200px; /* Ancho de la imagen */ height: 80px; /* Alto de la imagen */ }
Lo encontré en esta presentación super intersante sobre tipografía para Web.
Tags: CSS, Tipografía
Se viene Lima Valley 5
Misc July 11th, 2009
Este miércoles 15 de Julio es la quinta reunión del Lima Valley. Se viene muy interesante. William Muro hablará de desarrollo de aplicaciones para iPhone, lo que abrirá la conversación sobre el tema de desarrollo para móviles (iPhone, Android y otros). Luego, Daniel Falcón nos presentará sobre Lima Valley Base e interconexión con Palermo Valley. Es una ocasión perfecta para hacer Networking, no faltes!
Pueden ver más información acá, y las inscripciones se realizan acá. Apúrate, cupos limitados.
Tags: Lima Valley
Excel: Formato condicional con fórmulas
Excel July 11th, 2009
El formato condicional es una característica bien interesante de Excel, ya que permite cambiar el formato de una celda (o un grupo de celdas) de acuerdo a ciertas reglas. Por ejemplo, podemos tener las siguientes situaciones:
- Si el valor de la celda es mayor que 10, aplicarle un fondo verde y letras blancas.
- Si en la celda aparece el texto N/A, ponerle un fondo rojo y al texto negritas.
En Excel XP ó 2003, tenemos un límite de 3 reglas por celda, lo cual puede ser suficiente en algunas circunstancias.
En cambio, en la versión 2007, mejoraron esta característica y quitaron ese límite, además de hacerlo más intuitivo. Incluso, en esta nueva versión podemos colocar iconos, barras y escalas a las celdas.
No es complicado trabajar con este formato condicional, pero pueden surgir dudas si queremos hacer las condiciones un poco más complejas y que estén basadas en funciones, por ejemplo, si el valor de la celda es numérico y mayor que 8. Para esto, existe una formula que revisa si una celda es un número o no, entonces, deberemos hacer lo siguiente:
Marcamos el rango de celdas al que queremos darle formato, y vamos a Formato Condicional / Administrar Reglas. Luego escogemos Nueva Regla y después Usar fórmula para determinar a que celdas darles formato. Colocamos lo siguiente en dicha ventana (si tu Excel está en español, debes usar la fórmula ESNUMERO):
Hay que tener en cuenta que usamos la primera celda del rango que hayamos elegido y esta no está fija. Esto quiero decir que NO debemos usar el caracter $ delante de la fila ni de la columna, así $A$1, ya que de lo contrario, siempre usaría esa celda para la formula y no cada una de las celdas a la que queremos aplicar el formato.
Le damos Aceptar, y tendremos lo siguiente:
Como vemos, en Aplicar a está el rango que hemos elegido, que es al que se le aplicará el formato. Le volvemos a dar Aceptar y listo, tendremos lo que buscábamos:
Ahora, un par de anotaciones. Primero, si en la formula hubieramos usado $A$1 en vez de A1, hubieramos conseguido lo siguiente:
Esto se debe a que en todas las celdas del rango, estaría evaluando A1 en vez de la propia celda, y como A1 es numérico y mayor que 8, le aplica verde.
Segundo, si no hubieramos usado la fórmula ESNUMERO, las celdas con N/A estarían marcadas con verde también, porque el Excel lo toma como un valor mayor a cero.
Pueden encontrar más información sobre el Formato Condicional en este y en este link.
Tags: Conditional Format, Excel 2003, Excel 2007, Excel XP, Formato Condicional, Microsoft
Un buen post sobre la economía peruana
Misc July 10th, 2009
En Semana Económica han publicado una entrevista muy buena a Ricardo V. Lago (que además tiene un blog allí, El Nuevo Sol) sobre la situación actual de la economía peruana. En ella se menciona como el Perú está tomando medidas acertadas contra la crisis, que es incluso aplaudida fuera, pero dentro de nuestro país, tiene muchas críticas (probablemente injustificadas).
Ricardo es un economista español que estudia la economía peruana desde hace 20 años. En la entrevista hace mención al libro “Lo que se ve y lo que no se ve” del economista francés del siglo XIX, Frédéric Bastiat. El libro se puede leer libremente acá.
Tags: Crisis, Economía, Perú, Semana Económica
Subrutinas para VBA
Excel, Windows July 10th, 2009
Por más que no sea un gran fan de Microsoft, debo admitir que el Office es un buen producto. A mi me gusta especialmente el Excel por la cantidad de cosas que se pueden hacer con él. Si además, lo utilizamos en conjunto con VBA (el pequeño entorno de desarrollo en Visual Basic que está metido dentro del Office), el número de posibilidades se incrementa exponencialmente. Es cierto que el VB está muy, muy lejos de ser el mejor lenguaje de programación, pero en este caso cumple su cometido (aunque muchas veces extrañe las ventajas de lenguajes más elaborados como C#).
Bueno, regresando al tema de este post, quería colocar acá algunas subrutinas que utilizo cuando programo en VBA. Creo que pueden ser útiles a más de uno, además que me sirven a mi cuando comienzo un nuevo proyecto.
' Adds a new worksheet to the current workbook. ' Name of the sheet should be pass as a parameter. ' If a sheet with the same name already exists, it is deleted prior creation. Sub AddSheet(sheetName As String) RemoveSheet (sheetName) ' Added as last sheet Sheets.Add After:=Sheets(Sheets.count) Sheets(Sheets.count).name = sheetName End Sub ' Deletes a worksheet from the current workbook. Sub RemoveSheet(sheetName As String) Dim alerts As Boolean If SheetExists(sheetName) Then alerts = Application.DisplayAlerts ' Avoid alert on delete Application.DisplayAlerts = False Sheets(sheetName).Delete Application.DisplayAlerts = alerts End If End Sub ' Returns TRUE if there is a worksheet with the given name on the active workbook. Function SheetExists(sheetName As String) As Boolean SheetExists = False On Error GoTo NoSuchSheet If Len(Sheets(sheetName).name) > 0 Then SheetExists = True Exit Function End If NoSuchSheet: End Function
UPDATE: He encontrado que el cambio de nombre de la hoja en AddSheet puede fallar si existen hojas ocultas en el libro. Así que estoy buscando una solución, apenas la tenga la cuelgo.
Tags: MS Office, VB, VBA, Visual Basic, Visual Basic for Applications






About