Swagger error en C#

Puede ser que cuando estés construyendo tu documentación de API te encuentres con este error.

Por defecto, Swagger entiende que todos los métodos de tu controlador serán mapeados. Dicho esto, si tienes algún método de ayuda que no es un servicio en sí, y no tiene una definición HTTP, hará que Swagger muestre un error de definición

En la salida de consola podrás encontrar más información. Por ejemplo:

Si tienes este caso particular, lo que debes hacer es ignorar dicho método. Puedes hacerlo usando la siguiente línea sobre tu método.

Lenguajes de Scripting – Artículo

Autores: J. Arcos, J. Agredo

Universidad del Cauca

Facultad de ingeniería electrónica y comunicaciones

Programa ingeniería de sistemas

Abstract

Programming languages are tools used to develop applications of all kinds. There are different types of languages, among them are scripting languages which are mostly used in the Web environment, servers. Each type of language has its own characteristics that make have strengths and weaknesses as the area where they are, not all languages have the same ability to perform in all environments in which they are used.

1. Introducción:

Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras. 

Los lenguajes de programación, son herramientas que se utilizan para desarrollo de aplicaciones de todo tipo. Existen diferentes tipos de lenguajes, entre ellos están los lenguajes de scripting los cuales se utilizan más que todo en el ambiente de páginas web, servidores. 

En este documento abordaremos las características principales de algunos lenguajes de programación scripting, un tipo  lenguaje de programación para el que la mayoría de sus implementaciones ejecuta las instrucciones directamente, sin una previa compilación del programa a instrucciones en lenguaje máquina. El intérprete ejecuta el programa directamente, traduciendo cada sentencia en una secuencia de una o más subrutinas ya compiladas en código máquina.  [5]

2. Trabajos relacionados

 nuevas tendencias del software[10], desarrollo web[11], comparación de lenguajes de programacion de aplicaciones web[12], desarrollo de paginas web[13]

3. Características

Cada tipo de lenguaje contiene sus propias características que hacen que tengan fortalezas y debilidades según sea el ámbito en el cual se encuentren, no todos los lenguajes tienen la misma capacidad de desempeño en todos los entornos en los que se utilizan. 

Dependiendo del problema a solucionar, de las necesidades de rendimiento a satisfacer y de la existencia o no, de módulos y librerías ya hechas, dependencias necesarias, resulta necesario hacer la elección de un determinado lenguaje.

3.1  Ruby

El lenguaje Ruby es un lenguaje de scripting, interpretado, fue creado por Yukihiro Matsumoto en el Japón, en el año de 1995, ya que es un lenguaje totalmente orientado a objetos todo en Ruby es un objeto, comparte características similares a smalltalk. Según el creador este lenguaje está diseñado para  la productividad y la diversión del desarrollador, siguiendo los principios de una buena interfaz de usuario.

Este lenguaje posee la característica de que es libre, con lo cual puede ser modificado, copiado y distribuido. A diferencia de otros lenguajes de programación orientados a objetos, Ruby se caracteriza por la herencia simple, tiene su propia convención de declaración de variables [1].  

Según el índice TIOBE que es el encargado de medir el crecimiento de los lenguajes de programación, el lenguaje Ruby cada vez tiene un mayor crecimiento y aceptación por parte de los usuarios, lo que hace que mantenga en constante evolución. Este lenguaje es considerado muy flexible debido a que permite al usuario alterar libremente  las partes esenciales de Ruby, con lo cual puede ser adaptado a las necesidades de cada usuario.

Ruby es muy eficiente en su funcionamiento, ya que posee manejo de hilos independiente del sistema operativo, dando soporte multihilo en todas las plataformas en la que puede ser ejecutado Ruby, sin tener en cuenta si el sistema operativo lo soporta o no [2].

3.2  PHP

Es un lenguaje de scripting, interpretado, fue creado por Rasmus Lerdorf en 1995, al inicio solo fue pensado y creado como una serie de scripts de Perl para tener un control de los accesos online, al principio tuvo el nombre de PHP/FI. Al paso del tiempo Rasmus fue creando un código que fuera capaz mantener una comunicación con bases de datos, lo que ayudó a la creación de páginas web que no fueran estáticas, sino que hubiera una comunicación por parte del usuario( páginas dinámicas) [3].

La evolución de este lenguaje se dio gracias a que Rasmus tomó la decisión de liberar el código, para que fuera utilizado por las personas que lo desearan interactuar con él,  esto conllevo a que se pudieran corregir errores, mejorar el código lo cual ayudó a que hubiera un crecimiento grande en este lenguaje [3].

En el transcurso del tiempo hubieron avances en su estructura, lo cual permitió que se generan las diferentes versiones por las que ha venido evolucionando php, este lenguaje al igual que otros también posee estructuras de control, declaración de funciones.  Hay que tener en cuenta que para ejecutar un programa realizado en este lenguaje existe la necesidad de tener un servidor, ya que este código debe ser ejecutado en uno. Este código puede ser utilizado embebido en HTML

3.3  Python

Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. [5 ]

Es usado con éxito en miles de aplicaciones alrededor del mundo, incluyendo sistemas muy grandes y de misión crítica. [ 6]

Python fue creado a finales de los ochenta  por Guido van Rossum en el Centro para las Matemáticas y la Informática (CWI, Centrum Wiskunde & Informatica), en los Países Bajos, como un sucesor del lenguaje de programación ABC, capaz de manejar excepciones e interactuar con el sistema operativo Amoeba

Permite la creación de todo tipo de programas incluso sitios web no requiere de compilación es un código interpretado, libre y código fuente abierto. Es un lenguaje de propósito general multiplataforma, orientado a objetos, portable, multiparadigma.

Es un opción más para realizar páginas web dinámicas, tiene el gran beneficio de ser un lenguaje multiplataforma por lo que tener problemas al utilizar una u otra plataforma es mínimo.

3.4  Lua

Lúa fue creado en 1993 por Roberto Ierusalimschy, Luiz Henrique de Figueiredo y Waldemar Celes  este lenguaje es implementado como una biblioteca escrita en c,  lúa a pesar de que se considera interpretado, lo es en gran parte, pero posee un proceso de compilación al igual que otros lenguajes como java. El código compilado de este lenguaje es convertido a código bytecode, esta característica hace que este lenguaje pueda ser multiplataforma, debido a que el código generado (bytecode) es ejecutado en la máquina virtual de lúa [4].

Al ser un lenguaje de extensión no posee el programa principal para poder ejecutarse, como en el caso de c, el lenguaje lua al ser embebido requiere de la ayuda de un cliente anfitrión para su ejecución, como por ejemplo javascript el cual es ejecutado utilizando código HTML.

Al estar implementado como una biblioteca en c lúa puede utilizar funciones de este lenguaje  para abarcar un rango cada vez más amplio de dominios. Al ser un software libre permite que se pueda modificar y personalizar al gusto, este lenguaje de programación es muy usado más que todo en el campo de la programación de juegos, lúa al igual que otros poseen estructuras de control, para regular el flujo de ejecución que se desee al momento de crear el código necesario a ejecutar [4].

3.5  Perl

Es un lenguaje de programación muy utilizado para construir aplicaciones CGI para el web. Perl es un acrónimo de Practical Extracting and Reporting Languaje, que viene a indicar que se trata de un lenguaje de programación muy práctico para extraer información de archivos de texto y generar informes a partir del contenido de los ficheros. Perl es un lenguaje de programación diseñado por Larry Wall en 1987. Perl toma características del lenguaje C, del lenguaje interpretado bourne shell (sh),AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programación.

Perl tiene muchas y variadas aplicaciones, gracias a la disponibilidad de muchos módulos estándares y de terceras partes.

Se ha usado desde los primeros días del Web para escribir guiones(scripts) CGI. Es una de las “tres Pes” (Perl, Python y PHP), que son los lenguajes más populares para la creación de aplicaciones Web, y es un componente integral de la popular solución LAMP para el desarrollo web. Grandes proyectos escritos en Perl son Slash, IMDb y UseModWiki, un motor de Wiki. Muchos sitios web con alto tráfico, como Amazon.com yTicketmaster.com usan Perl extensamente. [ 7 ]

3.6  JavaScript

Abreviado comúnmente JS,  es un lenguaje de programación interpretado. Se define como orientado a objetos, basado en prototipos imperativo, débilmente tipado y dinámico.

Se utiliza principalmente en su forma del lado del cliente, implementado como parte de un  navegador permitiendo mejoras en la interfaz del usuario y páginas web dinámicas. [8]

Cabe mencionar que no solo se usa para aplicaciones web, sino también para aplicaciones de escritorio.

Dado que se puede ejecutar del lado del cliente, puede haber programadores que se valgan de esto para ejecutar scripts con contenido malicioso y sin consentimiento del usuario. Para evitar esto, algunos navegadores incorporan algunas restricciones para evitar que se atente contra la integridad de la información del usuario. [8]  Una de estas restricciones es hacer que los scripts se ejecuten en un sandbox, que permite controlar los recursos proporcionados a los programas “cliente” a ejecutarse [8]

4. Cuadro comparativo

RubyPHPPythonLuaPerlJavaScript
Operadores Aritméticos
Suma+Ej: a+b+Ej: $a+$b+Ej: a+b+Ej: a+b+Ej: $a+$b+Ej: a+b
Resta-Ej: a-b-Ej: $a-$b-Ej: a-b-Ej: a-b-Ej: $a-$b-Ej: a-b
Multiplicación *Ej: a*b*Ej: $a*$b*Ej: a*b*Ej: a*b*Ej: $a*$b*Ej: a*b
División  /Ej: a/b/Ej:c$a/$b/Ej: a/b/Ej: a/b/Ej: $a/$b/Ej: a/b
Módulo%Ej: a%b%Ej: $a%b%Ej: a%b%Ej: a%b+Ej: $a+$b%Ej: a%b
Exponenciación **Ej: a**b**Ej:$a**$b**Ej: a**b%Ej: a^b+Ej: $a+$b**Ej: a**b
Operadores de comparación
igual ==Ej: a==b==Ej:$a==$b==Ej: a==b==Ej: a==b==Ej:$a==$b==Ej: a==b
diferente!=Ej: a!=b!=Ej:$a!=$b!=Ej: a!=b~=Ej: a~=b!=Ej:$a!=$b!=Ej: a!=b
menor que <Ej: a<b<Ej:$a<$b<Ej: a<b<Ej: a<b<Ej:$a<$b<Ej: a<b
mayor que >Ej: a>b>Ej:$a>$b>Ej: a>b>Ej: a>b>Ej:$a>$b>Ej: a>b
menor o igual que <=Ej: a<=b<=Ej:$a<=$b<=Ej: a<=b<=Ej: a<=b<=Ej:$a<=$b<=Ej: a<=b
mayor o igual que>=Ej: a>=b>=Ej:$a>=$b>=Ej: a>=b>=Ej: a>=b>=Ej:$a>=$b>=Ej: a>=b
Operadores lógicos
AndandEj:a and bandEj:$a and $bandEjmTrue and FalseandEj: a and band ó &&Ej$a and $b; $a && b&&Ej:  a && b
OrorEj: a or borEj: $a or $borEjmTrue and FalseorEj: a or bor ó ||$a or $b; $a||$b||Ej:  a || b
Not!Ej: !a!Ej: !$anotEjmr = not True notEj: not a!$ ó $a!$a; not $a!Ej:  !a
RubyPHPPythonLuaPerlJavaScript
Paradigmas Imperativo, funcional, reflexivo, orientado a objetos P.O.OEstructuradaFuncionalmultiparadigma, funcional, imperativa, orientado a objetos (basado en clases), reflexiva, procedural, eventos, genéricaImperativo, orientado a objetos (prototipos) y funcional
MultiplataformaSiSiSiSiSiSi
TipadoDinámico/  fuerte Dinámico/ débilDinámico/ débilDinámico/ fuerte  DinámicoDinámico/ débil
InterpretadoSiSiSiSiSiSi
Licencialibre y fuente abiertalibreLibre y fuente abiertalibre y fuente abiertalibre y fuente abiertaLibre
CostoGratuitoGratuitoGratuitoGratuitoGratuitoGratuito
VentajasCurva de aprendizaje corta, alta demanda en el campo laboral.  Facilidad de aprendizaje, se puede conectar con la mayoría de las bases de datos. SImpleSencillo de aprenderLenguaje de alto nivelPortableAmpliableIncrustableExtensibleRápido, es posible utilizarlo en programación orientada a objetos. Reduce ciclo de programaciónPortableManipula archivos de textoExtensibleCapacidad limitada por razones de seguridadSe ejecuta del lado del clienteSeguro y fiable
DesventajasInterpretado, poca documentación,No es un lenguaje muy conocido a comparación de otros.  Interpretado, necesita de un servidor web, con gran número de solicitudes, baja el desempeño, no soporta totalmente la POO.Es lento, para operaciones críticas se necesitaría otro lenguajeFalta de documentaciónErrores en tiempo de ejecución por falta de tipadoInterpretado, poca comunidad de soporte.Se compila cada vez que se ejecutaNo soporta herenciasCódigo visible por cualquier usuarioEl código debe ser descargado completamente

5. Conclusiones 

·     si se tiene conocimiento de programación en un lenguaje, el aprendizaje de otros lenguajes será muy rápido, ya que posee estructuras similares en sus operadores, declaración de funciones, y algunos en su estructura.

·     A pesar de la diferencia de características que poseen los lenguajes de scripting las cuales los hace más óptimos según el entorno en el que se estén utilizando, tiene algo en común y es que son lenguajes que no poseen un tipo de compilación, lo cual hace que la eficiencia de estos en cuanto a rendimiento sea menor a lenguajes compilados.

·     En la búsqueda de información se pudo notar que existe mucha documentación de algunos lenguajes, debido a la gran cantidad de personas que de alguna u otra forma aporta conocimiento lo cual permite que haya  un rápido aprendizaje y buen manejo de estos.

.     Perl hace hincapié en el respaldo para tareas comunes orientadas a aplicación, teniendo expresiones regulares incorporadas, escaneo de archivos y características de generación de reportes. Python hace hincapié en el respaldo para metodologías comunes en programación como diseño de estructuras de datos y programación orientada a objetos.

6. Bibliografía

[1] http://es.tldp.org/Manuales-LuCAS/doc-guia-usuario-ruby/guia-usuario-ruby.pdf

[2] https://www.paradigmadigital.com/dev/el-indice-tiobe-como-medir-que-lenguajes-de-

programación-son-los-más-usados/

[3] http://administraciondesistemas.pbworks.com/f/Manual_PHP5_Basico.pdf

[4] http://blog.rodrigortiz.com/wp-content/uploads/2011/08/Manual-de-Referencia-de-Lua-5.11.pdf

[5]. http://www.alegsa.com.ar/Dic/lenguaje%20interpretado.php 

[ 6 ].  https://www.python.org/about/quotes/

[7]. http://www.enterate.unam.mx/Articulos/2006/abril/perl.htm 

[8]. http://www.cristinaalcantarilla.com/sandboxing-un-aislamiento-de-procesos/ 

[9]. http://www.palentino.es/blog/el-sandbox-aislamiento-local-web-herramientas/

[10] http://nuevastendsw.blogspot.com.co/2010/03/cuadro-comparativo.html

[11] http://desarrollowebydesarrolloweb.blogspot.com.co/2015/02/tabla-comparativa-de-los-lenguajes-de.html

[12] http://claudiadaw.blogspot.com.co/2012/08/comparacion-de-lenguajes-de.html

[13] http://evoluciondelasaplicacionesweb.blogspot.com.co/2015/02/tabla-comparativa-de-los-lenguajes-de.html

PHP: Concatenar cadenas

Es inevitable muchas veces cuando programamos el unir cadenas.
Esta oportunidad aprenderemos cómo hacerlo en PHP.

Básicamente hay dos operadores que podremos utilizar.

El primero es el operador de concatenación ” . ” (punto), el cual une dos argumentos que estarán a derecha e izquierda y retorna el resultado.

Así:

$var1 = ‘cama’;
$var2 = ‘rada’;
$result = $var1 . $var2;
$result contendría entonces:  “camarada”.

El segundo es el operador de asignaciónsobre concatenación ” .= ” (punto igual).
Éste operador concatena al argumento de la izquierda el argumento de la derecha.

Así:

$var1 = ‘cama’;
$var1 .= ‘rones’;

$var1 contendría la cadena “camarones”.

Cabe resaltar que la atención está puesta en los operadores, independientemente de las variables que uses. Puedes hacer tus variaciones.

Por ejemplo:
$word = ‘programando  ‘ . ‘ estoy’; 
ó
$word = ‘con’;
$word .= ‘trabajo’;    


“Contrabajo”, el instrumento, jeje…

Sobre KUMBIAPHP

KumbiaPHP es un framework para aplicaciones web libre escrito en PHP5. Basado en las prácticas de desarrollo web como DRY y el Principio KISS para software comercial y educativo. Kumbiaphp fomenta la velocidad y eficiencia en la creación y mantenimiento de aplicaciones web, reemplazando tareas de codificación repetitivas por poder, control y placer.KumbiaPHP Framework PHP intenta proporcionar facilidades para construir aplicaciones robustas para entornos comerciales. Esto significa que el framework es muy flexible y configurable.KumbiaPHP es un esfuerzo por producir un framework que ayude a reducir el tiempo de desarrollo de una aplicación web sin producir efectos sobre los programadores.Sus principales características son:

  • Muy rápido
  • Fácil
  • Sistema de Plantillas sencillo
  • Administración de Cache
  • Scaffolding Avanzado
  • Modelo de Objetos y Separación MVC
  • Soporte para AJAX
  • Generación de Formularios
  • Componentes Gráficos
  • Seguridad

Modelo Vista Controlador

El patrón de arquitectura MVC (Modelo Vista Controlador) es un patrón que define la organización independiente del Modelo, la Vista, y el Controlador; Así, se divide el sistema en tres capas: la encapsulación de los datos, la interfaz o vista, y la lógica interna o controlador.

Es un patrón de arquitectura en cuya filosofía está el hacer una separación entre la lógica de negocio, la interfaz presentada al usuario, y el modulo encargado de gestionar los eventos y las comunicaciones.

Está compuesto por:

MODELO:

  • Contiene el núcleo de la funcionalidad de la aplicación; su dominio.
  • Encapsula el estado de la aplicación.
  • No sabe nada, es decir, es independiente del Controlador y la Vista.

VISTA:

  • Es la presentación del Modelo.
  • Puede acceder al Modelo pero nunca cambiar su estado
  • Puede ser notificada cuando hay un cambio de estado en el Modelo.

CONTROLADOR:

  • Reacciona a la petición del Cliente, ejecutando la acción adecuada y creando el modelo pertinente.

El modelo, la vista y el controlador deben comunicarse de una manera estable los unos con los otros, de manera que sea coherente con las interacciones que el usuario realiza. La comunicación entre la vista y el controlador es bastante básica pues están diseñados para operar juntos, pero los modelos se comunican de una manera diferente, un poco más sutil.

Audio en KumbiaPHP

Hola amigos kumbieros, en esta oportunidad me gustaría compartir con ustedes la experiencia sobre cómo insertar archivos de audio en nuestra web.

Tanto para programadores experimentados como para quienes están empezando en este mundo del desarrollo, existen esos detalles que no conocemos, esos errores que no entendemos, y es inevitable pasar largos minutos buscando la manera de plasmar en nuestro código las ideas que hay en nuestra mente. Al menos a mi como mortal me ha pasado.

En la web existe mucha información donde se explica cómo insertar audio en la web, existen ejemplos y es relativamente sencillo. Pero en el caso de hacerlo usando el framework kumbiaPHP no se encuentra mucha.  Es esa la razón por la que decidí compartir esta entrada.

Como compartí días atrás, estamos desarrollando un “Repositorio de canciones” con kumbiaPHP, y el audio es parte esencial en los requerimientos.

Kumbia posee helpers que facilitan en gran medida algunas tareas, por ejemplo el helper para insertar imagen Html::img().  Sin embargo parece no haber alguno que maneje los audios.

Buscando en la web encontré cómo insertar contenido multimedia en HTML, y para el caso del audio, algo tan sencillo como esto:

<audio controls>
      <source src="micancion.mp3" type="audio/mp3">
      </source>
</audio>


Probé en mi vista y que creen?   No funciona.
Claro…  hay que tener en cuenta la ruta. Hacer cosas como “../public/audio/micancion.mp3” quizá podría ser la solución, quizás sea lógico.
Me salgo de la carpeta donde tengo mi vista y accedo a donde tengo el audio.

Pues… no funciona.

Probamos colocando el archivo dentro de la misma carpeta de la vista; !!Debería funcionar!!

Que creen!!!

Tampoco funciona.

Y entonces!!!? Si todo está bien!!! (Bueno… eso creo)

Despues de despeinarme un par de veces, mirar el codigo, probar maneras, buscar otras formas, el “prueba y error” y un poco de desespero (jeje, era un poco “temprano”, 3 de la madrugada?), dí con el error.

El “secreto” radica en la ruta.
Debo tomar una ruta absoluta para poder acceder a mis archivos, (es una de las cosas que simplifican los helpers).
¿Desde donde partir? Desde la carpeta donde tienes el proyecto; tu framework.

Esta es la solución:

– Por fin la dices    ¬ ¬
– Jeje, calma!!! es bueno saber cómo saber. Y en gran manera, aprender de los errores.

Debes poder tu ruta así: /framework/default/public/audio/micancion.mp3
(He creado una carpeta audio, ésta no viene por defecto)
!Important. Debe iniciar con “/” para que funcione. Por si crees que no importa.
En conclusión, el codigo quedaría así.

<audio controls>
      <source src="/framework/default/public/audio/micancion.mp3" type="audio/mp3">
      </source>
</audio>


Ahora sí, a sonar!!!

KumbiaPHP, aprovechando el Redirect::to

En uno de los proyectos que estábamos desarrollando con algunos amigos de la universidad con el framework KumbiaPHP, tenía que trabajar en un módulo para hacer el CRUD de una entidad llamada “canción”.

Quisiera contarte lo que me pasó.

Había ya logrado que se actualizaran los datos en la base de datos, con un método editar, pero necesitaba que una vez actualizados, desde ese método me redirigiera a otro lugar.

Al hacer uso de Redirect::to(), me enviaba a la página principal, y no quería eso!!!
Quería que me llevara a la página donde pudiera mostrar la información de ese registro actualizado, en este caso, a otro método dentro del mismo controlador llamado InfoSong.
– Fácil!!!, usar Redirect::toAction(‘action’) con el nombre de la acción InfoSong…

Si, bueno, resulta que InfoSong recibe parámetros, un entero id para ser más preciso. Algo así: InfoSong($id).

-Ah bueno, es posible enviar parámetros desde ese método, así;  Redirect::toAction(‘action/param’).
Este… si, lo intenté. Resulta que el método editar maneja la variable $id, pensé…
facil!!! se la enviaré.
Redirect::toAction(‘InfoSong/$id’).
Pues…. no funciona.  En este caso $id lo toma como una cadena, no extrae su valor.

Que lío!!!!
Si toma como cadena lo que meta ahí, no puedo hacer cosas como “<?=$id?>” o, “objeto->dato”.
Todo lo tomaría como una cadena!!!

Y bueno… a punto de desistir y probando qué podía funcionar, vino una idea a mi mente.

– Y si mandas una variable en vez de una cadena entre comillas? ¿Qué pasaría?
    Pues…. probemos.

$action = ‘InfoSong’;
Redirect::toAction($action);
Oye!!! Funciona!!!

Genial!! Pero…. y lo del parámetro?

Pensemos….. si puedo enviar una cadena como parámetro, podría hacer que la cadena contenga la acción y el id verdad?
Aquí la ñapa: ¿Cómo concateno cadenas en PHP?  Con el operador “.” (punto).

Probemos….

$action = ‘InfoSong/’.$id;     // quedaría  “InfoSong/valor_id”, justo lo que necesito
Redirect::toAction($action);

Eureka!!!
Ahora sí, actualicemos y mostremos la vista con los cambios!!

Sistema de Empleos en Colombia – TDS

A continuación, un análisis de los elementos sistémicos del sistema de empleos en Colombia

a.  Sistema: Sistema de empleos en Colombia 

La dinámica de un mercado laboral se puede interpretar como la dinámica entre una oferta y una demanda, así como los productos de consumo, bursátiles, monetarios, entre otros. En este caso la dinámica explica la existencia de una oferta de empleo determinada por la participación de las personas en el mercado laboral en busca de un empleo, y la existencia de una demanda laboral determinada por las vacantes que genera el sistema productivo y que pueden ser ocupadas por las personas que ofrecen su fuerza de trabajo.

El gobierno nacional, a través de entidades especiales, busca formular, adoptar y orientar la política pública en materia laboral que contribuya a mejorar la calidad de vida de los colombianos, para garantizar el derecho al trabajo decente, mediante la identificación e  implementación de estrategias de generación y formalización de empleo. [1]

b. Sistema Abierto: el empleo en Colombia es un sistema abierto el cual necesita entradas, y recursos tales como personal humano, recursos económicos y proporciona unas salidas como productos, dinero, conocimiento.

c. Sistema Cerrado: no es un sistema cerrado, ya que está en continua interacción con el entorno.

 d. Recursividad:  Dentro de la dinámica que se maneja en el sistema de empleos colombiano, en cada uno de sus sectores puede verse un subsistema que maneja y se relaciona con esta dinámica de forma recursiva.

e. Jerarquía: la jerarquía que se puede encontrar en los empleos en Colombia es :

* SIstema de empleos colombiano

** Sistema de empleos privados y/o públicos

**** Sistema de los sectores económicos [ejm: primario, secundario, terciario]

**** Sistema de las actividades económicas [ejm: primario:agropecuario]

***** Sistema de tipos de empleos

f. Entorno: podemos decir que es la sociedad colombiana, ya que el empleo se encuentra presente en casi todo el país, con lo cual es generado por alguno de los sectores involucrados en este sistema de empleos.

g. Entradas: En las entradas de este sistema se pueden observar recursos económicos, recursos humanos, conocimiento.

 h. Proceso: El proceso que se sigue para que haya un buen funcionamiento del sistema es el de selección de los empleados, capacitaciones, evaluación, motivación.  

 i. Salidas: progreso del país, recursos económicos, conocimiento, vacantes

 j. Relaciones: las relaciones que existen entre los sectores es el de brindar y tomar recursos, el sector primario produce recursos obtenidos directamente de la naturaleza, el sector industrial toma estos recursos y los transforma en productos y por último el sector de servicios los utiliza.

 k. Contexto: el desempleo en Colombia en el  cual existen organismos de control , administración que gestionan ,respaldan la generación de empleo con ayuda de empresas y sectores de ocupación.

m. Retroalimentación (Positiva – Negativa): inversiones, conocimiento, recursos económicos.

 n. Homeostasis: se puede observar en las acciones que toma el gobierno en caso que los sectores sean afectados, por ejemplo cuando el gobierno invierte recursos económicos en los sectores, esto hace que no haya un desequilibrio total y se mantenga una estabilidad laboral.

 o. Entropía (Positiva – Negativa) : entropía negativa se ve reflejada en los desvíos de recursos, incumplimiento de responsabilidades asignadas, desconocimiento de tareas asignadas en puestos de trabajo.

Entropía positiva la podemos ver en el nacimiento de nuevas empresas bien estructuradas, con objetivos claros, inversiones de capital a los subsistemas. 

p. Información del Sistema: El sistema se enfrenta constantemente a cambios en su entorno que llegan a provocar crisis. Para poder combatir esta situación deben desarrollarse fórmulas o métodos eficaces que ayuden a solucionar las diferentes problemáticas.

En cada uno de estas se genera nueva información que el sistema usará para dar soluciones. La información nueva  no elimina información pasada, sino que la agrega.

q. organicidad : La organicidad en el sistema la podemos observar en que este trata de que no haya un  caos dentro del mismo, por ejemplo tratando de manejar bien los recursos que se tienen para poder generar empleos y no haya un desbalance que pueda causar desorden. la organicidad en el sistema de empleos es algo evidente ya que si no tuviera esta propiedad esté sistemas estaría en caos con lo cual habría un desequilibrio en el país porque se rompería la estructura que ayuda a que el país sea sostenible.

r. Isomorfismo : un sistema isomorfo al sistema de empleo , sería el sistema colegio en donde hay educación en vez de empleo 

***** un sistema isomorfo al sistema de empleos puede ser el sistema de educación, el cual es algo similar al de empleos, mirándolo desde la perspectiva de entradas como personal, conocimiento, y los procesos de transformación que ocurren dentro del sistema de educación, generando más conocimiento..

s. Totalidad: En este sistema se puede observar la totalidad mirandolo de la forma en que cada una de las partes que lo conforman(sectores), por sí solas no podría causar el efecto de generación de empleos que se ofrece si todos trabajan para un mismo fin como un solo sistema. 

como un ejemplo se puede observar las dependencias que existen entre el sector agropecuario y el industrial, el agropecuario genera recursos para que el industrial los pueda procesar, si no hay esta generación de recursos, el empleo en el sector industrial disminuye afectando el sistema completo generando resultados insatisfactorios. 

t. Objetivo: mantener una economía sostenible para mejorar la calidad de vida de los ciudadanos y ayudar al progreso del país. 

u. Equifinalidad: Teniendo en cuenta que el sistemas es abierto, se puede hablar de equifinalidad con lo cual el sistema mantiene el mismo propósito independiente de los caminos que tomé para llegar a él, por ejemplo generando empleos de medio tiempo, tiempo completo son formas diferentes de generación de empleo, pero las dos están dirigidas a ayudar a mejorar la calidad de vida de las personas, sea por el camino del empleo de medio tiempo o del de tiempo completo, se llega a este objetivo planteado.

 El sistema mantiene el mismo propósito independiente de los procesos que use para llegar a ese fin

v. Límites del sistema: El país de Colombia, ya que los empleos están presentes en prácticamente todo el territorio nacional. se toma principalmente el país como límite teniendo en cuenta los empleos generados dentro de este y que las personas estén trabajando presencialmente dentro del país, aunque pueden haber excepciones de personas que trabajan fuera de él, pero contratados para el país estos estarían fuera de este límite.   

w. Subsistemas: Los subsistemas que podemos identificar son :sector agropecuario, sector industrial, sector de servicios, los cuales se relacionan para aportar al buen funcionamiento del sistema de empleos en colombia.

x. Supra sistema: El sistema de empleos en colombia pertenece a un sistema más grande que es el sistema de ministerio de trabajo, este contiene y regula las relaciones laborales, empleo y seguridad social.

y. Sinergia: todos los subsistemas trabajan juntos para lograr una estabilidad en el empleo, ya que si se escogen por separado el empleo en Colombia no daría resultados positivos.

z. recursos: leyes (Ley Nº 20.001, Ley Nº 10.475), tecnología, infraestructura.

BIBLIOGRAFIA

1 – http://www.mintrabajo.gov.co/el-ministerio/quienes-somos/mision-vision-y-objetivos.html

Clasificación de los Lenguajes de Programación

Los lenguajes de programación son conjuntos de símbolos y reglas, los cuales su principal función es crear procesos y software.
Estas funciones lo que hacen es darle instrucción es a la máquina para que esta envié una respuesta

Proceso de Traducción

2016-04-08.png

Lenguajes Ensamblados

Se refiere al lenguaje ensamblador. Constituye la representación más directa del código máquina (0-1).

Aún hoy se utiliza en la programación de handler o manipuladores de dispositivos de hardware.

Características:

  • Posee una cierta dificultad de ser entendido por un ser humano
  • Es difícilmente portable
  • Son generalmente más rápidos
  • Se tiene un control muy preciso de las tareas realizadas por un Microprocesador
  • Se puede controlar el tiempo que tarda una rutina en ejecutarse
  • Es un código estructurado desarrollado sobre un archivo de programación (.ASM)

Lenguaje Ensamblador

Un programa escrito en lenguaje ensamblador consiste en una serie de instrucciones que corresponde al flujo de órdenes ejecutables que pueden ser cargadas en la memoria de un sistema basado en microprocesador.

La instrucción binaria

  • Binario:  10110000 01100001 (Hexadecimal:  0xb061)

La representación en lenguaje ensamblador es más fácil de recordar:

  • MOV al, 061h

Lenguajes Interpretados

Es el lenguaje cuyo código no necesita ser preprocesado mediante un compilador, eso significa que el ordenador es capaz de ejecutar la sucesión de instrucciones dadas por el programador sin necesidad de leer y traducir exhaustivamente todo el código, para hacer esto posible se necesita un intermediario, un programa encargado de traducir cada instrucción escrita con una semántica “humana” a código máquina, el programa es un intérprete, y este además se encarga de automatizar algunas tareas típicas de un programador como declaraciones de variables o dependencias. Entre los principales lenguajes de este tipo están Java, Perl, Python, Ruby, ASP, Bash. Por lo general, los lenguajes interpretados son de alto nivel y están orientados a objetos y eventos, lo que facilita la programación web y la programación cliente/servidor.

Ventajas

La principal es que es independiente de la máquina y del sistema operativo ya que no contiene instrucciones propias de un procesador sino que contiene llamadas a funciones que el intérprete deberá conocer, es decir es multiplataforma.

Desventajas

La velocidad es menor, este es el aspecto más notable, se debe evaluar muy bien al crear software con este tipo de lenguajes, pues se debe equilibrar la portabilidad con la velocidad que se está sacrificando.

Lenguajes de Programación Compilados

Necesitan de un compilador.
Ventajas

  • Rápida ejecución.
  • Independencia del lenguaje y compilador.
  • Mejora la seguridad.
  • El código se compacta en un solo archivo.


Desventajas

  • Poca flexibilidad.
  • Espacio en el disco.
  • Requiere de un compilador.

¿Qué es un Compilador?

Proceso de transformación de un programa fuente a un programa ejecutable

Lenguaje de Programación Preprocesado

Ventajas:

  • Permite ser interpretado en diferentes plataformas y arquitecturas.
  • Generalmente es empleado con el fin de obtener optimización y portabilidad en las aplicaciones.
  • La ejecución es más rápida comparada con el lenguaje interpretado.

Desventajas:

  • La ejecución es más lenta comparada con el lenguaje compilado.
  • Por requerir ser traducido a un lenguaje intermedio y luego al lenguaje de máquina, esto provoca pérdida en la eficiencia en la ejecución.

Proceso de traducción a un lenguaje intermedio de más bajo nivel

Preprocesado.jpg

Lenguajes de uso común

  • Lisp
  • Delphi
  • Java
  • Visual C#
  • Visual J#