Você está na página 1de 85

Traducido por Sykrayo Espaa

WEB ESPECIALIZADA EN SEGURIDAD DE REDES - SOFTWARE FORENSE Y CONTROL A DISTANCIA PROGRAMACIN EN LENGUAJES DE ALTO NIVEL - SOFTWARE POLICIAL Y BIOMETRICS SISTEMAS I/O AVANZADOS DE ALTO NIVEL sykrayo@hotmail.com

Traducido por Sykrayo Espaa

BitPim
Un aplicacin enPitn
Roger Binns
rogerb@rogerbinns.com

bitpim.org

Motivacin

Traducido por Sykrayo Espaa

Newcellphone, nuevas caractersticas


-

Agenda Calendario Wallpapers Tonos Mensajera Voz y texto notas ...

bitpim.org

Soy un ser humano!

Traducido por Sykrayo Espaa

Yo willnotuse almohadilla Sincronizar


-

un nmero

productslimited

Soporte del telfono Tickbox ' Agenda slo Slo para Windows Licencias sola mquina Caprichos estpidos
bitpim.org

Traducido por Sykrayo Espaa

Yo

lata

hacer manera mejor J

bitpim.org

Traducido por Sykrayo Espaa

Traducido por Sykrayo Espaa

Traducido por Sykrayo Espaa

Traducido por Sykrayo Espaa

75000 70000 65000 60000 55000 50000 45000 40000 35000 30000 25000 20000 15000 10000 5000 0

03 de marzo 03 de abril 03 de mayo 03 de junio 03 de julio 03 de agosto 03 de septiembre 03 de octubre 03 de noviembre 03 de diciembre 04 de enero 04 de febrero 04 de marzo 04 de abril 04 de mayo 04 de junio

Popularid ad

Traducido por Sykrayo Espaa

bitpim.org

Impresiones de Pgina Descargas

Traducido por Sykrayo Espaa

Scale
de Pitn descripcin

30000 lneas 2500 lneas Archivos


-

de

se convierte en 41.000 lneas de cdigo generado


500 lneas

de

C/C++

20000 wordsof lnea ayudar

bitpim.org

Specifications

Traducido por Sykrayo Espaa

Exponer Anduse de mi clula telfono


-

allfeatures

No documentacin del protocolo a todos!

Dejar me utilizar iton muchos mquinas Yo querer


-

como como

multiplataforma

Interopere

conotros
bitpim.org

datos fuentes

Specifications
-

Traducido por Sykrayo Espaa

Sin islas de datos

bitpim.org

More specs

Traducido por Sykrayo Espaa

Dejar
-

otros

jointhe

partido

El cdigo abierto Capaz de aadir otros telfonos Slo tiene UI donde ningn otro programa hace

Hacer notbe un PIM


-

Ser programas

possibleto

pluginto otros

tratar slo con interfaz de telfono celular


bitpim.org

Even more specs


Traducido por Sykrayo Espaa

Fcil a utilizar No instalacin obstculos


-

No hay requisitos previos Ningn infierno DLL No RPM dependencias infierno

Fcil a diagnosticar qu tiene ocurrido en usuario mquinas


-

La falta de documentacin significa aprender desde el campo


bitpim.org

The users don't care

Traducido por Sykrayo Espaa

r Usuarios No hacer cuidar hay de ti ser consistentwithaplataforma ellos no utilice

Usuar No cuid qu idioma usted ios hace ar utiliza r r No cuid howharditisto escribir Usuar hace ar Usuar No cuid qu desarrollo ios r ios hace ar metodologa ustedutilizar

bitpim.org

The users do care

Traducido por Sykrayo Espaa

Usuarios hacer cuidar programa hace qu usted reclamar

que su

.. andthey wantto utilizar itfor como poco tiempo comoposible


-

Objetivos, no tareas

bitpim.org

Traducido por Sykrayo Espaa

I care

Yo
-

cuidar aboutproductivity cuidar aboutrefactoring

No drudge trabajo gracias! Conocimiento cambiar con el tiempo

Yo
-

Yo cuidar aboutease de HABLANDOCO otras bibliotecas y componentes


-

Productiva!
bitpim.org

Activo comunidad

Preaching to the choir


La nica solucin es

Traducido por Sykrayo Espaa

Python!
(Y algunas bibliotecas de Python)
bitpim.org

Gui options

Traducido por Sykrayo Espaa

Tkinker
-

El mnimo comn mltiplo Dibuja los widgets s Experiencia previa desagradable Estancado Alta funcionalidad comn No es de cdigo abierto en Windows Dibuja los widgets s
bitpim.org

Qt
-

Gui options

Traducido por Sykrayo Espaa

GTK
-

Linuxy Dibuja los widgets s Alta funcionalidad comn

wxWidgets / wxPython
-

Utiliza los widgets nativos siempre que sea posible Comunidad muy activa Experiencia previa Pleasant
bitpim.org

Distribution
Tiene a aparecer "normal" aplicacin en cada plataforma

Traducido por Sykrayo Espaa

como un

Dos pasos
-

Cdigo Python congelacin (confusamente llamado instaladores) Instalador

bitpim.org

Freezing

Traducido por Sykrayo Espaa

Rena allPython mdulos, binario modulesandPython interpretter Anddata filesyou especificar Stub Launcher
-

Cargas Python interpretter Establecer ruta para los mdulos binarios Cargue cdigo Python de archivo (. Zip)

Lata serpuesto dondequierabitpim.org

no

Freezing
necesidad para la instalacin

Traducido por Sykrayo Espaa

bitpim.org

Ventanas - py2exe
-

Freezing - Platform specific


Traducido por Sykrayo Espaa

Iconos recursos version_info Integration / mdulos COM

Linux - cx-Freeze
Strip rpath de wxPython bibliotecas compartidas
-

Mac - BundleBuilder
-

Algunos especificacin manual de


bitpim.org

bibliotecas compartidas para incluir

Freezing - Platform specific


Traducido por Sykrayo Espaa

bitpim.org

Ventanas - InnoSetup
-

Installation Platform specific


Traducido por Sykrayo Espaa

Men Inicio Desinstalar Panel de control Icono

Mac - dmg
-

bitpim.org

Linux - RPM
-

Installation Platform specific


Traducido por Sykrayo Espaa

proporciona, requiere (tenga cuidado de rpmbuild ser demasiado til!)

Archivos fuera del camino, shell script lanzador Icono Men $ LD_LIBRARY_PATH (cx-Freeze puede hacer esto para usted)

bitpim.org

Not that hard!

Traducido por Sykrayo Espaa

Ventanas 153 227 Comn

Mac 58

Linux139

bitpim.org

Serial Ports

Traducido por Sykrayo Espaa

pyseriallibrary
-

De Windows (win32all) Linux y Mac (POSIX) Interface No sabe / se preocupan por plataforma

Completo funcion
Las tarifas de datos Control de flujo
bitpim.org

Serial Ports
-

Traducido por Sykrayo Espaa

DSR / CTS, etc

bitpim.org

User friendly serial ports

Traducido por Sykrayo Espaa

bitpim.org

User friendly serial ports

Traducido por Sykrayo Espaa

bitpim.org

Months of fun!

Traducido por Sykrayo Espaa

Ventanas - escanear registro


-

Diferente en Win9x, Win2k, WinXP Buen detalle (drivers, fechas, etc) Nodos de dispositivo en diversos directorios Kernel module asociado con los principales Nodos de dispositivo en un directorio / Dev Ninguna otra informacin
bitpim.org

Linux
-

Mac
-

Traducido por Sykrayo Espaa

USB
iseasy acceso en cdigo

Aka Python / Cintegration LibusbprovidesgoodUSB Ventanas, Linux andMac SWIGgenerates Pitn envolviendo C/C++ Idioma

neutralbutbest

en Pitn

bitpim.org

Traducido por Sykrayo Espaa

SWIG

SWIGisrealmente bueno Tiene un goodjobwithraw C / C + + encabezamiento Es actuallysimpler de itseems Lata pickupcues de nombres de parmetros (Fomentar la Ejecutores Clibrary!)
-

Cadenas binarias
bitpim.org

C/C++ problemas destacado


Traducido por Sykrayo Espaa

Quin Datos
-

posee memoria? propiedad por otro datos API diseo

Globalpointers
Puede necesitar C + + contador de referencia Proporcionar capa Pythonic
bitpim.org

Pobre
-

Multi-tasking

Traducido por Sykrayo Espaa

No se puede hacer dos mismo tiempo


-

thingsatla

Esperando caso GUI Hablando con dispositivo Hablando con la red Impulsado Evento Enhebrado

Dos enfoques
-

bitpim.org

Event driven

Traducido por Sykrayo Espaa

Twisted / asyncore Balanza bien Harder a write ("insideout") Cada biblioteca tiene mismo manera a trabajar la

bitpim.org

Threading

Traducido por Sykrayo Espaa

Simplificacin (Inicialmente) Thingscan cambiar usted debajo

Harder a negociar withexceptions

bitpim.org

And the winner was ...


Traducido por Sykrayo Espaa

Enhebrado Decouplethreads (Anddata) como tanto como posible wxPython eventloopintegrates Utilizar SendMessages bien Queue.Queue a

wx.PostMessage a SendTo GUI cola de eventos


bitpim.org

Sample Code - GUI


def OnGetFile (self): ... self.makecall (getfile, camino, self.OnGetFileResult, path)

Traducido por Sykrayo Espaa

OnGetFileResults definicin (auto, datos): ... def makeCall (self, callfunc, resargs): self.queue.put ( (Callfunc, resultfunc,resargs)
bitpim.org

camino,excepcin,

si excepcin es No Ninguno: aumentar excepcin

args, args, )

resultfunc,

Cdigo de ejemplo - bucle de hilo


Traducido por Sykrayo Espaa

resultado = excepcin = Ninguno callfunc, args, resultfunc, resargs = queue.get () Sugerencias de bsqueda: resultado = callfunc (* args) con excepcin de: excepcin = sys.exc_info () [1] wx.PostEvent (RESULT_EVENT, (Resultfunc, resargs, excepcin, resultado))

bitpim.org

Traducido por Sykrayo Espaa

Threading y TRAGO
/ / Acuerdo con los datos que se devuelven int usb_bulk_read_wrapped (usb_dev_handle * dev, ep int, char * bytesoutbuffer, int * bytesoutbuffersize, int timeout) { int res; Py_BEGIN_ALLOW_THREADS res = usb_bulk_read (dev, ep, bytesoutbuffer, * bytesoutbuffersize, tiempo de espera); Py_END_ALLOW_THREADS if (res <= 0) * Bytesoutbuffersize = 0; ms * Bytesoutbuffersize = res; volver res; }

bitpim.org

Threading de trampas

Traducido por Sykrayo Espaa

Pitn
-

doesn'thave hilo

prioridades

Tampoco los marcos evento impulsado Tienen que sondear variables Utilice setDaemon para llamadas de bloqueo (por ejemplo, aceptar)

Cannotinterruptahilo
-

Discrepancia tasas inproducer / consumidor puede tener horrible efectos


bitpim.org

Actualizar GUI del controlador de inactividad

Traducido por Sykrayo Espaa

bitpim.org

Threading techniques

Traducido por Sykrayo Espaa

Aseveraciones
-

contra thread.get_ident () Reenviar solicitudes para corregir hilo La agrupacin de subprocesos De cheques

Clase / ejemplo envolturas


-

bitpim.org

Outlook

Traducido por Sykrayo Espaa

Si usted lata hacer iteasily de VB, usted lata hacer iteasily de Pitn (Win32all) Dynamicmodule generacin atruntime (En cach) makepy lata generar staticmodule Binariodistribucin favorece ltimo
bitpim.org

Outlook - code
importacin outlook_com app = outlook_com.Application () mapi = app.GetNamespace ("MAPI") = contactos mapi.GetDefaultFolder (constants.olFolder) para i en range (len (contacts.Items)): item = contacts.Items [1 + i] imprimir item.FullName imprimir item.MobileTelephoneNumber

Traducido por Sykrayo Espaa

bitpim.org

Evolution

Traducido por Sykrayo Espaa

vCardsstored inberkely mdulo)

dbfiles (bsddb

ebook api
-

Problemas de versiones significativos Problemas de dependencias significativas

bitpim.org

vCards

Traducido por Sykrayo Espaa

No madura Pitn

vCardmodules

Ninguna fuente de datos implementsvCards correctamente de todos modos 530 lneas vFileparser para datos andvCard convertidor

Correctamente ofertas withevery corregir y roto vCardI couldfind


bitpim.org

Wisdom

Traducido por Sykrayo Espaa

Utilizar la alto levellanguage usted lata pagar, aunqueusted tener a writeit mismo
-

La intencin no aplicacin

Mayor productividad Menos Ms fcil a handwrittencode meloda


bitpim.org

Protocol description

Traducido por Sykrayo Espaa

Cada fieldissome
-

nmero debytes

Cada fieldhas untipo


Tipo Marshalled (por ejemplo, nmero entero lsb) Tipo de Python (por ejemplo, cadena)

Algunos fieldsare conditionalon valores de otros


bitpim.org

los

Protocol Requirements
* RESPONSEHEADER encabezamiento 1 UINTlsb blockcounter 1 BOOL thereismore * STRING nombre SI thereismore 4 UINTlsb tamao del archivo 2 UINTlsb DataSize * DATOSdatos
bitpim.org

Traducido por Sykrayo Espaa

Description language

Traducido por Sykrayo Espaa

Utilizar 650 lneas Pitn

Pitnsintaxis! analizar cdigo a generar de de de

tokenizemoduleto

2500 lneas 41000 lneas cdigo


-

protocoldescription generado

con los comentarios


bitpim.org

Description language
-

Traducido por Sykrayo Espaa

con la comprobacin con la introspeccin

bitpim.org

Protocol example
PAQUETE foobarrequest: "a comentario " * RequestHeader {'Comando': 0x04} + Header 1 UINT {'Constante': BlockNumber si self.blocknumber == 0: * STRING {'Terminator': 0, 'Pascal': Verdadero} nombre de archivo * LISTA{'ElementClass': marcacin rpida} + Speeddials 0} +

Traducido por Sykrayo Espaa

bitpim.org

Protocol Visualisation

Traducido por Sykrayo Espaa

bitpim.org

Internal representation de los datos


Traducido por Sykrayo Espaa

Dicts
-

Keys

Identificado res nicos

Orden
Las listas de los adictos
-

Muy duro para aadir ms adelante


bitpim.org

Internal representation Ser base de datos lista


Traducido por Sykrayo Espaa

SQLite Tbano

bitpim.org

Formatos de archivo para guardar los datos


Traducido por Sykrayo Espaa

Humano legible es grande para la depuracin, testingandinteroperability


-

XML Python "cdigo"

Concurrentaccess Pretty impresa para me bitpim.org dicts / listsworks

(Excepto el acceso simultneo)


Traducido por Sykrayo Espaa

bitpim.org

Versiones de Datos

Traducido por Sykrayo Espaa

Versiones Hacia atrsy forwardscompatible


... convertir versin = 2 si ... convertir a 2 ... versin == 2: a3 ... version = ... nosotros

si versin == 1:

3 si son

versin == 3: feliz

... si version> = 4: algo usuario amistoso ...

... hacer

bitpim.org

Traducido por Sykrayo Espaa

Programa r hacer c

Traducido por Sykrayo Espaa

Documentacin del usuario


Traducido por Sykrayo Espaa

HTML isking MicrosoftCHM


-

Archivo patentada de HTML compilado Archivo ZIP de HTML Produce tanto Preprocessor
bitpim.org

wxWidgetshelp
-

HelpBlocks
-

Usuario doc

Traducido por Sykrayo Espaa

Web sy te o

Traducido por Sykrayo Espaa

Troubleshooting

Traducido por Sykrayo Espaa

Capturingexceptions
-

sys.exc_info () -> tipo, valor, rastreo Python Cookbook

Marco las variables


-

Lata transferencia a travs de hilos Mantener


-

originaltraceback

ex.original_exception = sys.exc_info ()

bitpim.org

Traducido por Sykrayo Espaa

Secure remoting

Traducido por Sykrayo Espaa

Expreso methodsandparameters Tipos importante


-

int cadena dict lista / tupla

As son excepciones

Choices

Traducido por Sykrayo Espaa

Casa crecido IDL


-

Corba XDR XML-RPC JABN

XML basado
-

XML-RPC
<? Xml version = '1 .0 '> <methodCall> <methodName> aadir </ para> <params> <param> <valor> <int> 1 </ int> </ value> </ Param> <param> <valor> <int> 2 </ int> </ value> </ Param> </ Params> </ MethodCall>

Traducido por Sykrayo Espaa

XML-RPC

Traducido por Sykrayo Espaa

Tiene Interopera No Ninguno

excepciones(Aka conotros idiomas

Fallos)

Wellsupported inPython biblioteca estndar HTTPtransportinstdlib


-

No hay seguridad (https, autenticacin) Una peticin por conexin

Attempt 1

Traducido por Sykrayo Espaa

autenticacin http
-

Cada solicitud

M2Crypto (opensslwrapper) Muy difficultto preventconnection cierra


-

Consulte "destructores intil" hilo en c.l.p

X.509 certificados

Attempt 2

Traducido por Sykrayo Espaa

Paramiko (SSHlibrary) SSHhas llamadocanales Simplecertificates Autenticacin en establecimien to de la conexin

Traducido por Sykrayo Espaa

Auto-remoting methods

getattr llam

a trabajar outName utilizado

a invocarwithargs

ar

Ver xmlrpclib._Method Ser cuidado!


Una historia
-

de

Traducido por Sykrayo Espaa

str

Auto-remoting methods

Impresi n

Traducido por Sykrayo Espaa

Html, el panacea universal,


-

Automtico de caudal Uso de plantillas Fcil de previsualizacin wx.Html carece de hojas de estilo

Lata tambin utilizar Inui

Publish/Subscribe

Traducido por Sykrayo Espaa

Similarto MVC Decouplescode Enhebrado


-

Tener cuidado

Weakrefs

Debugging

Traducido por Sykrayo Espaa

Printstatements
-

Tienden a permanecer mucho tiempo

loggingmodule Pitn afirmar Hacer notthrowaway pychecker excepciones! depurador


pdb ; pdb.set_trace () importar

Do early

Traducido por Sykrayo Espaa

Decidir en deshacer implementacin


-

Registro de transacciones

Decidir en forwardscompatibilityof almacena datos Tener un pruebaplan


-

Estrs / lmite Uso normal / regresin

Tener un Utilizar

posicin en
bitpim.org

I18N/L10N

XRCfor interfaz de usuario

De pie sobre los hombros de los dems


Traducido por Sykrayo Espaa

Pitn

idioma

acceso usb

wxPython gui pyserial com puertos PythonDSV csv

HelpBlocks Ayuda TRAGO autora Python envoltorios GCC / MinGW C / C + + compiladores SourceForge Proyecto de alojamiento libusb/libusb-win32
bitpim.org

Traducido por Sykrayo Espaa

paramiko ssh win32all API de Windows ffmpeg formato multimedia conversin InnoSetup Instalador de Windows py2exe Ventanas Python Congelacin cx-Freeze Linux congelacin

bitpim.org

Conclusin

Traducido por Sykrayo Espaa

Feliz Pitn

usuarios Y desarrolladores productividad

Abierto fuente Cruzar plataforma Enchufe


-

Proveedores Dotamatic

bitpim.org

Você também pode gostar