Limpiar floats en CSS para todos los navegadores

Pequeño truco que saqué de un libro para ajustar el css cuando tenemos elementos float sin hacer uso del clear.
Partimos de un contenedor con la propiedad border y dos elementos con propiedad float.

<div id="contenedor">
    <div id="izquierda">
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit.        Duis molestie turpis vitae ante.
    </div>
    <div id="derecha">
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit.        Nulla bibendum mi non lacus.
    </div>
</div>
 
#contenedor {
    border: thick solid #000;
}
#izquierda {
    float: left;
    width: 40%;
}
#derecha {
    float: right;
    width: 40%;
}

Observamos que la imagen inferior es lo que suele ocurrir. El navegador no puede ajustar el contenedor a los elementos una vez estos hacen uso de la propiedad float.

Podemos hacer uso de un div que contenga la propiedad  clear : bloth;

<div id=”contenedor”>

<div id=”izquierda”>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis molestie turpis vitae ante.</div>
<div id=”derecha”>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla bibendum mi non lacus.</div>

<div style=”clear: both”></div>

</div>

 

Con lo cual obtendríamos un resultado similar al  de la imagen inferior :

Y esto nos solucionaria la papeleta, pero llega un momento que aparte de tener elementos vacíos, el usar varios floats nos puede despistar y que los elementos no se comporten como esperamos.

Hay otra solución, que aparte de ahorrarnos unas lineas, asi como elementos vacíos, funciona correctamente en cualquier navegador :

#contenedor {
border: thick solid #000;
overflow: hidden;   /*Esta linea */
height: 1%;          /* y esta linea son las importantes */
}
#izquierda {
float: left;
width: 40%;
}
#derecha {
float: right;
width: 40%;
}

Supongo que eso obliga al contenedor a ajustarse al tamaño minimo disponible, osea, se ajusta al tamaño de los elementos que contiene.

El ejemplo esta extraído, tal cual, de este libro, que además os podeis descargar.

Ale, que vaya bonito! 😉

Publicado en css, web | 3 comentarios

Ordenar tres variables con tres If sin auxiliares

Este es un metodo realizado en java para ordenar tres variables: num1, mum2, num3  de mayor a menor, las almacenaremos como max, min, mid:

Como siempre, enlace al código en pastebin.
Observar que en ultimo paso intercambiamos el valor de dos variables sin utilizar auxiliares, curioso, nada mas.

El texto está en catalán, pero lo importante se entiende perfectamente!

Publicado en Java, Programación | 2 comentarios

J’attendrai

Tu silencio es ruido.

Publicado en Añoranza, Intentos, Noches | Deja un comentario

Invertir un string en python

Sencillo ejemplo para invertir el orden de cualquier string en python, haciendo uso de recursividad:

def reverse(list):
	if len(list)==1:
		return list
	else:
		return list[-1]+reverse(list[:-1])

Enlace a pastebin

Edit:

Como bien comentan abajo, hay una manera mucho mas simple( Gracias 😉 )

def invertir(var):
        return var[::-1]
Publicado en Programación, Python | 12 comentarios

Si quiere puede poner varón

Publicado en Noches | Deja un comentario

Desorientado

 

Días en los que te sientes perdido. Buscas con urgencia retales de tu vida que te permitan un reencuentro con el flujo regular que sistemáticamente te guía. Producto de noches intensas, de largas horas de vigilia inmerso en la muchedumbre extasiada, en una algarabía que gira en torno al alcohol y otras sustancias, de mayor o menor complejidad en el diseño.

Abatido te ases a los clásicos pilares que conforman tus recuerdos, tratando de atisbar algún  sentido en pro de tus futuros actos, obviando la perversa idea de que resulta inexplicable concebir que no tan sólo no te conozcas más cada día, sino que cada día te vas conociendo menos. Te tiemblan las piernas y crees desfallecer.

Te oprimen las propias paredes de tu hogar y tambaleante vuelves al reducto bajo tus sabanas, deseando tan sólo una cosa.

Eres consciente de que posiblemente necesites unas dosis sistémicas, solamente el sistema podra ubicarte de nuevo. Podrá encender la luz de tu cerebro, para que este pueda volver a actuar bajo una fuerza insonsciente que te sumira sin remedio en el caudal que arrastra tu progreso.

El canto matutino de una nueva jornada te lanzará, como ya hizo otras veces, hacia tu mundo real. Ese que tanto odias pero que en ciertas ocasiones tan necesario se presenta.

Probablemente te definan mejor tus actos que un oscuro análisis interno que puede acabar perdiéndote por los dominios de la sinrazón. Esa que te lleva a componer amalgamas que terminan hablando de sí mismos, como este que aquí concluyo.

Publicado en De mi, Intentos, Noches | Deja un comentario

Primer formulario en psp

Hoy veremos un sencillo formulario bajo Python Server Pages.

<%
#Definimos una funcion para mostrar el formulario
def formulario():
%>
<p>Envianos tus datos</p>
<form method="post" action="formulario.psp">
	Nombre:<input type="text" id="nombre" name="nombre" />
	Apellidos:<input type="text" id="apellidos" name="apellidos" />
	<input type="submit" value="enviar" />
</form>
<%
#end formulario
%>
<html>
<body>
<%
#Comprobamos que nos llegan parametros de un formulario que esperamos
if form.has_key('nombre') and form.has_key('apellidos'):
	#Comprobamos que estos parametros no llegan vacios
	if req.form['nombre'] != '' and req.form['apellidos'] !='':
		nombre = req.form['nombre']
		apellidos = req.form['apellidos']
%>
<h4>Hola <%=nombre +' '+ apellidos+'!!' %><h4>
<%
	else:
		#Si los datos estan vacios mostramos el formulario
		formulario()
else:
	#Si no existen datos del formulario mostramos el formulario
	formulario()
#end if
%>
</body>
</html>

La verdad es que si anteriormente habéis trabajado con  asp como con php vereis que el ejemplo es de lo mas sencillo, tan sólo debemos reparar en las funciones:

form.has_key('---')

y

req.form('---')

las cuales, por el contexto, se sobreentienden. 😀

Os dejo el enlace a pastebin.com, con este mismo codigo algo mas amigable!

Publicado en .psp, Programación, Python, web | Deja un comentario

helloWorld.psp

Llevaba tiempo tratando de realizar una primera incursión en Python para web. Había leído sobre django, web.py, pylons etc…. pero al ojear la documentación no me quedaba nada claro. La razon será que estoy demasiado acostumbrado a ASP y algo de PHP y el hecho de ver algo del tipo

import web

urls = ("/.*", "hello")
app = web.application(urls, globals())

class hello:
    def GET(self):
        return 'Hello, world!'

if __name__ == "__main__":
    app.run()

pues como que no me inspiraba demasiado, y menos después de llevar un tiempo haciendo algunos algoritmos en python y sintiéndome encantado con la simplicidad del lenguaje, y lo intuitivo que resulta, además de lo limpio que queda el código.

Así pues, seguí buscando pues no me cuadraba que tan solo se pudiese programar en web de estas maneras y finalmente di con PSP, Python Server Pages, del cual apenas he encontrado información en español.

¿Que puedo decir?

Lo primero que me llamó la atención fué la apertura y cierre del scripting:

 <%= 'Hola mundo psp' %>

Y ya tenemos nuestra primera pagina index.psp

¿Pero, cómo? Si es igual que ASP!
¿Pues mejor, no?  De algo nos tiene que servir conocer otros lenguajes!

Lo segundo, como no todo el monte es orégano, pues python tampoco es perfecto, pues uno de sus puntos atractivos, la obligatoriedad de identar el código, se vuelve un pelin oscuro a la hora de escribir paginas .psp , y es que si bien no es necesario indicar de una nueva manera cómo empieza un bucle, si que hay que avisar al interprete cuando finaliza, pues corremos el riesgo de que media pagina quede absorbida dentro del iterador.

Se puede realizar dejando una linea en blanco, asegurandose de que no existe tabulacion, pero además, para facilitar su comprension se puede indicar con un comentario, algo que realmente nunca viene mal:

<html>
<body>
<%
for i in range(10):
%><!-- En esta linea no hace falta tabular pues encuentra el cierre del script
y sobre entiende que el codigo debajo quedara dentro del iterador -->
<p>
<%= i %>
</p>
<%
	for j in range(10):
		req.write('hello <br>')
		# La linea inmediatamente superior equivale a:
		# ASP --> Response.write "hello"
		# PHP --> echo "hello";

# Estas ultimas lineas no son  necesarias si aseguramos
# de que no existe tabulacion
# pero nunca vienen mal para facilitar la comprension del codigo
%>
</body>
</html>

Esto es todo para una primera aproximacion, debajo os dejo un enlace al codigo de arriba resaltado utilizando la web de pastebin.com, la verdad que muy util.

En breve mas cosas sobre este interesante juguete llamdo psp! 😉

Publicado en .psp, Programación, Python, web | Deja un comentario

Matemáticas

Hoy, mientras desayunaba mi padre ha aparecido de la nada para hacerme una inquietante pregunta:

Entonces, ¿ahora sabes más matemáticas?

Presuponiendo que , antes, ya sabia algo de esta noble materia.

Publicado en El, Mañana | 2 comentarios

Intentos

Tan sólo se puede catalogar a un ignorante desde una posición ausente de ignorancia, hablando de una ignorancia concreta ya que, en un plano general, todos somos bastante ignorantes.Pero si afirmamos que los inteligentes, digamos aquellos que gozan de una no-ignorancia concreta, están llenos de dudas, podríamos decir que no tienen la suficiente autoridad para poder afirmar quien es o deja de ser ignorante, pues incluso ellos podrían serlo para sí mismos. Lo cual nos conduce a la célebre frase que sintetiza una parte la doctrina filosófica de Sócrates.¿Entonces, si tan sólo sé que no sé, como puedo distinguir a los ignorantes que se ocultan tras el velo de falacias y sofismos?Sócrates mismo nos da la respuesta a este enigma, sentando así las bases para el inicio del conocimiento teórico. Saber que no sé, precede a un conocimiento, implicito, que todo aquel que cree saber ni tan siquiera a comenzado a vislumbrar.

Publicado en Añoranza, Intentos | Deja un comentario