lunes, 29 de septiembre de 2014

Encabalgar libros en CorelDraw con VBA

Programación en CorelDraw
En las primeras versiones de Corel, el lenguaje preferido era CorelScript.
A partir de la versión 12 (quizás antes), el lenguaje preferido pasó a ser VBScript con la librería VBA Corel. Para programar en VBScript es necesario conocer el Corel Object Model. Info en el mismo site que arriba, y en: http://apps.corel.com/partners_developers/csp/resources/dvba_pg.pdf

Public Sub BookDraw()
Dim var1$
ChDir "C:\Documents and Settings\Usuario\Mis documentos\casamiento diseño gráfico\libro firmas\preparación"
Open "orden de las paginas.txt" For Input Access Read As #256
Dim i As Integer
i = 1
Dim p As New Collection
Do While Not EOF(256)
Line Input #256, var1$
p.Add var1$
Loop
Close #256
Dim docNum As Integer
Dim upfit As Integer

upfit = (4 - p.Count Mod 4) Mod 4 + p.Count

docNum = 1

UserForm1.Label1.Caption = "0%"
UserForm1.show vbModeless

For i = 1 To upfit / 2
If i Mod 10 = 1 Then
ChDir "C:\Documents and Settings\Usuario\Mis documentos\casamiento diseño gráfico\libro firmas\preparación"
  FileCopy "plantilla.cdr", "copy preparación " + CStr(docNum) + ".cdr"
  Application.OpenDocument "copy preparación " + CStr(docNum) + ".cdr"
  ActiveDocument.ReferencePoint = cdrBottomLeft
  docNum = docNum + 1
Else
  ActiveDocument.AddPages 1
End If
Dim even, odd As Integer

If i Mod 2 = 0 Then
even = i
odd = upfit + 1 - i
Else
even = upfit + 1 - i
odd = i
End If

ActiveDocument.ActivePage.Name = "[" + CStr(even) + ", " + CStr(odd) + "]"

' inserto 1
ActiveDocument.ActivePage.ActiveLayer.Import p.Item(odd)
ActiveDocument.Selection.SizeHeight = 210 / 25.4
ActiveDocument.Selection.SizeWidth = 210 / 25.4
ActiveDocument.Selection.PositionX = 240 / 25.4
ActiveDocument.Selection.PositionY = 55 / 25.4

' inserto 2
If even > p.Count Then GoTo NUMERAR
ActiveDocument.ActivePage.ActiveLayer.Import p.Item(even)
ActiveDocument.Selection.SizeHeight = 210 / 25.4
ActiveDocument.Selection.SizeWidth = 210 / 25.4
ActiveDocument.Selection.PositionX = 20 / 25.4
ActiveDocument.Selection.PositionY = 55 / 25.4

NUMERAR:
' numero 1
ActiveDocument.ActivePage.ActiveLayer.CreateArtisticText 335 / 25.4, 48 / 25.4, "PÁGINA " & CStr(odd), , , "Arial", 12
' numero 2
ActiveDocument.ActivePage.ActiveLayer.CreateArtisticText 115 / 25.4, 48 / 25.4, "PÁGINA " & CStr(even), , , "Arial", 12

If i Mod 10 = 0 Then
ActiveDocument.Save
ActiveDocument.Close
End If

UserForm1.Label1.Caption = CStr(i * 200 / upfit) & "%"
DoEvents
Next i

' cierra documentos abiertos
If i Mod 10 <> 1 Then ' si el último loop no cerró el archivo por cambio 20-páginas
ActiveDocument.Save
ActiveDocument.Close
End If

End Sub

martes, 23 de septiembre de 2014

Herramientas de Programación

Repositorios concurrentes
Introducción a Git y GitHub
Software collaboration platform for free and private software Crear un repo y hacer el commit inicial por interfaz web
Libro sobre Git (2 recomendaciones), en formato online, PDF, etc.
Repositorio Git exclusivo de software libre

Un paseo por repositorios de software libre.
Hospedaje (hosting):
http://en.wikipedia.org/wiki/Comparison_of_open-source_software_hosting_facilities
http://en.wikipedia.org/wiki/GNU_Savannah
http://en.wikipedia.org/wiki/Gna!
Free Software collaboration platform compuesto únicamente de software libre http://savannah.gnu.org/maintenance/WhyChooseSavannah/
https://gna.org/
http://puszcza.gnu.org.ua/
Plataforma de desarrollo de OpenSource: www.CodeHaus.org
Freewares (consultar la licencia en cada caso): Planet Source


Cuestiones Legales
http://blog.codinghorror.com/pick-a-license-any-license/
https://wiki.debian.org/DFSGLicenses
http://opensource.org/
http://unlicense.org/
https://sfconservancy.org/overview/
http://www.fsf.org/

Software de revisión de código:
http://en.wikipedia.org/wiki/Comparison_of_revision_control_software



APIs - Librerías
http://alleg.sourceforge.net/
http://libcinder.org/
http://www.boost.org/
http://site.icu-project.org/



Canal de chat y comunidad de soporte de software libre

Directorio de software libre en Java
Directorio de software libre en Java
Software Open source de manejo de todas las capas de seguridad Java



Linux

http://www.linfo.org/index.html

Tour of the kernel source - tldp.org - Editar  Eliminar
[linuxkernel]

http://wiki.tldp.org/The_Linux_Kernel_HOWTO
http://www.tldp.org/LDP/lki/lki.pdf

Linux from scratch - linuxfromscratch.org - Editar  Eliminar
[linuxkernel - Instalar un Linux a partir de su código fuente.]

Reading the Linux Kernel Sources - wikiversity.org - Editar  Eliminar
[linuxkernel - Lugares por donde empezar a interpretar el código fuente de Linux.]

The Linux kernel - tue.nl - Editar  Eliminar
[núcleokernellinux - Some remarks on the Linux Kernel ]
Dentro del núcleo Linux 2.4 - wikilearning.com - Editar  Eliminar
[núcleokernellinux - Dentro del núcleo Linux 2.4 - por Tigran Aivazian Cómo funciona el núcleo Linux. URL Original (fuera de Wikilearning): http://es.tldp.org/Manuales-LuCAS/DENTRO-NUCLEO-LINUX/dentro-nucleo-linux-html/. (Publicado en D-Linuxnúmero 2).]
Building modules for a precompiled kernel - die.net - Editar  Eliminar
[insmodmodprobekernellinuxdriver - Cuando un módulo se compila contra un código fuente del núcleo diferente al que luego se va a insertar, es rechazado. Este control es con un string estático que se almacena en el módulo, e incluye tanto el código de versión (ej.: 2.6.39.4), como algunos parámetros de configuración importantes (los parámetros de compilación del núcleo, ej.: CONFIG_LOCALVERSION="-smp"). Si se está seguro de que las diferencias de versión no son importantes se puede forzar dicho string en concordancia con el del kernel. Búsqueda en Google: http://www.google.com/search?q=+Error+inserting+ath9k_htc+Invalid+module+format&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:es-AR:official&client=firefox-a#hl=es&safe=active&client=firefox-a&hs=6zB&rls=org.mozilla:es-AR%3Aofficial&sclient=psy-ab&q=Error+inserting+Invalid+module+format&oq=Error+inserting+Invalid+module+format&aq=f&aqi=g-L1g-mL1&aql=&gs_l=serp.3..0i19j0i5i19.4898.4898.0.5178.1.1.0.0.0.0.247.247.2-1.1.0...0.0.J6HRMNTIu88&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&fp=35ede335b247a31e&biw=839&bih=774]
insmod: error inserting 'x.ko': -1 Invalid... - kerneltrap.org - Editar  Eliminar
[insmodmodprobekernellinuxdriver - Cuando un módulo se compila contra un código fuente del núcleo diferente al que luego se va a insertar, es rechazado. Este control es con un string estático que se almacena en el módulo, e incluye tanto el código de versión (ej.: 2.6.39.4), como algunos parámetros de configuración importantes (los parámetros de compilación del núcleo, ej.: CONFIG_LOCALVERSION="-smp"). Si se está seguro de que las diferencias de versión no son importantes se puede forzar dicho string en concordancia con el del kernel. Búsqueda en Google: http://www.google.com/search?q=+Error+inserting+ath9k_htc+Invalid+module+format&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:es-AR:official&client=firefox-a#hl=es&safe=active&client=firefox-a&hs=6zB&rls=org.mozilla:es-AR%3Aofficial&sclient=psy-ab&q=Error+inserting+Invalid+module+format&oq=Error+inserting+Invalid+module+format&aq=f&aqi=g-L1g-mL1&aql=&gs_l=serp.3..0i19j0i5i19.4898.4898.0.5178.1.1.0.0.0.0.247.247.2-1.1.0...0.0.J6HRMNTIu88&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&fp=35ede335b247a31e&biw=839&bih=774]
Sata disk not identified during install - Linux - launchpad.net - Editar  Eliminar
[linuxdriversdrivercontroladorGNU/Linuxsataatadisco rígidohard diskkernelpci=nomsi - Cuando hay errores al inicio de Linux como: "unexpected IRQ trap at vector", no reconoce los discos rígidos SATA. Solución: pasar al kernel el parámetro de booteo: pci=nomsi]

How to get USB devices working under Linux - linux-usb.org - Editar  Eliminar
[linuxusbkeyboardmenuconfigkernel configkernel - Habilitar los dispositivos USB en Linux. Búsqueda en Google: http://www.google.com/search?q=make+menuconfig+usb+keyboard&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:es-AR:official&client=firefox-a]
Spase, el analizador semántico de códigos... - wikipedia.org - Editar  Eliminar
[linuxkernelsparcesemanthic parsersemanthic analysermixing pointerkernel address space - Sparce: dado un código fuente en C del núcleo de Linux, ayuda a nalizar cuestiones como: Manejo de punteros al espacio de usuario y al espacio delkernel, lockeos adquiridos por una función. El código debe ser anotado (agregarle marcas / etiquetas sobre los fragmentos de código a analizar).]
The Linux Tutorial - linux-tutorial.info - Editar  Eliminar
[linuxkerneltutorialmultiple choicetest yourself - El capítulo "Kernel basics" es igual a The Linux Kernel en "The LinuxDocumentation Project". Tiene tests para ver lo que aprendiste.]
Linux Device Drivers 3rd edition - Publisher... - makelinux.net - Editar  Eliminar
[linuxkerneltutorialbottom half handlersIRQinterrupt handlerinterrupttop half handlers - Programación de drivers enLinux, buena calidad]

JDBC - ODBC
Open Database Connectivity - Wikipedia, la enciclopedia libre
JDBC: Conectarse a una base de datos MS Access - Linea de Codigo
JDBC driver - Wikipedia, the free encyclopedia
JDBC-ODBC Bridge
java - JDBC ODBC Driver Connection - Stack Overflow
UCanAccess-A Pure Java JDBC Driver for Access
unixODBC


Redes Privadas Virtuales en Linux
Oleg Kolesnikov: www.cc.gatech.edu/~ok
Brian Hatch: clientes: bancos, farmacéuticos, instituciones educativas, desarrolladores de navegadores web, empresas .com
PPP sobre SSH (SSH no es sólo para línea de comando, sino que es para cualquier dato de texto o binario).
PPP sobre SSL/TLS
IPSec: protocolo desarrollado por IETF para dar seguridad al TCP/IP, que se ubica en la capa superior a éste. Componentes principales: IKE (Internet Key Exchange), AH (Authentication Header), ESP (Encapsulating Security Payload).
FreeS/WAN: cifrado oportunista
PPTP (point-to-point tunneling protocol)
VTun
cIPe
tinc
modelo OSI
Applied cryptography Bruce Schneier (John Wiley & sons 1996);
Handbook of Applied Cryptography Alfred J Menzes, Paul C. Van Oorschot y Scott Vanstone, CRC Press 1996;
IPX/SPX NetWare
autenticación
protocolos de autenticación estándar
enlaces WAN dedicados
PDH: plesiochronous digital hierarchy
SDH: synchronous digital hierarchy
CO: central office / Telephone exchange
dominio autenticado (§ Cómo autenticar nuestros usuarios móviles)
puerta de enlace - pasarela
DMZ
router / firewall - conmutador
registros DNS MX: sellección del servidor SMTP
acceso RAS
puerta de enlace VPN
VPN de administración dedicada
ancho de banda
solicitud de conexión entrante
Conexión RSDI (red digital de servicios integrados) / ISDN (integrated service digital network) connection
§ Host-Red
puerta de enlace VPN
autenticación de host
túnel VPN
conexión por marcación telefónica
conexión LAN
enlace inalámbrico
ADSL
§ Red-Red
Extranet
Capa de la pila OSI donde operan las puertas de enlace VPN
§ Ventajas
falseamiento IP
sniffing pasivo
pérdida de confidencialidad
inyección de paquetes
virus CodeRed y virus Nimda
informe anual CSI/FBI
coste total de propiedad (TCO)
infraestructura de marcación interna, circuito dedicado, Frame Relay, ATM
sniffing pasivo
www.vpnc.org
§ Comparación VPN con RAS
parámetros criptográficos
parámetros  ESA/AH
placas en serie multiport
guerra de marcación telefónica
§ Las VPN frente a las líneas dedicadas
líneas dedicadas, tipos de: T (T1, T3), E (europeas), líneas OC (OC3, OC12, OC48, OC192), enlaces inalámbricos (microondas, RF, satélites)
CPE (Customer Premise Equipemment)

Documentar una VPN: herramientas de descubrimiento
estrategia de administración de claves
DoS
salvaguardias de procedimiento y administrativas
Servicios de autenticación externos: SOCKS
Intentos de autenticación: mecanismos de respuesta a desafíos
cadena de autenticación
protocolo IPSec: RFC 2401, cifrado DES de 56 bits
Otros algoritmos de cifrado soportados por IPSec: la mayoría de las implementaciones soporta triple DES
OpenSSL: Entropía en la generación de números aleatorios para las claves: antes y después de la versión 0.9.6b
PGP
PKI
credenciales de los usuarios
ISP
firewall basado en hosts

stunnel
túnel seguro (individual)
Ejemplos de software no seguros per sé, que se pueden asegurar con PPP/SSH: VNC
Cryptanalysis of Microsoft's PPTP Authentication Extensions (MS-CHAPv2), Bruce Schneier y Mudge, 1999
Cryptographic Evaluation of IPSec, Niels Ferguson y Bruce Schneier, 2000
IPX / SPX, Appletalk
SOCKS5 / SOCKS
efecto de fusión TCP
Defense Message System (DMS)
HTTPS, SSL
RFC 1918 (intervalo de redes privadas)
SFTP, SCP (distribución de claves públicas)
Protocolo de encaminamiento IGP al uso (RIP, OSPF)
¿FreeS/WAN e IPSec pueden hablar? (§ Interoperatividad, Cap 2)
paquetes VPN para plataforma WinTel
httptunnel.com
protocolos y normas de estado
ftpd-ozone monkey.org/~dugsong
Linux Firewalls 2da edición Robert Ziegler 2002
(atención: los firewalls son para versiones específicas del kernel)
FWTK: Gauntlet, plug-gw: fwtk.org
IPF
IPChains, ip_masq_ftp
IPTables / Netfilter -> paquetes RELATED
IPFilter coombs.anu.edu.au/~avalon
Dante, firewall-proxy at circuit level: inet.no/dante
diferencia entre puertas de enlace de aplicación y puertas de enlace de aplicación individuales (=proxy)
T.REX, opensourcefirewall.com
¿qué es un registro de firewall?
DNS para distribución de la carga entre servidores ¿cómo?
ICMP
hub / conmutador (¿switch?)
filtros de paquetes del kernel Linux
NAT para uso: 1) no VPN, 2) VPN
Redes 10.x.y.z
enlaces / links
subred: 1) grande, 2) pequeña
intervalo IP
bloques CIDR
IOS de CISCO
"Link encap"
redes /32 / 255.255.255.255
etc/network/interfaces (Debian)
netstat -nr
tcpdump
Archivos de configuración: /proc/sys/net/ipv4/conf/all/...
¿Existe en la práctica una red donde todas las IPs, sean reales (LAN) o virtuales (VPN), estén en la misma red? (tras aplicar la máscara de red)... / ...que los host no conozcan puertas de enlace y cada host nuevo se sume de forma transparente?... / ...que haya 1 host encargado del enlace pero que actúe en nombre de cada dirección remota individual y no sea visto por los demás como puerta de enlace? O sea una VPN donde los hosts remotos puedan ser percibidos sin la noción de puerta de enlace.

Escanear documentos y aplicar OCR en Linux
Cómo extraer recursos (imágenes, íconos, audio) de un archivo binario de Visual Basic 6:
Los proyectos VB 6 se componen de los archivos de formularios (.frm) que en caso de tener datos binarios embebidos (imágenes, audio, etc., ej.: Un Formulario de ABM que tiene un botón "play" que reproduce una música .wav) dichos recursos se guardan en archivos binarios (.frx). Con este programa podemos extraer los recursos binarios del proyecto VB 6.