elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [javascript] Busco Colaboradores en Proyecto GPL - Minimal JS Framework
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [javascript] Busco Colaboradores en Proyecto GPL - Minimal JS Framework  (Leído 7,245 veces)
AFelipeTrujillo

Desconectado Desconectado

Mensajes: 160



Ver Perfil WWW
[javascript] Busco Colaboradores en Proyecto GPL - Minimal JS Framework
« en: 12 Octubre 2010, 18:01 pm »

Hola todos, estoy buscando personas interesadas en el medio para que me colaboren en la construccion de Framewaork en JS, yo se que ya hay bastantes pero la idea es hacernos uns propio, para hispanos !!! ... si se le miden le dejo un version del framework analicenla y comentan ... tan sera recibidas sus sugerencias y criticas

Les dejo el codigo:

Código
  1. /**
  2.  * @author 4ng3r
  3.  */
  4. Min={
  5.    version: '1.0',
  6.    name: 'Minimal JS Framework 2010',
  7.    consola: 1,        
  8. }
  9.  
  10. /**
  11.  * @alias Url
  12.  * @classDescription Clase desarrollada para manejar todas las propiedades del objeto location
  13.  */
  14.  
  15. Min.Url = {
  16.  /**
  17.      * @method ubicacion
  18.      * @return Object
  19.      */
  20.    ubicacion:function(){
  21.    return window.location
  22.  },
  23.    /**
  24.      * @method host
  25.      * @return String
  26.      */
  27.    host:function(){
  28.        return this.ubicacion.host;
  29.    },
  30.    /**
  31.      * @method url
  32.      * @return String
  33.      */
  34.    url:function(){
  35.        return this.ubicacion.href;
  36.    },
  37.    /**
  38.      * @method hostname
  39.      * @return String
  40.      */
  41.    hostname:function(){
  42.        return this.ubicacion.hostname;
  43.    },
  44.    /**
  45.      * @method ruta
  46.      * @return String
  47.      */
  48.    ruta:function(){
  49.        return this.ubicacion.pathname;
  50.    },    
  51.    /**
  52.      * @method hash
  53.      * @return String
  54.      * @Description retorna un String como todo lo que esta despues del # en la URL
  55.      */
  56.    hash:function(){
  57.        return this.ubicacion.hash;
  58.    },    
  59.    /**
  60.      * @method puerto
  61.      * @return String
  62.      */
  63.    puerto:function(){
  64.        return this.ubicacion.port;
  65.    },    
  66.    /**
  67.      * @method protocolo
  68.      * @return String
  69.      */
  70.    protocolo:function(){
  71.        return this.ubicacion.protocol;
  72.    },    
  73.    /**
  74.      * @method variables
  75.      * @return String
  76.      * @Description retorna un String como todo lo que esta despues del ? en la URL
  77.      */
  78.    variables:function(){
  79.        return this.ubicacion.search;
  80.    },
  81.    /**
  82.      * @method obtenerVariables
  83.      * @return Void
  84.      * @Description Retorna las variables con su respectivo valor
  85.      */
  86.    obtenerVariables:function(){
  87.      Url = Min.Url.url();
  88.    Url = Url.replace(/.*\?(.*?)/,"$1");
  89.    Variables = Url.split ("&");
  90.    for (i = 0; i < Variables.length; i++) {
  91.           Separ = Variables[i].split("=");
  92.           eval (Separ[0]+'="'+Separ[1]+'"');
  93.    }
  94.  },
  95.    /**
  96.      * @method verResumen
  97.      * @return String
  98.      * @Description retorna el resumen del objeto Location
  99.      */
  100.    verResumen:function(){
  101.        var cadena = "<b>Nombre del HOST: </b>"+this.host()+"<br>";
  102.        cadena += "<b>Ubicacion: </b>"+this.url()+"<br>";
  103.        cadena += "<b>Ruta: </b>"+this.ruta()+"<br>";
  104.        cadena += "<b>Ver Hash: </b>"+this.hash()+"<br>";
  105.        cadena += "<b>Ver Puerto: </b>"+this.puerto()+"<br>";
  106.        cadena += "<b>Ver Protocolo: </b>"+this.protocolo()+"<br>";
  107.        cadena += "<b>Ver Variables: </b>"+this.variables()+"<br>";
  108.        return cadena;
  109.    },
  110.    /**
  111.      * @method redireccionar
  112.      * @param String url
  113.      */
  114.    redireccionar:function(url){
  115.        if(Min.valiciones.esUrl(url)){
  116.            this.ubicacion.assign(url);    
  117.        }else{
  118.            if(Min.consola){
  119.                alert('URL no valida: '+url);
  120.            }            
  121.        }
  122.    },
  123.    /**
  124.      * @method remplezarURL
  125.      * @param Strin url
  126.      * @Description remplazar la pagina actual a otra, borrandola del historial
  127.      */
  128.    remplezarURL: function(url){
  129.        if(Min.valiciones.esUrl(url)){
  130.            this.ubicacion.replace(url);    
  131.        }else{
  132.            if(Min.consola){
  133.                alert('URL no valida: '+url);
  134.            }            
  135.        }        
  136.    },
  137.    /**
  138.      * @method recargar
  139.      */
  140.    recargar:function(){
  141.        this.ubicacion.reload();
  142.     }    
  143. }
  144.  
  145. Min.valiciones={
  146.    /**
  147.      * @method esString
  148.      * @param Strin str
  149.      * @return Boolean
  150.      */
  151.    esNumero:function(str){
  152.        return !isNaN(str);
  153.    },
  154.  
  155.    /**
  156.      * @method esUrl
  157.      * @param Strin url
  158.      * @return Boolean
  159.      */
  160.    esUrl:function(url){
  161.      var str = new String(url);
  162.        var re=/^http:\/\/\w+(\.\w+)*\.\w{2,3}$/;
  163.        return re.test(str);
  164.    },
  165.    /**
  166.      * @method validarCampoCorreo
  167.      * @param String email
  168.      * @return Booblean
  169.      */
  170.    esEmail:function(email){
  171.      var str = new String(email);
  172.    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(str)){
  173.      return true;
  174.    }else {
  175.      return false;
  176.    }
  177.  },
  178.  /**
  179.      * @method esHora
  180.      * @param String hora
  181.      * @return Booblean
  182.      * @example var bool = Min.valiciones.esHora("12:00 AM");    //true
  183.      */
  184.  esHora:function(hora){
  185.    var er_fh = /^(1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10|11|12)\:([0-5]0|[0-5][1-9])\ (AM|PM)$/
  186.     if( str == "" ){
  187.      return false
  188.     }
  189.     if(!(er_fh.test(hora))){
  190.      return false
  191.     }
  192.     return true
  193.  },
  194.  /**
  195.      * @method esFecha
  196.      * @param String fecha
  197.      * @return Booblean
  198.      * @example var f = Min.valiciones.esFecha("12-11-2009"); //true    
  199.      */
  200.  esFecha:function(fecha){
  201.    var Fecha= new String(fecha);
  202.      var RealFecha= new Date();
  203.      var Ano= new String(Fecha.substring(Fecha.lastIndexOf("-")+1,Fecha.length));
  204.      var Mes= new String(Fecha.substring(Fecha.indexOf("-")+1,Fecha.lastIndexOf("-")));
  205.      var Dia= new String(Fecha.substring(0,Fecha.indexOf("-")));
  206.      if (isNaN(Ano) || Ano.length<4 || parseFloat(Ano)<1900){
  207.          return false;
  208.    }
  209.      if (isNaN(Mes) || parseFloat(Mes)<1 || parseFloat(Mes)>12){
  210.          return false;
  211.      }
  212.      if (isNaN(Dia) || parseInt(Dia, 10)<1 || parseInt(Dia, 10)>31){
  213.          return false;
  214.      }
  215.      if (Mes==4 || Mes==6 || Mes==9 || Mes==11 || Mes==2) {
  216.          if (Mes==2 && Dia > 28 || Dia>30) {
  217.             return false;
  218.        }
  219.    }
  220.  return true;
  221.  },
  222.  /**
  223.      * @method tieneNumeros
  224.      * @param String str
  225.      * @return Booblean
  226.      */
  227.  tieneNumeros:function(str){
  228.    var numeros="0123456789";
  229.    return this.comparacion(str,numeros);
  230.  },
  231.  /**
  232.      * @method tieneMinusculas
  233.      * @param String str
  234.      * @return Booblean
  235.      */
  236.  tieneMinusculas:function(str){
  237.    var letras="abcdefghyjklmnñopqrstuvwxyz";
  238.    return this.comparacion(str,letras);
  239.  },
  240.  /**
  241.      * @method tieneMayusculas
  242.      * @param String str
  243.      * @return Booblean
  244.      */
  245.  tieneMayusculas:function(str){
  246.    var letras="ABCDEFGHYJKLMNÑOPQRSTUVWXYZ";
  247.    return this.comparacion(str,letras);
  248.  },
  249.  /**
  250.      * @method comparacion
  251.      * @param String str
  252.      * @param String patron    
  253.      * @return Booblean
  254.      * @description Esta funcion busca en la cadena si existe un patron    
  255.      */
  256.  comparacion:function(str,patron){
  257.    for(i=0; i<str.length; i++){
  258.      if (patron.indexOf(str.charAt(i),0)!=-1){
  259.         return true;
  260.      }
  261.    }
  262.    return false;
  263.  }
  264. }
  265.  
  266. Min.vector={
  267.    /**
  268.      * @method crearArreglo
  269.      * @param Object o
  270.      * @return Array
  271.      */
  272.    crearVector:function(o){
  273.        if ((typeof o) == "object") {
  274.            var tmp = new Array()
  275.            for(item in o){
  276.                tmp[item]=o[item];
  277.            }
  278.            return tmp;    
  279.        }
  280.        return null;    
  281.    },
  282.    /**
  283.      * @method agregar
  284.      * @param Array vector
  285.      * @param String Item || Number Item
  286.      * @param Object valor (Number, Boolean, String)
  287.      */
  288.    agregar:function(vector,item,valor){
  289.        if ((typeof vector)=="object"){
  290.            vector[item]=valor;    
  291.        }else{
  292.            return null;
  293.        }        
  294.    },
  295.    /**
  296.      * @method eliminar
  297.      * @param Array arreglo
  298.      * @param String Item || Number Item
  299.      */
  300.    eliminar:function(vector,item){
  301.        if ((typeof vector) == "object") {
  302.            vector[item]=null;
  303.        }        
  304.    },
  305.    /**
  306.      * @method logitud
  307.      * @param Array arreglo
  308.      * @return Number
  309.      */
  310.    logitud:function(vector){
  311.        if ((typeof vector) == "object") {
  312.            return vector.length;
  313.        }
  314.    },    
  315. }
  316.  
  317. Min.DOM={
  318.    documento: document,
  319.    /**
  320.      * @method obtenerElementoID
  321.      * @param String id
  322.      * @return Object
  323.      */
  324.    obtenerElemento:function(id){
  325.        return Min.DOM.documento.getElementById(id);
  326.    },
  327.    /**
  328.      * @method DOMCompleto
  329.      * @param Function f
  330.      */    
  331.    DOMCompleto:function(f){
  332.        Min.Ventana.ventana.onload=function(){
  333.            f();    
  334.        }
  335.    },
  336.    /**
  337.      * @method obtenerPrimerHijo
  338.      * @return Object
  339.      */
  340.    obtenerPrimerHijo: function(){
  341.        return Min.DOM.documento.firstChild;
  342.    },
  343.    /**
  344.      * @method obtenerUltimoHijo
  345.      * @return Object
  346.      */
  347.    obtenerUltimoHijo: function(){
  348.        return Min.DOM.documento.lastChild;
  349.    },
  350.    obtenerPadre:function(el){
  351.        return el.parentNode;
  352.    },
  353.    /**
  354.      * @method obtenerBody
  355.      * @return Object
  356.      */
  357.    obtenerBody:function(){
  358.        return document.getElementsByTagName('body')[0];
  359.    },
  360.    /**
  361.      * @method insertarElemento
  362.      * @param object padre
  363.      * @param object hijo
  364.      */
  365.    insertarElemento:function(padre,hijo){
  366.        return padre.appendChild(hijo);
  367.    },
  368.  
  369.    agregarEvento:function(obj,evento,funcion){
  370.      var n = Min.Navegador.obtenerNavegador();
  371.      if(n==1){
  372.        obj.addEventListener(evento,funcion,false);
  373.      }
  374.  }
  375. }
  376.  
  377. Min.Ventana={
  378.    ventana: window,
  379.    ancho: window.screen.width,
  380.    alto: window.screen.height,
  381.    /**
  382.      * @method moverCapas
  383.      * @param String el
  384.      */    
  385.    moverCapas: function(el){
  386.        this.naveador=Min.Navegador.obtenerNavegador();
  387.        this.elemento=el;
  388.        this.comenzarMovimiento=function(){
  389.            var elMovimiento=document.getElementById(this.getId());
  390.            elMovimiento.style.position="relative";
  391.            elMovimiento.onmousedown=function(event){
  392.                cursorComienzoX=event.clientX+window.scrollX;
  393.                cursorComienzoY=event.clientY+window.scrollY;
  394.                document.addEventListener("mousemove",enMovimiento, true);
  395.                document.addEventListener("mouseup",finMovimiento, true);
  396.                elComienzoX=parseInt(elMovimiento.style.left);
  397.                elComienzoY=parseInt(elMovimiento.style.top);
  398.                function enMovimiento(event){
  399.                    var xActual, yActual;
  400.                    xActual=event.clientX+window.scrollX;
  401.                    yActual=event.clientY+window.scrollY;
  402.                    elMovimiento.style.left=(elComienzoX+xActual-cursorComienzoX)+"px";
  403.                    elMovimiento.style.top=(elComienzoY+yActual-cursorComienzoY)+"px";
  404.                    elMovimiento.style.opacity="0.4";
  405.                    evitaEventos(event);
  406.                }
  407.  
  408.                function finMovimiento(){
  409.                    document.removeEventListener("mousemove", enMovimiento, true);
  410.                    document.removeEventListener("mouseup", finMovimiento, true);
  411.                    elMovimiento.style.opacity="1";
  412.                }
  413.  
  414.                function evitaEventos(){
  415.                    event.preventDefault();
  416.                }
  417.            }
  418.        }
  419.        this.getId=function(){
  420.            return this.elemento;
  421.        }
  422.    },
  423.    crearVentana:function(titulo,ancho,alto){
  424.        alert(alto);
  425.        var b = Min.DOM.obtenerBody();
  426.        var d = document.createElement('div');
  427.        d.setAttribute('id','ventana1');
  428.        d.setAttribute('style','width: '+ancho+'px; height:'+alto+'px;');
  429.        d.setAttribute('class','ventana');
  430.        var panel = Min.DOM.insertarElemento(b,d);
  431.        d = document.createElement('div');
  432.        d.setAttribute('id','titulo');
  433.        d.setAttribute('class','ventana');
  434.    }
  435. }
  436.  
  437. Min.Navegador={
  438.    obtenerNavegador: function(){
  439.        if(navigator.userAgent.indexOf("MSIE")>=0){
  440.            return navegador=0;    
  441.        }
  442.        return navegador=1;    
  443.    },  
  444.  obtenerSistemaOperativo:function(){
  445.  
  446.  }    
  447. }
  448.  
  449. Min.Efectos={
  450.    /**
  451.      * @method iluminarElemento
  452.      * @param Number inicio
  453.      * @param Number fin
  454.      * @param Object el
  455.      */
  456.    iluminarElemento:function(inicio,fin,el){
  457.        if(Min.valiciones.esNumero(inicio)&&Min.valiciones.esNumero(fin)){
  458.  
  459.        }
  460.    }
  461. }
  462.  

Les dejo un Ejemplo:

Código
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2.  <head>
  3.  <script src="framework.js"></script>
  4.  <script>
  5.    Min.DOM.DOMCompleto(function(){
  6.      var obj = Min.DOM.obtenerElemento('a');
  7.      Min.DOM.agregarEvento(obj,"click",function(){
  8.        alert("Este es un evento Click en el Objeto: "+this.id);
  9.      });
  10.    })
  11.  </script>
  12.  </head>
  13.  <body>
  14.  
  15.    <div id="a">
  16.        <h1>HOLA</h1>
  17.    </div>
  18.  
  19.  </body>
  20. </html>
  21.  


« Última modificación: 12 Octubre 2010, 18:07 pm por 4ng3r » En línea

AFelipeTrujillo

Desconectado Desconectado

Mensajes: 160



Ver Perfil WWW
Diagrama de Despliegue - Para mJSf
« Respuesta #1 en: 22 Octubre 2010, 16:17 pm »

Diagrama de Despliegue

Esta es un propuesta de despliegue al framework


Detalles

Mi idea es desarrollar el Framework en tres capas, una a nivel de navegador la cual he llamado M_nus (se lee Minus se pronuncia Mainus) donde al desarrollador de software se le brindaran funciones que facilitara el uso y la comprensión del producto final. Básicamente es un interfaz en donde el usuario se sentirá mas agrado al programar en mJSf, como crear clases para maquetacion o componentes mas visuales como ventanas, alertas entre otros.

La segunda capa es el Framework que esta en producción actualmente, que no esta hecho es la parte de adaptadores que comunicara la librería con los diferentes Framework's que existen en la WEB

La ultima capa la denomine Base y contiene librerías ya desarrolladas que nos podrían ser útiles en la incorporación de plug-ins

FUENTE



En línea

bomba1990


Desconectado Desconectado

Mensajes: 395



Ver Perfil WWW
Re: [javascript] Busco Colaboradores en Proyecto GPL - Minimal JS Framework
« Respuesta #2 en: 23 Octubre 2010, 15:50 pm »

tengo una preguntica, no es algo un poco descabellado hacer un framework de framework. porque eso fu elo que entendi de tu propuesta. ademas eso subiria bastante el peso de la pagina al tener que descargar varios frameworks a la ves. si me equivoco avisame.
En línea

"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve
AFelipeTrujillo

Desconectado Desconectado

Mensajes: 160



Ver Perfil WWW
Re: [javascript] Busco Colaboradores en Proyecto GPL - Minimal JS Framework
« Respuesta #3 en: 25 Octubre 2010, 22:41 pm »

no es para nada descabellado, esta propuesta de arquitectura es para aplicaciones RIA esta centrada en desarrollar nuestra propia libreria y opcionalmente utilizar otras ya hechas no como algo funcional (osea que no dependamos de ella) sino como otra alternativa....

no se si respondi la duda ???
En línea

bomba1990


Desconectado Desconectado

Mensajes: 395



Ver Perfil WWW
Re: [javascript] Busco Colaboradores en Proyecto GPL - Minimal JS Framework
« Respuesta #4 en: 26 Octubre 2010, 18:11 pm »

si te entiendo, tu planteas hacer algo como jquery o mootols. pero cual es tu interes personal  para crear una nueva??
En línea

"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve
Franki

Desconectado Desconectado

Mensajes: 46


Ver Perfil WWW
Re: [javascript] Busco Colaboradores en Proyecto GPL - Minimal JS Framework
« Respuesta #5 en: 26 Octubre 2010, 20:20 pm »

Supongo que el interés está en aprender.

Obviamente no creo que mucha gente la utilizara ya que existen otros frameworks mucho más completos.

Además jQuery no es un simple framework javascript, también se amplia con jQuery UI para la construcción de RIAs y miles de plugins desarrollados por terceros.

Así que el proyecto me parece buena idea como superación profesional y aprendizaje. Incluso para crear un framework mínimo para ciertos proyectos, así que ánimo y suerte.
En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: [javascript] Busco Colaboradores en Proyecto GPL - Minimal JS Framework
« Respuesta #6 en: 26 Octubre 2010, 20:57 pm »

Al menos cuiden la ortografía, y más si va a ser algo que otras personas van a usar. Por ahí leí Valiciones, supongo que es Validaciones, no lo revisé completo. Se ve muy bien, suerte con el proyecto.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¡Busco proyecto!
Desarrollo Web
Daxen 3 3,039 Último mensaje 12 Marzo 2011, 10:00 am
por Aeros
Proyecto... Busco equipo « 1 2 »
Foro Libre
sauces 16 7,193 Último mensaje 5 Junio 2011, 16:16 pm
por Nestorin
[Aporte] Framework para Crear Juegos con javascript
Desarrollo Web
AFelipeTrujillo 7 7,042 Último mensaje 12 Diciembre 2013, 05:32 am
por bboyleok
[busco] colaboradores, traductores,diseñadores
.NET (C#, VB.NET, ASP)
spiritdead 0 1,745 Último mensaje 26 Febrero 2012, 18:16 pm
por spiritdead
Proyecto Robots forex, buscamos colaboradores
Desarrollo Web
robotciempies 0 1,772 Último mensaje 17 Abril 2016, 12:44 pm
por robotciempies
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines