Archive for the ‘Perl’ Category

Reto “One line” de Josech

Wednesday, August 10th, 2016

Pues Josech lanzó en Facebook un reto de hacer un programa en una sola linea que sume los valores de un array multi-dimensional, así que acepté el reto.

Código compacto y con variables abreviadas:

perl -e '@A=[1,2,[3,4],5,6,[7,8,[9,10,[11,[12,13,[14,15,16]],17,18],19]],20];sub c{my$r=shift;my$s=0;if($r=~/array/i){for(my$i=0;$i< =(@{$r}-1);$i++){$s+=c($r->[$i]);}}else{$s+=$r;}return$s;}print c(\@A)."\n";'

El código mas bonito esta aca:
(more…)

Como identificar facturas electrónicas de servicios de Uber

Thursday, June 9th, 2016

En mi empresa facturamos casi todo lo que podemos y no es la excepción que pidamos a Uber (servicio de transporte) estos documentos.

Pero el problema radica en que Uber no factura, si no los choferes. Uber no cuenta con un solo taxi y no da recibos fiscales en México, por lo que su sistema de facturación obliga a cada chofer a emitir el comprobante.

Esto hace complicado la clasificación contable de este servicio, por lo que hice un script rápido (uber.pl) en perl para analizar los comprobantes fiscales CFDI (Comprobantes Fiscales Digitales por Internet) en su formato XML.

(more…)

BACKEND WEB DEVELOPER en Terrs

Wednesday, May 28th, 2014

Empresa Líder Mundial con presencia en 40 países y ambiente estilo start up busca: BACKEND WEB DEVELOPERS para trabajar en excelente área de facil acceso en la Ciudad de México, excelente sueldo según experiencia, gran oportunidad de crecimiento y posibilidad de entrenamiento en USA.

Si tú desarrollas en plataformas abiertas con metodologías ágiles, estamos en la búsqueda de DESARROLLADORES WEB que les gusten los retos, las nuevas tecnologías y el “OPEN SOURCE”. Esta posición es para desarrollar el BACKEND sobre plataforma Linux y con lenguajes C o C++ y alguno como Python, Ruby, PHP o PERL. (Bilingues, 75-80%)

La empresa ha estado en constante crecimiento y a algunos de sus colaboradores los ha enviado a Europa o USA para entrenamiento.

Anímate y envíame tu CV (curricula@terss.com) o si tienes dudas, comunícate conmigo (Norma) al 55-5393-3095.

Asterisk y Open Hardware para controlar dispositivos desde un teléfono

Monday, May 13th, 2013

Pues jugando un poco con Arduino y Asterisk, se me ocurrió hacer una interface entre estos dos para activar luces, puertas, etc. utilizando una extensión telefónica.

También hice un sistema de sockets para que desde una página web se pudieran activar estos eventos.
(more…)

Es importante verificar la caducidad de los certificados del SAT

Wednesday, March 6th, 2013

Pues al hacer mi reporte mensual ví que el sistema del SAT me denegó el servicio ya que mi FIEL (Firma electrónica avanzada) caducó hace 3 días. Ahora tengo que hacer un trámite engorroso en el SAT para que me den la renovación, siendo que si la FIEl está aún vigente, es muy fácil el trámite de reposición.

Por eso les dejo un pequeño programa que hice en Perl para verificar los datos de sus certificados del SAT (y de cualquier certificado que use x509):
(more…)

Representación impresa de factura electrónica del SAT en versión 2.2

Sunday, July 8th, 2012

En el artículo anterior titulado Convirtiendo facturas electrónicas del XML a PDF describo el proceso para crear una representación impresa de una factura electrónica en la versión 2.0, basado en el famoso anexo 20 del SAT.

Ahora les dejo el código fuente del programa para la versión 2.2 (requiere aplicar el archivo de transformación cadenaoriginal_2_2.xslt), que debe usarse a partir del 1o de julio de este año…
(more…)

Plática sobre facturación electrónica en Campus Party 2011

Friday, July 22nd, 2011

El día de ayer, Mauricio Baeza y un servidor, impartimos una plática titulada “Facturación electrónica para programadores y mortales”. Les dejo la liga a la presentación, así como las ligas relacionadas:

La presentación en PDF y algunas ligas de interes:
(more…)

Oferta de trabajo para programadores

Thursday, July 21st, 2011
Oferta de trabajo para programadores de aplicaciones
requisitos: programar en cualquier lenguaje, interesado en desarrollo e innovación
de aplicaciones en todo tipo de arquitectura windows, linux, dispositivos moviles, …
Oferta económica base de cálculo por tiempo completo (10am-7pm):
$ 9,000 sin titulo con estudios al 100%
$ 12,000 con titulo con menos de 2 años de antigüedad
A negociar con otras características superiores.
También se ofrece una posibilidad de beca para aquellos estudiantes que aún no terminan pero que deseen realizar prácticas.

Personas interesadas, favor de mandar CV a: nayanasaxsa@gmail.com

¡Saludos!

Castrosidades del SAT para la factura electrónica: Ahora necesitas BOM

Monday, July 11th, 2011

Pues ahora el programa validador del SAT (un applet de Java) para factura electrónica, invalida los archivos que emites y los que has emitido ya que busca que los archivos de XML tengan un BOM (Byte order mark) que especifica que el archivo está en UTF-8 y así pueda procesarlo.

Pero no entren en pánico, la solución es sencilla (BOM.pl):

#!/usr/bin/perl
#===================================================================#
# Program => BOM.pl (In Perl 5.0)                     version 0.0.1 #
#===================================================================#
# Autor         => Fernando "El Pop" Romo        (pop@cofradia.org) #
# Creation date => 11/jul/2011                                      #
#-------------------------------------------------------------------#
# Info => This program take a XML file and put a Byte order mark to #
#         indicate UTF-8 is the encode of the data                  #
#-------------------------------------------------------------------#
#                    (c) 2011 - Fernando Romo                       #
#-------------------------------------------------------------------#
#              Release under the GNU/GPL License v3.0               #
#===================================================================#
 
use UTF8BOM;
 
UTF8BOM->insert_into_file($ARGV[0]);
 
print "BOM en UTF8 $ARGV[0]\n";

Con este script en Perl usando el módulo de CPAN UTF8BOM solucionamos el problema. No necesitan re-hacer la factura solo hacer lo siguiente:

$ ./BOM.pl Fac_INC101109Q36_A0054_MCM960926B49_20110711.xml
BOM en UTF8 Fac_INC101109Q36_A0054_MCM960926B49_20110711.xml

Adicionalmente podemos usar un script en bash para corregir todas las facturas electrónicas en XML que esten en un directorio:

#!/bin/bash
for a in *.xml
do
  ./BOM.pl `echo $a` 
done

y ya esta 🙂

Hack para el AirPlay en Perl

Monday, April 11th, 2011

En la página de mafipulation.org leo la liberación del ShairPort 0.03. Este es un programa en Perl que permite emular el protocolo de AirPlay de Apple en cualquier computadora.