Archive for November, 2008

  • Como Crear Un Form Dinamico En Javascript

    0

    Hoy voy a ser bueno y voy a entregar un poco de source code de mi framework. Vamos a ver como hacer un form dinamico en javascript estilo Ext JS usando un poco de DOM y otro de JSON.

    Vamos directamente al codigo, primero el source code de un par de metodos utiles.

    // utils
    function tag(tagName) {
     return document.createElement(tagName);
    } 
    
    function div(id) {
     var dom = tag(tagName);
     dom.id = id;
     return dom;
    }
    
    function get(id) {
     return document.getElementById(id);
    }
    

    Ahora css base para el form.

    .form-container {
    	border: 1px solid #ccc;
    	border-top: none;
    }
    
    .form-title {
    	background: #ccc;
    	height: 22px;
    	line-height: 22px;
    	font-weight: bold;
    	padding-left: 10px;
    }
    
    .form-body {
    	background: #fff;
    }
    
    .form-body-label {
    	text-align: left;
    	clear: left;
    	float :left;
    }
    
    .form-body-field-container {
    	padding-left: 80px;
    	margin-bottom: 4px;
    }
    
    .form-body-buttons {
    	margin-top: 7px;
    	text-align: center;
    }
    

    Ahora el codigo del widget usando las utilidades. La idea de este widget es que pueda crearse una seccion dentro de un DIV donde podamos dibujar un formulario con titulo y una serie de campos verticales tipo text, combo o checkbox. Obviamente agreguen otros componentes si los necesitan.

    /** constructor, canvas es el ID
    Form = function(canvas, options) {
    	this.canvas = get(canvas);
    	this.options = options;
    	this.init();
    }
    
    Form.prototype.init = function() {
    	this.drawContainer();
    	this.drawTitleBar();
    	this.drawBody();
    }
    
    Form.prototype.drawContainer = function() {
    	this.canvas.style.width = this.options.width;
    	this.canvas.className = "form-container";
    }
    
    Form.prototype.drawTitleBar = function() {
    	var titleBar = div("form-title");
    	titleBar.className = "form-title";
    	titleBar.innerHTML = this.options.title;
    	this.canvas.appendChild(titleBar);
    }
    
    Form.prototype.drawBody = function() {
    	var body = div("form-body");
    	body.className = "form-body";
    	this.canvas.appendChild(body);
    
    	for (var i = 0; i < this.options.fields.length; i  ) {
    		var field = this.options.fields[i];
    		var row = div();
    		var label = tag("label");
    		label.className = "form-body-label";
    		label.innerHTML = field.label;
    		label.htmlFor = field.id;
    		var fieldContainer = div();
    		fieldContainer.className = "form-body-field-container";
    		var input;
    		if (field.type == "input") {
    			input = tag("input");
    			input.type = "text";
    			input.className = "form-body-field-input";
    			input.size = field.size;
    		} else if (field.type == "checkbox") {
    			input = tag("input");
    			input.type = "checkbox";
    			input.className = "form-body-field-checkbox";
    			input.checked = field.checked ? "checked" : "";
    		} else if (field.type == "select") {
    			input = tag("select");
    			input.className = "form-body-field-select";
    		}
    		if (field.width) {
    			input.style.width = field.width;
    		}
    		input.id = field.id;
    		fieldContainer.appendChild(input);
    		row.appendChild(label);
    		row.appendChild(fieldContainer);
    		body.appendChild(row);
    	}
    
    	var buttonsRow = div();
    	buttonsRow.className = "form-body-buttons";
    	body.appendChild(buttonsRow);
    	for (var i = 0; i < this.options.buttons.length; i  ) {
    		var config = this.options.buttons[i];
    		var button = tag("input");
    		button.type = config.type;
    		button.value = config.label;
    		button.onclick = config.onclick;
    		buttonsRow.appendChild(button);
    	}
    
    }
    

    Y finalmente la implementacion, hay que recordar que este codigo se tiene que ejecutar DESPUES del que la pagina ha sido cargada, digamos, en el evento ONLOAD del window.

    window.onload = init;
    function init() {
    var config = {
    	title: "Mi nuevo formtirijillo",
    	width: "400px",
    	buttons: [{type: "submit", label: "Guardar", onclick: save} ,
    	  { type: "button", label: "Cancelar", onclick: cancel} ],
    	layout: "vertical",
    			fields: [
    				 {id: "custId", type: "input", size: "40", label: "Cliente" },
    				 {id: "address", type: "input", size: "44", label: "Direccion" },
    				 {id: "typex", type: "select", width: "124px", label: "Tipo" },
    				 {id: "loyal", type: "checkbox", label: "Es mudo?", checked: 1 }
    								]
    	};
    	var form = new Form("theform", config);
    }
    function save() {
      alert("save");
    }
    
    function cancel() {
      alert("cancel");
    }
    

    Y ultimo de todo el codigo html que necesitamos.

    <div id="theform"></div>
    
  • Como Actualizar A Ubuntu 8.10

    0

    Bastante pavo este articulo pero la verdad cambiar asi de sistema operativo tiene un sabor espectacular.


    Si no vas a hacer actualizacion y vas a instalar desde cero , aca estan los ISO


    Si vas a hacer actualizacion, lo primero es tener la 8.04 up to date.

    1. Actualizar los sources

    apt-get update
    

    2. Actualizar la version actual

    apt-get upgrade
    

    3. Las versiones .10 a diferencia de las .04 son releases parciales los cuales no tienen LTS (long term support), donde intentan que las .04 sean las instaladas en produccion y las .10 sean antecesoras de versiones definitivas.


    Por default no se puede actualizar a una version no LTS, para eso tenemos que tocar un file.

    nano/etc/update-manager/release-upgrades
    

    Aca hay que cambiar la linea que dice:

    Prompt=lts
    

    Por algo que diga:

    Prompt=normal
    

    4. Ahora si, si no tenes instalado el update manager core, aca te muestro como

    sudo apt-get install update-manager-core
    

    5. Darle Run Forrest

    sudo do-release-upgrade
    

    Va a tardar unos 15 minutos y no menos de 200 MB supongo. Pero todo sigue corriendo como si nada! increible.


    Una de las cosas mas copadas de esta distro es que viene Java Ready en competencia con lo LAMP.

  • Como Deshabilitar ROOT Login Para SSH

    0

    Mis virtual servers por mas distribucion diferente que tengas te entregan la root password habilitada para entrar por SSH lo cual para los linux boys es algo horrible.



    No voy a ser necio, y si saben saben, asi que aca procedemos a deshabilitar el acceso de root desde shh para luego impersonarse como tal una vez logueado como un usuario admin.

    Ante todo tenemos que tener al menos un superuser (sudoer) habilitado y probado para loguearse. Aca escribi un articulo para la monada ignorante.. Bueno, a laburar editando este file..

    nano /etc/ssh/sshd_config
    

    Hay que descomentar la linea siguiente cambiando su valor.

    PermitRootLogin no
    

    Listo ahora hace restart del sshd y voila!

    /etc/init.d/sshd restart
    Stopping sshd: [ OK ]
    Starting sshd: [ OK ]
    

    Listo, eso la verdad que es muy sencillo.

  • Como Agregar Un Superuser A Ubuntu Linux

    0

    Si le preguntas a un linux boy que te de el root password es lo mismo que le pidas que le pegue a su mama ya que para ellos jamas deberia alguien ser o saber la password de root. Tal es asi que las distro de Ubuntu no te dan el password de root de manera default.



    Siguiendo a quienes saben aca procedemos a agregar otro superuser (sudoer) al linux

    Primero que nada agregamos un user nuevo con el parametro -m para crear el home directory.

    useradd -m rasensio
    

    Ya creamos el user, ahora hay que setearle una password con el siguiente comando. Trata de no olvidartela :D.

    passwd rasensio
    Enter your unix password: xxxxxx
    Repeat password: xxxxxx
    

    Perfecto, ahora tenemos que editar el file sudoers para ver quien es quien y dejar que el user recien creado pueda impersonar a root con el comando sudo.

    visudo
    

    Ahora edita el file para que quede asi en el final.

    #
    # See the man page for details on how to write a sudoers file.
    # Defaults
    
    Defaults  !lecture,tty_tickets,!fqdn
    
    # Uncomment to allow members of group sudo to not need a password
    # %sudo ALL=NOPASSWD: ALL
    
    # Host alias specification
    
    # User alias specification
    
    # Cmnd alias specification
    
    # User privilege specification
    root  ALL=(ALL) ALL
    rasensio ALL=(ALL) ALL
    

    Listo, ahora proba loguearte a tu ssh con ese usuario, y luego proba impersonar a root. Siempre hay que darle una probada al menos.

    shh www.myhost.com
    user: rasensio
    password: xxxxxx
    
    sudo -i
    Enter rasensio's password: xxxxxx
    root@myhost.com
    

    Excelente, espero les sirva

Page 3 of 3«123