16 de noviembre de 2018

:: ¿Por qué deberíamos aprender Python?


Python es el lenguaje preferido por muchos desarrolladores por el énfasis que hace en la productividad y la legibilidad, especialmente cuando se compara con otros lenguajes como Java, PHP y C ++.

Profesionalmente, Python es ideal para el desarrollo web back-end, el análisis de datos, la inteligencia artificial y la computación científica. A continuación explicaremos las razones por las que es interesante aprender Python:



Lenguaje Popular

Actualmente, Python es el lenguaje más popular en TI. Es un lenguaje de programación general, interactivo, interpretado y de alto nivel. Python fue adoptado como un lenguaje de programación para casi todos los dominios de TI, incluyendo Pruebas de software, Desarrollo web, Big Data Hadoop, Computación en la nube, Ciencia de datos, AWS, VMware, OpenStack y Google Cloud.

Flexible y fácil de entender

Python fue diseñado para ser fácil de entender y divertido de usar. Puedes crear prototipos y herramientas rápidamente con Python. Por lo tanto, Python ha ganado popularidad por ser un lenguaje amigable para los principiantes. Además, al ser un lenguaje de muy alto nivel, Python se lee como en inglés, esto elimina una gran cantidad de estrés en el aprendizaje de la sintaxis de la codificación de los principiantes. Python nos libera de mucha de la complejidad en la programación, por lo que es muy fácil para los principiantes, ya que les permite centrarse en aprender conceptos de programación y no tener que preocuparse por demasiados detalles.

Grandes firmas apuestan por Python

Muchas grandes empresas como IBM, Yahoo, Google, Nokia, Disney, Mozilla, NASA y mucho más dependen en gran medida de Python. De hecho, Python es uno de los lenguajes preferidos de Google, siempre están contratando expertos y han creado muchos de sus productos populares con él.

Debido a que estas compañías utilizan Python, siempre están buscando profesionales con talento que hayan trabajado en Python. También podemos convertirnos en expertos en Python uniéndonos a Python Course. Siempre hay una demanda para los desarrolladores web de Python.

Python es flexible

Hay varias implementaciones robustas de Python integradas con otros lenguajes de programación.

  • CPython, una versión con C
  • Jython, o Python integrado con Java
  • IronPython, que está diseñado para ser compatible con .NET y C #
  • PyObjc, o Python escrito con los juegos de herramientas ObjectiveC
  • RubyPython, o Python combinado con Ruby

Python se utiliza en Ciencia de Datos

Sea cual sea el trabajo que estemos buscando, los datos formarán parte de este, incluidas las operaciones de TI, el desarrollo de software, el marketing, etc. En breve, las habilidades de análisis de datos serán tan importantes como las habilidades de codificación, y Python tiene una fuerte presencia en ambas áreas. Junto al lenguaje R, Python es el lenguaje más utilizado en la ciencia de datos moderna; de hecho, las publicaciones de Python superan en número a las publicaciones de R en el campo de la ciencia de datos. Las habilidades que adquiramos mientras aprendemos Python influirán en nuestra habilidades analíticas.

Recursos ilimitados y marco de pruebas

Un desarrollador de python, cuando lo necesite, puede acceder a una gran cantidad de recursos como manuales de referencia, libros, tutoriales, vídeos, foros, etc. Si un desarrollador tiene alguna duda o algún problema técnico, puede buscar ayuda de miles de miembros de la comunidad de Python en foros, Twitter, Facebook, sitios de preguntas y respuestas, prácticamente en todas partes.

Debido a que Python es un lenguaje de código abierto, siempre hay personas que intentan mejorarlo, actualizándolo con las tendencias actuales, presentando nuevas versiones del lenguaje.

Es el preferido para desarrollo web

La programación web con python ofrece muchas opciones, ya que python tiene una gran variedad de marcos para desarrollar sitios web. Los frameworks web que ofrece python son: Pylons, Django, Zope2, TurboGears, web.py, Grok, web2py, etc.

La codificación de un programa que lleva horas en PHP se puede hacer en minutos usando Python. Además, el código Python es mucho más rápido y estable. Luego viene Flask, otro framework web de Python, simple y construido para la personalización

Si bien la mayoría de los sitios web todavía se ejecutan en PHP, muchas aplicaciones web nuevas se están construyendo con Python. Python es más flexible; Se puede utilizar para proyectos pequeños, grandes, en línea y fuera de línea. Es el único lenguaje de scripting que necesitaremos para comenzar a diseñar nuestras propias aplicaciones y sitios web.


Fuente: https://www.javatips.net/blog/7-reasons-why-you-should-learn-python

26 de octubre de 2018

:: Acceso a versiones de una web. Web Archive

A veces necesitamos acceder a una versión de una web publicada para -por ejemplo- comprobar un diseño. Para llevar a cabo esta tarea, podríamos consultar la página cacheada por lo motores de búsqueda, o bien acceder a: https://web.archive.org

De esta manera, el portal guarda periódicamente un "snapshot" del portal, pudiendo acceder por las fechas registradas.


De la misma manera, en cualquier momento podemos indicar que deseamos generar un nuevo snapshot.

22 de octubre de 2018

:: Alfresco. Aspecto: "Enviado por email" (TIP)

Dentro de Alfresco, disponemos de una regla de contenido que nos permite añadir un aspecto a por ejemplo: todos los documentos que entren en esta carpeta.
De esta manera, para estos documentos, se les añadirán los siguientes campos de sólo lectura (no son editables):
  • De
  • Fecha de envío
  • Para
  • CC
  • Asunto
Si los documentos que subimos a nuestro Alfresco no son de tipo "eml", tendremos que generar un script que asigne la meta información oportuna. En el caso de que estemos utilizando la herramienta de importación: FileSystem Bulk Import, podríamos preparar un fichero de propiedades.
Si el fichero a subir se llama por ejemplo: "correo.html", nuestro fichero de propiedades deberíamos nombrarlo: "correo.html.metadata.properties".

El contenido de este último podría ser algo similar a lo siguiente:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
  <entry key="cm:originator">noreply@gmail.com</entry>
  <entry key="cm:addressee">netic360@gmail.com</entry>
  <!--<entry key="cm:addressees">Impresora multifunción</entry>-->
  <entry key="cm:subjectline">Aceptación presupuesto: IN1213421435</entry>
  <entry key="cm:sentdate">2018-01-01</entry>
  <entry key="cm:description">Documento de tipo correo electrónico</entry>
</properties>


15 de octubre de 2018

:: Alfresco. Configuración del buscador avanzado sobre un tipo de datos personalizado

Una vez tenemos definido un tipo personalizado de datos, por ejemplo: facturas con los siguientes campos:
-  Número de factura
- Año
- Fecha
- NIF
- Número de proveedor
- Concepto

y el buscador para este tipo de datos, es posible que necesitemos configurar este para que únicamente nos permita llevar a cabo búsquedas por unos determinados campos. Por ejemplo, para que nos permita buscar -únicamente- por el número de factura.

Para llevar cabo esta parametrización, debemos realizar las siguientes modificaciones:

En el fichero "share-config-custom.xml" ubicado en la carpeta: "tomcat/shared/classes/alfresco/web-extension" donde tenemos definido el formulario a mostrar para el tipo de datos personalizado, debemos definir el correspondiente que se mostrará en la búsqueda:

Si el formulario que tenemos definido para el tipo de datos siguiente:

<config evaluator="model-type" condition="fac:facturanetic360">
    <forms>
   <form>
   <field-visibility>
      <show id="fac:nfactura" />
      <show id="fac:anio" />
      <show id="fac:fecha" />
      <show id="fac:nif" />
      <show id="fac:nproveedor" />
      <show id="fac:concepto" />
    </field-visibility>
    <appearance>
    <set id="facturanetic360set" appearance="fieldset" label-id="set.fac_facturanetic360set"/>
    
    <field id="fac:nfactura" label-id="prop.fac_nfactura" set="facturanetic360set" />
    <field id="fac:anio" label-id="prop.fac_anio" set="facturanetic360set" />
    <field id="fac:fecha" label-id="prop.fac_fecha" set="facturanetic360set" />
    <field id="fac:nif" label-id="prop.fac_nif" set="facturanetic360set" />
    <field id="fac:nproveedor" label-id="prop.fac_nproveedor" set="facturanetic360set" />
    <field id="fac:concepto" label-id="prop.fac_concepto" set="facturanetic360set"/>
   </appearance>
   </form>
    </forms>
 </config>


Tendremos que añadir el formulario para la búsqueda:

<form id="search">
   <field-visibility>
      <show id="fac:nfactura" />
    </field-visibility>
    <appearance>
    <set id="facturanetic360set" appearance="fieldset" label-id="set.fac_facturanetic360set"/>
    
    <field id="fac:nfactura" label-id="prop.fac_nfactura" set="facturanetic360set" />
   </appearance>
   </form>



Más información: https://community.alfresco.com/docs/DOC-6013-share-advanced-search

7 de octubre de 2018

:: "Gold plating" en gestión de proyectos

"Gold Plating" en gestión de proyectos o en gestión del tiempo en general, es un término utilizado para describir el error de trabajar en un proyecto o tarea más allá de su alcance.
Por ejemplo, después de haber obtenido los requisitos, el Project Manager o el desarrollador trabajan en mejoras sobre el producto, pensando que el cliente estará encantado de ver características adicionales o mejoradas, más allá de lo que nos había solicitado o este esperaba.
El cliente, podría no estar satisfecho con los resultados, y el esfuerzo extra del desarrollador sería inutil.

"Gold Plating" está también considerada una mala práctica por diferentes metodologías o mejores prácticas en la gestión de proyectos, como PMBOK o PRINCE2. En este caso, "Gold plating" significa añadir cualquier característica adicional no considerada en el alcance inicial (PMBOK) o descripción del producto (PRINCE2), en cualquier punto del proyecto.
Esto es debido a que introduce una nueva fuente de riesgos al plan original, tales como: pruebas adicionales, generación de documentación, costes o tiempos.
Sin embargo, "Gold plating" no impide añadir nuevas características al proyecto en cualquier momento, pero siempre ha de tenerse en cuenta el procedimiento oficial de cambios, e impacto del cambio en todas las áreas del proyecto.

1 de octubre de 2018

:: MantisBT. SYSTEM WARNING: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead

Después de obtener este tipo de mensaje en la instancia de MantiBT instalada: "SYSTEM WARNING: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead", el problema se debía- en mi caso- al plugin: "Formateado MantisBT 1.0a".

Como solución a este tipo de mensajes, los pasos seguidos fueron acceder a la configuración de este y deshabilitar: "URL Processing".


Tras este cambio, parece que el problema se solucionó y ya no se muestran ese tipo de mensajes.

24 de septiembre de 2018

:: Alfresco. Búsqueda de carpetas (Tip)

En este caso, y a modo de recordatorio, un ejemplo de cómo podemos utilizar el buscador de Alfresco para acotar los resultados de acuerdo a nuestras necesidades.

Por ejemplo, para buscar las carpetas incluidas en nuestro Alfresco, que se llamen: "video" (que contengan este literal), la búsqueda a realizar, sería algo similar a esto:


TYPE:'cm:folder' video

De esta manera, de acuerdo al criterio de búsqueda especificado, los resultados devueltos podrían ser algo como lo mostrado a continuación:

:: Liferay DXP 2026. Habilitar RSS

En la versión Liferay DXP 2026 para habilitar las fuentes de datos RSS debemos seguir los pasos siguientes: 1.- Accederemos a la Configuraci...