domingo, 19 de abril de 2009

vmware + ubuntu + samba

En las siguientes líneas les mostrare como hice logre montar una carpeta de linux bajo vmware desde windows (para esto me base en HOWTO: VMware - Ubuntu to XP - Setup Samba File Sharing ).

Esto no necesariamente es la mejor forma, pero es la que me funciono :)

Para esto el linux antes que nada debe contar con el servicio samba.

En mi caso para partir con un ejemplo que me fuera útil, montare la carpeta '/var/www' donde apache almacena los fuentes de los sitios web.

Creamos el grupo sharer
#sudo groupadd sharer

Creamos el usuario sharer perteneciente al grupo sharer
#sudo useradd --gid sharer --shell /bin/false sharer --home /nonexistent

le asignamos una clave al usuario sharer
#sudo smbpasswd -a sharer

para este ejemplo compartiremos la carpeta /var/www

#cd /var
#sudo chown tu_username:sharer www
#sudo chmod 775 www
#sudo chmod g+s www

editamos /etc/samba/smb.conf


security = share

[www]
path = /var/www
valid users = sharer
read only = No
create mask = 0777
directory mask = 0777


Ahora reiniciamos samba

#sudo /etc/init.d/samba restart


Codigo para montar desde un linux (probado en un linux ubuntu 9.10)
sudo mount -t cifs //192.168.1.130/www /mnt/smb -o username=sharer,password=xxxxx

Ahora viene montar la unidad desde windows
En mi caso tengo el windows en ingles

En windows nos vamos al explorador de windows
ahí seleccionamos Tools->Map Network Drive



En mi caso le asigne la unidad 'Z'
y la carpeta \\la_ip_de_mi_linux\www



Selecciono: Connect using a different user name (conectarse con un usuario distinto).
usuario: sharer
password: cla clave asignada al usuario sharer


Presionamos 'OK' y finalmente 'Finish'

Quedando finalmente asi.


domingo, 5 de abril de 2009

Columna con 100% de alto dentro de div.

Hace poco me tope con un problema en el cual deseaba poner una columna en el lado izquierdo con un alto del 100% y que a su vez no excediera la altura del contenedor de dimensiones variables para que el pie de página no exceda los límites del navegador.

Si el contenido de la columna del lado izq hacia que excediera la altura del contenedor debia funcionar la opción css 'overflow: auto'

Primero genere una página basándome en http://www.cssstickyfooter.com/ para que el pie de pagina siempre quedara al final (razón por me era desconocido la altura del contenedor).

además use las librerías de prototype para simplificar el manejo de los javascript.

Quedando asi.



el lado blanco representa el menú izquierdo, el amarillo el contenido donde si desean pueden aplicar el mismo truco, la parte inferior el pie de página.




Codigo XHTML
<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link rel="stylesheet" href="http://www.cssstickyfooter.com/style.css" type="text/css" media="screen" />
<script type="text/javascript" src="http://www.prototypejs.org/javascripts/prototype.js"></script>

<script type="text/javascript">
Event.observe(window, 'load', function() {
redimensiona();
});

window.onresize = function(){
redimensiona();
}

function redimensiona(){
var contenedor = $('contenedor');
var menu = $('menu-izq');
var foot = $('footer');
var contDims = contenedor.getDimensions();
var menuDims = menu.getDimensions();
var footDims = foot.getDimensions();
var y = ( contDims.height - footDims.height ) ; /*resto footer*/
var styles = { height: y +'px' };
menu.setStyle(styles);

}

</script>

</head>

<body id="contenedor">

<div id="wrap" style="background-color:#CCCCCC">
<div id="main" class="clearfix" >
<div id="menu-izq" style="background-color:#FFFFFF;float:left;width:100px;overflow:auto;">menu </div>
<div id="detalle" style="background-color:#FFFF00">contenido</div>
</div>
</div>
<div id="footer" style="background-color:#993300">
Pie de pagina
</div>
</body>
</html>


la función redimensiona se encarga de redimensionar la altura del menú izquierdo al calcular la nueva altura 'y' al restarle al contenedor principal 'contenedor' la altura del pie 'footer' con la operacion var y = ( contDims.height - footDims.height ) ; para luego reasignársela al menú 'menu-izq' con var styles = { height: y +'px' }; menu.setStyle(styles); .