Coder Social home page Coder Social logo

kanglicheng / fluidprueba Goto Github PK

View Code? Open in Web Editor NEW

This project forked from colombianoxd/fluidprueba

0.0 2.0 0.0 16.13 MB

License: Other

XSLT 2.68% Ruby 3.41% Shell 0.72% HTML 0.03% Clojure 0.71% Gherkin 18.10% AGS Script 1.30% C++ 1.47% Haskell 0.21% Java 27.12% Python 21.81% Lua 0.22% OCaml 0.25% Rust 1.25% C# 11.35% PHP 1.72% Scala 2.74% C 1.47% JavaScript 3.00% Visual Basic 0.45%

fluidprueba's Introduction

Code Climate
Build Status

FLUID Training: Aprender Haciendo

Este es el repositorio con el cual FLUID realiza sus procesos de selección y formación de personal. La filosofia es fomentar el aprendizaje a partir de la solución activa de problemas y desestimular el aprendizaje pasivo.

El repositorio contiene las soluciones a retos computacionales publicos construidos en el contexto anterior. Al hacer los retos publicos buscamos los siguientes objetivos:

  1. Fomentar la solución de retos no resueltos,

  2. Si el reto esta resuelto, fomentar la solución del reto de otra forma,

  3. Si el reto esta resuelto, hacer evidente la similitud de la nueva solución.

  4. Darle vida a las soluciones financiadas por FLUID,

  5. Permitir a terceros visualizar los entregables de nuestro equipo.

Los efectos colaterales de esta decisión permiten a FLUID:

  1. Utilizar la infraestructura de GitHub para analizar la calidad y velocidad del desarrollo de las personas en formación,

  2. Desde etapas tempranas familiarizar a potenciales talentos con las herramientas (git, asciidoc, python, gherkin, etc) y conceptos (automatización, pruebas de unidad, integración continua, "linting") que utilizarán en su labor diaria en FLUID,

  3. Hacer visible a la comunidad y al equipo los resultados propios (presión de pares).

Requerimientos

Para a acceder a este repositorio y enviar información de entrenamiento debe registrarse en GitHub.

Candidato

Si usted es un candidato que aun no trabaja en FLUID debera registrarse usando su correo electronico personal y creando el ID de GitHub que más le guste.

Talento

Si usted es un talento que trabaja actualmente en FLUID debe registrarse usando su correo electronico corporativo [email protected] y el ID de GitHub debe ser loginatfluid.

Una vez ha realizado este registro usted podra enviar soluciones de retos al repositorio correspondiente.

Contenido

Todos los archivos deben tener líneas de máximo 79 caracteres, utilizar espacios en vez de tabuladores, no tener lineas vacias al final del archivo ni espacios en blanco al final de la línea. Parametrice su editor de texto favorito para que le facilite esta tarea.

Programas

Para las soluciones a retos que correspondan a código fuente debe utilizarse la extensión y guias de estilo propias del lenguaje. Adicionalmente utilizar los linters correspondientes en la configuración estandar más estricta posible.

Soluciones

Para las soluciones a retos cuya expresión no sea código fuente debe utilizarse el lenguaje Gherkin en su versión en español y debe ser compilable por Cucumber. La sección de antecedentes contendra una descripción del entorno necesario para resolver el reto, y se tendrán escenarios tanto para el proceso de aprendizaje (intentos fallidos) como para el procedimiento de solución. Estos archivos deben finalizar siempre en la extensión .feature. El español a usar debe ser estricto y será verificado mediante Aspell. Una plantilla de puede encontrarla Aquí.

Artículos

Para la generación de documentos y articulos para el blog (carpeta articles) el lenguaje que debe utilizarse es AsciiDoc. Estos archivos deben finalizar siempre con la extensión .asc. Un ejemplo más detallado de uso de AsciiDoc en GitHub se encuentra aquí.

Estos articulos solo son requeridos en la etapa de inmersión (entrenamiento remunerado), y su objetivo es familiarizar a futuros talentos con contenido relevante para la audiencia de FLUID. Por tal motivo estos deben adherirse a la línea editorial definida aquí.

Tenga especial atención con los requisitos de numero de palabras y de indice de legibilidad ARI. Estos requisitos son verificados estrictamente por el integrador continuo. Si quiere calcular usted mismo estas metricas puede utilizar las herramientas wc y diction (comando style).

En función de la calidad de los articulos, FLUID puede decidir publicarlos inmediata o posteriormente en nuestro blog y anunciar su publicación a los clientes suscritos al mismo. Una medida de la calidad del contenido generado por usted es el número de articulos que resultan publicados.

Artículos cón código

Si en algun momento le es solicitado explicitamente realizar la solución de un reto de programación como parte de un articulo de blog (estilo programación literal), este debe hacerse tambien en AsciiDoc (asc), presentar en la versión documento el código fuente sin comentarios, de forma secuencial, manteniendo la indentación original y utilizando el resaltado de código (syntax highlighting) propio de GitHub y AsciiDoc:

[source,python]
----
print('Hola mundo')
----

Este es un ejemplo de un archivo que cumple totalmente con estas indicaciones. El código fuente puede encontrarse aquí.

Finalmente es importante mencionar que el formato es reforzado mediante scripts que se encuentran en el repositorio, y que se encuentran disponibles para que usted los utilice y mejore. Del mismo modo estos scripts son utilizados en el proceso de integración continua para verificar su estricto cumplimiento antes de recibir satisfactoriamente las soluciones enviadas por usted. Puede ver todas bitacoras de compilación historicas y de otros participantes aquí.

Estructura

Los soluciones a los retos se almacenan en la carpeta llamada challenges. En esta carpeta se debe manejar la siguiente estructura:

  • sitio (directorio)

    • código del reto (directorio)

      • suloginengithub.extensión (archivo de solución)

Un ejemplo de esta estructura es:

El nombramiento de todos los archivos y directorios, a excepción de sus archivos, debe realizarse en minuscula, sin caracteres especiales y en caso excepcional de requerir espacios usar - (guion) como sustituto.

Los articulos generados por usted y que no correspondan a una solución de retos deben estar en la carpeta articles siguiendo la siguiente estructura:

  • sulogindegithub (directorio)

    • titulo del articulo (directorio)

      • readme.asc (archivo)

      • imagen.png (imagenes requeridas)

Archivos Especiales

En algunas carpetas de la estructura se encuentran algunos archivos especiales de control:

LINK.txt

Contiene la URL al enunciado del reto en la plataforma correspondiente (Ejemplo). Este archivo solo debe contener una linea y visitar el enlace debe generar la respuesta 200 (sin redirección).

DATA.txt

Contiene los casos de prueba con los cuales se han verificado los retos. En muchos casos provienen del sitio original, pero durante el desarrollo se crear otros que pueden ser necesarios. Este archivo solo debe contener casos de prueba que sea inmediatamente procesables por cualquier archivo de solución.

OTHERS.txt

Contiene los enlaces (uno por linea) a las soluciones a dicho reto que se encuentran en Internet y que no deben leerse ni utilizarse como referencia para resolver el reto. Este archivo permite que un script automatico realice el analisis de similitud con los retos enviados por los candidatos.

LANG.txt

Este archivo solo existe para algunos sitios de retos, especialmente para sitios de retos de programación. Cuando existe indica los lenguajes de programación que pueden ser usados para resolver retos de las subcarpetas donde se encuentra el archivo. Si contiene multiples lenguajes significa que debe utilizarse de forma secuencial (round robin) cada lenguaje para construir más soluciones de dicha subcarpeta.

Versionamiento

Todos los archivos relacionados con la resolución de retos, construcción de articulos se deben almacenar en este repositorio GIT en la estructura de retos indicada.

Se espera que por cada reto usted realice un commit que agrupe los cambios correspondientes a la solución y que gradualmente usted realice pull requests a la rama master del repositorio en cuestión para solicitar la inclusión de sus soluciones. Los pull request pendientes de revisión y aprobación, asi como todos los realizados en el pasado pueden verse en el enlace indicado.

Para cada pull request que usted envíe, se realiza un proceso de integración continua que verifica de forma automatica el cumplimiento de algunas de las reglas indicadas en este documento. Solo cuando el proceso de integración pasa sin errores (en verde), su pull request es integrado al repositorio. Los resultados de la integración pueden verse siempre en Travis-CI.

Propiedad Intelectual

Los derechos patrimoniales sobre el contenido de este repositorio se encuentran definidos en el archivo COPYRIGHT.

La licencia y privilegios que tienen los usuarios de este repositorio se encuentran definidos en el archivo LICENSE.

Realizar un pull request al mismo implica la cesión de derechos patrimoniales. Por ende la información aqui contenida puede ser usada por el propietario (Fluidsignal Group S.A.) para cualquier fin comercial, siempre preservando los derechos morales de sus autores.

Envio

Cada vez que usted realice proceso de formación usted debera reportar su avance accediendo al siguiente formulario.

Este archivo debe referenciar la URL correspondiente al pull request que contiene los archivos asociados al avance que se reporta. Un ejemplo de un pull request.

Plagio

La idea de tener las soluciones disponibles para su visualización propone un reto para el plagio, ¿cómo mostrarle al mundo las soluciones y evitar el plagio? El plagio no es un problema técnico, es un problema moral de atribuirse que no fue realizado por uno mismo como propio.

Para evitar el plagio precisamente buscamos la visibilidad y la declaración explicita de autoría de cada algoritmo en un lugar centralizado, de esta forma queda evidencia clara de la atribución y puede ser sometido a escrutinio publico el acto de plagio.

Es decir, el modelo actual propuesto, evita el plagio a partir de la transparencia total. No hay que hacer nada mas, cada pull request es una declaración de autoria y la ubicación de la solución en el lugar donde facilite el calculo de similaridad le hace a un humano encontrar el plagio.

De todas formas FLUID trabaja activamente en aplicar tecnicas de detección de similitud algoritmica sobre todo el código que sea enviado. En particular usando:

Preguntas

Cualquier pregunta o sugerencia que tenga durante este proceso por favor realizarla mediante un issue del repositorio. Este proceso puede iniciarlo desde aquí.

Antes de realizar una pregunta, le rogamos encarecidamente leer nuevamente este documento, las instrucciones enviadas por correo (de aplicar) y las preguntas realizadas en el pasado por otros participantes.

fluidprueba's People

Contributors

sawasde avatar pach092 avatar b1naryxx avatar palaxi0 avatar theawakener avatar henryval avatar svelezatfluid avatar luifrangm avatar skhorn avatar jhonyvilla avatar levorak avatar martialwolf avatar ath0s28 avatar epicjhon avatar jevalenciap avatar jhonpolitecnico avatar edwarddaniel2490 avatar darkmtv avatar juancrestrepo avatar juanfgomeza avatar rjmp1991 avatar

Watchers

James Cloos avatar Kang-Li (Stephen) Cheng avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.