miércoles, 26 de octubre de 2016

Macros mano


Sub tareaBoton1()
 
    m = 3
    While Worksheets("Hoja2").Cells(m, 2).Value <> ""
        m = m + 1
    Wend
        m = m - 3
    n = 3
    While Worksheets("Hoja1").Cells(n, 2).Value <> ""
        n = n + 1
    Wend
        n = n - 3
     
    MsgBox m
    MsgBox n
     
    For i = 0 To (m - 1)
 
        nombreCompleto2 = Split(Worksheets("Hoja2").Cells(i + 3, 2).Value)
        length2 = UBound(nombreCompleto2) + 1
        MsgBox i
     
        For j = 0 To (n - 1)
         
            nombreCompleto1 = Split(Worksheets("Hoja1").Cells(j + 3, 2).Value)
            length1 = UBound(nombreCompleto1) + 1
            h = 0
            MsgBox j
         
            For k = 0 To (length2 - 1)
         
                For l = 0 To (length1 - 1)
                 
                    If nombreCompleto2(k) = nombreCompleto1(l) Then
                   
                        h = h + 1
                     
                    End If
                 
                Next
                 
            Next
         
            If h >= (length2 - 1) Then
             
                Worksheets("Hoja2").Cells(i + 3, 4).Value = Worksheets("Hoja1").Cells(j + 3, 3).Value
                MsgBox "Copiado" & (i + 3) & (j + 3)
                         
            End If
         
        Next
     
    Next
 
    'For i = LBound(nombreCompleto1) To UBound(nombreCompleto1)
    '    txt = txt & nombreCompleto1(i) & vbCrLf
    'Next i
    MsgBox "Realizado"
    'MsgBox (txt)
    'MsgBox (nombreCompleto1)
    'MsgBox (length1)
    'MsgBox (m)
    'MsgBox (n)
    'MsgBox (length2)
End Sub

sábado, 29 de noviembre de 2014

https://mega.co.nz/#!C40GSSSY!kkdTyJFUdLxzgaAlW1mVoTASNm8w9n9B5IYXCawGC_o

aqui el link del proyecto de reconocimiento de patrones

viernes, 29 de noviembre de 2013

web miniatura en facebook

Definir la imagen usada como miniatura al compartir en facebook

Definir la imagen usada como miniatura al compartir en facebook, Una vez integrado el botón compartir de facebook, por ejemplo con el plugin ADDTHIS para php,joomla o wordpress. Vamos a elegir la imagen que queremos como miniatura para el compartir en facebook. Facebook por defecto ya escoge las imágenes de tu web al hacer clic en el botón compartir y te muestra una paginación en el caso de que tengas mas de una imagen en tu web, para que elijas la imagen mas idónea (a criterio personal) para el contenido que se va a compartir. Para evitar que facebook se tome la libertad de hacer esto, y así evitar que todas las imagenes de tu web sean seleccionadas por el, basta con añadir el atributo “rel=” al tag que contenga la imagen que deseamos escoger como única y predeterminada para este compartir. un ejemplo de este tributo seria:
Con esto facebook ya sabe que solo debe obtener esta imagen ya que sera la única que contenga el rel=”image_src”. En el caso de que existan mas imagenes con este rel, facebook obtiene todas aquellas que lo contengan, mostrando la paginación para seleccionar la miniatura Si este metodo no funcionara correctamente, por cualquier motivo. Tenemos otra forma de hacer esto.
Paso a describirla: Consiste en definir un metatag en el header que contiene la propiedad que nos indica facebook en su pagina de documentacion sobre sus propios plugin. No olvidemos que cuando hacemos click en el boton compartir lo unico que hacemos es definir que url es la que compartimos, y es el propio facebook quien se encarga de recuperar las imagenesque nosotros definimos como predeterminadas en el caso de que lo hagamos asi.
Por lo cual en el momento que hagamos click en compartir pasamos la responsabilidad a facebook. Para definir este meta tag, agregamos esta linea:
es importante, mucho, definir la URL absoluta de la imagen para evitar errores en la captura de la imagen por parte de facebook. Con este metatag esta comprobado que correctamente coge unicamente la imagen definida en “content” y no alguna otra de nuestra web. Indico como nota, revisar las url que hemos configurado en el enlace de compartir de nuestra web, ya que una mala referencia hace que se invalide este proceso y no fucione. Como ultimo paso, en el caso de que sigamos viendo que facebook siga cogiendo la imagen erronea y no la que nosotros definimos, podemos depurar nuestra pagina en el debugger de Facebook. Esto es util ya que facebook nos cachea la pagina y las imagenes que compartimos en este tipo de botones para acelerar el proceso.
El debugger se encuentra en: https://developers.facebook.com/tools/debug, solo debemos introducir la url o urls a depurar de nuestra pagina y facebook se encarga de depurar la web, mostrandonos los errores que hemos cometido, o los contenidos que busca y no encuentra por que intefieren otras propiedades u otros elementos, por ejemplo: el titulo, la url o la imagen. Ademas de comprobar y mostrarnos esto, actualiza la cache que el tiene guardada de nuestro sitio.
*OJO con el debugger. Debemos introducir la url real que se usa para compartir un contenido, en el caso de que introduzcamos una url y no veamos cambio efecivo debemos fijarnos en este punto por que quizas estemos introduciendo una url del tipo: [ http://www.dominio.es/noticia/contenido.php?id=01 ] y quizas la url que le indicamos en nuestra web este codificada cuando llamamos a facebook: [ http%3A%2F%2Fdominio%2Fnoticia%2Fcontenido.php%3Fid%3D01 ] Esto lo podemos comprobar en la barra de direcciones del navegador una vez que hemos hecho clic para compartir un contenido. Este “despiste” puede ser producto de que para compartir una URL correctamente con facebook debemos codificarla con PHP a traves de su metodo urlencode

fuente:

viernes, 23 de agosto de 2013

I.E. - What Does i.e. Mean?

"I.e." stands simply for "that is," which written out fully in Latin is 'id est'. "I.e." is used in place of "in other words," or "it/that is." It specifies or makes more clear.

E.G. - What Does e.g. Mean?

"E.g." means "for example" and comes from the Latin expression exempli gratia, "for the sake of an example," with the noun exemplum in the genitive(possessive case) and singular to go with gratia in theablative (prepositional case) singular. "E.g." is used in expressions similar to "including," when you are not intending to list everything that is being discussed.

Example 1. Places to Concentrate:

I.E. (Id Est)

Sample sentence
I'm going to the place where I work best, i.e., the coffee shop.
Explanation
[There is only one place that I am claiming is best for my work. By using "i.e.", I am telling you I am about to specify it.]

E.G. (Exempli Gratia)

Sample sentence
At the places where I work well, e.g., Starbucks, I have none of the distractions I have at home.
Explanation
[There are lots of coffee shops I like, but Starbucks is the only international one, so it's the only "example" that would work.]
I like coffee shops, e.g., Starbucks, Seattle's Best, etc.

Automated Function Point (AFP) adopted as a standard by OMG


Automated Function Point analysis

I think we are all familiar with the Function Point concept, used for evaluation of the size of a software application in terms of functional features. We are all well aware of the limits of this unit of measure, to the point that it is considered rather obsolete in the software engineering community: subjectivity is the main flaw that people tend to highlight for FP analysis, despite some existing standard, mainly from ISO, tried to solve the issue. FP are currently used in industry and public administrations for issuing calls and describing complexity, but usually it is adopted only in paperworks, not by software designers and developers.
A few research activity have recently tried to bind function point analysis to model-driven engineering practices, at the purpose of automating the counting of FP starting from software models (for instance, you can look at the paper "Automating function point analysis with model driven development" presented at CASCON'06), but that remained a purely theoretical exercise, even if it was actually implemented in the WebRatio tool suite at the time.

That's why I have been surprised when I got the news that OMG recently adopted a new standard related to Function Point analysis.
The new standard is called Automated Function Point (AFP). The initiative was led by the Consortium for IT Software Quality (CISQ) and by David Herron, coauthor of Function Point Analysis and leader of the international team that developed the standard
The Automated Function Point (AFP) was voted as an OMG specification in January 2013 through an RFC process (request for comments).
AFP provides a standard for automating the popular Function Point measure according to the counting guidelines of the International Function Point User Group.
Richard Soley commented the news as follows:
"Function-point counting has been around for ages. But function-point estimation has always been just that—estimation. [...] With the new OMG Automated Function Point specification, function-point counts aren't estimations; they're counts—consistent from count to count, and person to person. Even more importantly, the standard is detailed enough to be automatable, i.e., it can be carried out by a program." 
 If the standard will keep his promise, I think it can bring back the concept of function point to a level that makes it usable from actual software engineers. However, I think we will need something more than that for revitalizing the usage of FP in technical activities. In a sense, I think that trust in FP analysis has been probably irremediably lost in the software engineering community.
Do you agree / disagree with my viewpoint?

martes, 5 de febrero de 2013

Problemas con el AppServ


Esto es lo que incluye el actual paquete AppServ 2.5.7, es obvio pero vale la pena recordar que como esta formado por 4 paquetes (apache, php, mysql, phpmyadmin), cada uno sigue lanzando nuevas versiones, que podemos instalar por separado o esperar la próxima versión de AppServ. Por lo general no debemos apresurarnos ya que nuestro PC lo usamos de entorno de desarrollo y testeo de las aplicaciones.
Donde bajamos AppServ, Gratis?
Si, afortunadamente este paquete es gratuito, o sea que no tendremos pretextos para sumarnos a esto del PHP y MySQL, lo podemos bajar de su Web oficial, que en español esta situada acá:
Es muy liviano y de ahí mismo podemos bajar la última versión, siempre.
Como instalar AppServ
Eso es lo mejor, es muy fácil de hacer, basta con un doble click en el instalador que nos bajamos de la Web y luego damos siguiente, siguiente, varias veces hasta que queda instalado. Pero bueno este tutorial no tiene sentido si es tan fácil, por tanto para hacer como que trabajo, vamos a ver paso a paso esas pantallas donde solo basta con dar "siguiente".
1) Damos doble click en el icono del instalador que nos bajamos. Aparece la imagen que vemos debajo, recuerda que la versión puede ser más nueva cuando tú intentes ;), pero tranquilo se usara igual que como comento ahora. Debemos dar, siguiente (next).
Bienvenida de AppServ
2) Aparece el acuerdo de licencia, ahí debemos dar conformidad (I Agree)
Licencia de AppServ
3) En este punto, debemos elegir en cual de nuestros discos duros y en que carpeta vamos a instalar el AppServ, a mi no me gusta pensar mucho por tanto dejo siempre el directorio recomendado por defecto, o sea: c:\AppServ, como muestra la imagen, y le damos siguiente (Next)
Elegir disco y carpeta de Instalacion
4) En este punto debemos elegir los componentes que vamos a instalar (recuerda que todos los pasos basta con dar siguiente siguiente), como ves aparecen marcados los cuatro elementos disponibles (apache, mysql, php, phpmyadmin) si bien puedes desmarcar alguno, es mejor instalar todos para tener completo tu equipo de testeo y desarrollo Web, le damos siguiente (Next)
Componentes de AppServ
5) En este punto debes indicar el nombre del servidor y el email del administrador del sistema, en mi caso dejo localhost y email elquique@localhost.com, respectivamente, el puerto 80. Recuerda que puedes dar siguiente y dejar lo que sugiere sin problemas.
Servidor y email de AppServ


ES IMPORTANTE SABER EN QUE PUERTO LO VAS A INSTALAR SI ES EN EL 80 U OTRO COMO EL 81 (depende de si otro programa esta utilizando este puerto, como puede ser Skype, sql server, instala primero el appserv y luego el sql server) SI LO HICISTE EN EL 81 DEBES DE ENTRAR CON http://localhost:81/


6) Configuración MySQL, en este punto debemos prestar atencion, ya que debemos indicar el Password, para el usuario principal de la base de datos, lo escribimos 2 veces !! Y por favor lo recuerdan (no lo anoten bajo el teclado como mi tía Clotilde). Lo demás lo dejamos como esta en la imagen.
Usuario y Contraseña MySQL
Por tanto el usuario será root, que es por defecto (tu luego puedes crear mas, todos los que quieras) y tu Contraseña que acabas de escribir, eso lo usaras para abrir la base desde tus programas PHP, por eso es importante recordar ;)
Le damos siguiente (Next)

ES MUY IMPORTANTE QUE LE DES CHECK EN ENABLE InnoDB PARA TENER INTEGRIDAD REFERENCIAL SIN EMBARGO DEPENDE DE QUE TIPO DE BASES DE DATOS DESEAS TENER
(no te preocupes después puedes activarla o desactivarla).


7) Para culminar la instalación, como indica la imagen, podemos elegir si al finalizar ya comenzara a funcionar el Server Apache y el servidor de base de datos MySQL, lo dejamos marcado y le damos finalizar (Finish), listo hemos terminado.
Finalizar instalacion de AppServ
En este punto si vas a tu navegador (ojala y sea FireFox jaja), puedes poner, http://localhost y debe mostrarse tal como muestra la imagen. Salvo las versiones que el tuyo puede ser mas nuevo.
Localhost de AppServ