break a time, with break the c0de…

Posts tagged “linux

Huawei modem unlock calculator


Any time i’ve been using modem (i use huawei e169) for my internet connections. because i like the flexibility and realibility for use on my notebook. but 2 days ago, i was late to pay the bill and my connection was disconnected. i read the bill, and the bill was so high than other provider. i want to move to other provider, but i can’t. because the modem was locked by provider and only can using the sim card from the provider. yes i hear there is any way to unlock the modem, but i must pay at the service. because of that i’m doing some research and looking for the unlock code algorithm used by huawei modem. and i got it and did it in my program. now i can freely use any sim card on my modem. here it is, the source code contains the algorithm or you can use by direct or import it to your own program ;) . hope you enjoy !

#!/usr/bin/python
# -*- coding: utf-8 -*-
#   This library is free software; you can redistribute it and/or
#   modify it under the terms of the GNU Lesser General Public
#   License as published by the Free Software Foundation; either
#   version 2.1 of the License, or (at your option) any later version.
#
#   This library is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
#   Lesser General Public License for more details.
#
#   You should have received a copy of the GNU Lesser General Public
#   License along with this library; if not, write to the
#      Free Software Foundation, Inc.,
#      59 Temple Place, Suite 330,
#      Boston, MA  02111-1307  USA
#
#   Copyright 2010 Gunslinger_ <yudha.gunslinger@gmail.com>
#   http://bit.ly/c0debreaker

import hashlib, string

__author__	= "Gunslinger_ <yudha.gunslinger@gmail.com>"
__date__ 	= "Tue, 14 Jun 2011 23:22:42 +0700"
__version__ 	= "1.0"
__copyright__ 	= "Copyright (c) 2010 Gunslinger_"

class huawei_modem_unlocker(object):
	"""
	Instance variables:

	Imei
		Imei of the modem will be calculated
		Default : '0'

	Verbose
		Display how algorithm working
		Default : False

	"""
	def __init__(self, imei='0', verbose=False):
		''' Huawei modem unlocker class constructor '''
		self._imei 		= imei
		self._verbose		= verbose
		self._md5u 		= hashlib.md5(str(imei)+str('5e8dd316726b0335')).hexdigest()
		self._md5f 		= hashlib.md5(str(imei)+str('97b7bc6be525ab44')).hexdigest()
		self._unlock_code 	= ''
		self._flash_code 	= ''
		# verbose formating
		self._width		= 21
		self._w			= 10
		self._header_format 	= '%-*s%*s'
		self._format       	= '   %d  | %-*s | %*s  '

	def xor_digits(self, source, counter):
		''' Get a value and xoring it during looping iteration '''
		digits = int('0x0'+source[0+counter:2+counter],16)	^ \
			 int('0x0'+source[8+counter:8+2+counter],16)	^ \
			 int('0x0'+source[16+counter:16+2+counter],16) 	^ \
			 int('0x0'+source[24+counter:24+2+counter],16)
		return digits

	def calc(self):
		''' Process calculate with the algorithm (read source code) '''
		cnt = 0
		cnt2 = 1
		if self._verbose:
			print "="*(self._width+13)
			print " Iter."+"|"+ " Unlock byte "+"|"+" Flash byte "
			print "-"*(self._width+13)
		while cnt < 8:
			digits_unlock 	= self.xor_digits(self._md5u, cnt)
			digits_flash 	= self.xor_digits(self._md5f, cnt)
			unlock_byte 	= string.zfill(hex(digits_unlock)[2:],2)
			flash_byte	= string.zfill(hex(digits_flash)[2:],2)
			self._unlock_code = str(self._unlock_code)+str(unlock_byte)
			self._flash_code  = str(self._flash_code)+str(flash_byte)
			if self._verbose: print self._format % (int(cnt2), self._width - self._w, self._unlock_code , self._w, self._flash_code)
			cnt  +=2
			cnt2 +=1
		if self._verbose:
			print "="*(self._width+13)
			print "\nUNLOCK CODE = %d & %d | %d = %d" % (int('0x0'+self._unlock_code,16), 33554431, 33554432, eval("int('0x0'+self._unlock_code,16) & 33554431 | 33554432"))
			print "FLASH CODE  = %d & %d | %d = %d\n" % (int('0x0'+self._flash_code,16), 33554431, 33554432, eval("int('0x0'+self._flash_code,16) & 33554431 | 33554432"))
		self._unlock_code 	= int('0x0'+self._unlock_code,16) & 33554431 | 33554432
		self._flash_code 	= int('0x0'+self._flash_code,16) & 33554431 | 33554432
		return (self._unlock_code, self._flash_code)

	def run(self):
		''' Fire it up ! '''
		self.calc()
		return (self._unlock_code, self._flash_code)

if __name__ == '__main__':
	print "\nHuawei modem unlock code calculator v.%s by %s \n" % (__version__, __author__)
	inpimei = raw_input("Please input modem IMEI : ")
	cracker = huawei_modem_unlocker(inpimei)
	a, b 	= cracker.run()
	print "\n-> IMEI		= %s" % (inpimei)
	print "-> UNLOCK CODE	= %s" % (a)
	print "-> FLASH CODE	= %s" % (b)

error sending mail in php ?


Yesterday, ketika saya ingin mencoba lagi membuat script html email pada php. script php tersebut sebagai berikut :

function kirim_email($name, $email, $to_mail, $subject, $msg) {
$sending = false;
$eol = "\n";
$tosend = array();

if (!empty($name) && !empty($email) && !empty($to_mail) && !empty($subject) && !empty($msg)) {
	$from_name = $name;
	$from_mail = $email;
	$sending = true;
}

if ($sending) {
	$tosend['email'] = $to_mail;
	$tosend['subject'] = $subject;

	$tosend['headers'] = "From: \"".$from_name."\" <".$from_mail.">".$eol;
	$tosend['headers'] .= "Content-type: text/html; charset=iso-8859-1".$eol;
	$tosend['message'] = $msg;

	if (mail($tosend['email'], $tosend['subject'], $tosend['message'] , $tosend['headers']))
	return true;
	else
	return false;
	}//-- if ($sending)
return false;
}
if (kirim_email("Gunslinger_", "no-reply@host.com", "yudha.gunslinger@gmail.com", "Hi!", "<strong>Testing sending email</strong>")){
	echo "sukses";
)
?>

saya tak sadar bahwa ternyata ada yang salah dengan sistem saya, karena dari fungsi yang dipakai menghasilkan “sukses” pertanda fungsi php pengiriman email tersebut mengalami True. ketika saya menjalankan script email, dan saya tunggu. ternyata pesan tak kunjung datang ? dan saya re-send kembali, dan saya tunggu kembali. dan baru saya sadari jika memang ada yang salah pada program pengiriman email setelah saya membaca logging dari mail yang dilakukan oleh postfix / sendmail.
ternyata pengiriman pesan email mengalami error. error tersebut sebagai berikut :

gunslinger@c0debreaker:/var/log$ cat mail.log
...cut very big error logging...
Dec 20 01:42:34 c0debreaker postfix/smtp[19046]: 74FBF30501:
to= relay=none, delay=10,
status=deferred (Name service error for name=gmail.com
type=MX: Host not found, try again)
gunslinger@c0debreaker:/var/log$

ternyata memang benar, ada yang salah dengan pengiriman email. namun darimana error tersebut ?
sekian dari di teliti, kemungkinan bisa terjadi karena pada beberapa berikut ini :

– tidak bisa meresolve domain, terhalang firewall / iptable ?
– ISP tidak mengizinkan port smtp (port: 25), alasan keamanan anti spam ?
– daemon postfix / sendmail yang tak berfungsi ?
– gmail melakukan blok pada ip yang dinamis ?
– kesalahan konfigurasi, sendmail pada php.ini ?
– permasalahan perizinan hak akses dari user www-data ketika mengakses sendmail, dikarenakan dibutuhkan superuser untuk mengakses postfix / sendmail ?
– kemungkinan lain yang belum di ketahui

dari sekian kemungkinan saya mencoba untuk menganalisa lebih jauh dari setiap kemungkinan

– tidak bisa meresolve domain, terhalang firewall / iptable ?
saya mengecek apakah rule pada iptable saya telah memblok akses pengiriman dan penerimaan .

gunslinger@c0debreaker:/var/log$ sudo iptables -L -v
Chain INPUT (policy ACCEPT 22038 packets, 9915K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 22842 packets, 6103K bytes)
 pkts bytes target     prot opt in     out     source               destination
gunslinger@c0debreaker:/var/log$

ternyata tidak, iptable mengizinkan packet untuk keluar masuk dari sistem.
dan saya mencoba lagi untuk meload php pengiriman email tersebut di browser, pesan masih tak kunjung datang.

– ISP tidak mengizinkan port smtp (port: 25), alasan keamanan anti spam ?
saya cek kembali, kali ini saya scanning ip saya sendiri dari luar, apakah port SMTP di blok oleh ISP ?

gunslinger@c0debreaker:/var/log$ nmap 10.70.191.159

Starting Nmap 4.76 ( http://nmap.org ) at 2010-12-20 02:38 WIT
Interesting ports on 10.70.191.159:
Not shown: 992 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
443/tcp  open  https
6667/tcp open  irc

Nmap done: 1 IP address (1 host up) scanned in 0.74 seconds
gunslinger@c0debreaker:/var/log$

lagi2 bukan itu permasalahannya. kembali ke kemungkinan masalah lain.

– daemon postfix / sendmail yang tak berfungsi ?
dengan kemungkinan berikut, saya mencoba melakukan testing mengirimkan email dari shell.

gunslinger@c0debreaker:/var/log$ mail -s testing yudha.gunslinger@gmail.com
Testing send email
Cc:
gunslinger@c0debreaker:/var/log$

lalu kemudian saya mengecek email apakah email tersebut masuk.

email, sending, error, mail(), function

ternyata masuk ke dalam email, hanya saja masuk ke kotak spam dikarenakan ip pengirim yang dinamis, dan hostname pengirim yang tidak jelas.

– gmail melakukan blok pada ip yang dinamis ?
sepertinya tidak, karena testing pengiriman email di atas telah sampai . hanya saja masuk ke bagian spam.

– kesalahan konfigurasi, sendmail pada php.ini ?
saya cek kembali, pada settingan php.ini yang default.

[mail function]
; For Win32 only.
SMTP = localhost

; For Win32 only.
sendmail_from = me@localhost.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

pada php.ini yang default, sendmail dilakukan dengan perintah langsung ke shell “sendmail -t -i”
saya mencoba mengubah sendmail path yang dipakai oleh php.
pertama, saya memastikan dimana letak binary sendmail tersebut.

gunslinger@c0debreaker:/var/log$ whereis sendmail
sendmail: /usr/sbin/sendmail /usr/lib/sendmail /usr/share/man/man1/sendmail.1.gz
gunslinger@c0debreaker:/var/log$

binary sendmail terletak di /usr/sbin/sendmail
dan saya letakan di default sendmail_path yang akan terpakai oleh php.

[mail function]
; For Win32 only.
SMTP = localhost

; For Win32 only.
sendmail_from = me@localhost.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = /usr/sbin/sendmail

lalu saya simpan.
lagi – lagi saya mencoba untuk membuka php pengiriman email tersebut di browser, akhirnya pesan datang ke email yang di tuju.

email, sending, error, mail(), function

dan berikut ini laporan dari mail.log dikatakan bahwa pengiriman pesan berhasil.

gunslinger@c0debreaker:/var/log$ cat mail.log
...cut cause very big logging...
Dec 20 03:30:02 c0debreaker postfix/qmgr[3097]: 21A7CCC5D7: removed
Dec 20 03:30:52 c0debreaker postfix/pickup[25674]: 89EA1CC5D7: uid=65534 from=
Dec 20 03:30:52 c0debreaker postfix/cleanup[4371]: 89EA1CC5D7: message-id=<20101219203052.89EA1CC5D7@c0debreaker>
Dec 20 03:30:52 c0debreaker postfix/qmgr[3097]: 89EA1CC5D7: from=, size=390, nrcpt=1 (queue active)
Dec 20 03:30:58 c0debreaker postfix/smtp[4747]: 89EA1CC5D7: to=, relay=gmail-smtp-in.l.google.com[74.125.127.27]:25, delay=6.4, delays=0.07/0.01/1.9/4.4, dsn=2.0.0, status=sent (250 2.0.0 OK 1292790657 u16si6152439yhc.52)
Dec 20 03:30:58 c0debreaker postfix/qmgr[3097]: 89EA1CC5D7: removed
gunslinger@c0debreaker:/var/log$

message yang terdelay karena kegagalan sebelumnya juga terkirim.

Dengan demikian, di simpulkan bahwa keberhasilan dari fungsi php yang di buat tidak di tentukan oleh return code pada fungsi mail(). fungsi mail() tidak melakukan pengecekan lebih jauh terhadap laporan status pengiriman pesan email. fungsi mail() tersebut hanya bertugas mengirim dan return code false hanya di karenakan jika parameter yang tidak valid. kemungkinan, ada server2 di indonesia (beberapa kali pernah saya rasakan ketika mendevelopment website) bahwa sering kali fungsi mail() bernilai kembali benar (return True) tetapi email tak kunjung datang. dan pemilik server mengira (mungkin sudah yakin?), email sudah terkirim hanya masalah delay. padahal email akan tak kunjung datang.

Demikian yang saya tulis semoga berguna, keep in touch http://bit.ly/codebreaker ;)


PyProxy | Proxy Hunter and Tester, A high-level cross-protocol proxy-hunter python library


This idea is taken after doing any research with some socket. and finally, i need some proxy for it’s research .
so i’m going to make something to parse proxy in every site and has a proxy checker ability
and i need to use / import that dinamically for the research, so i must play with the object too .

This article will introduce a python library has done by me
the name is PyProxy .
PyProxy is a Proxy Hunter and Tester, A high-level cross-protocol proxy-hunter python library
This is can be use by direct or you can import this to your program

for direct use , you just need to execute this library . you will see the help module along with the library
by adding -h or –help in first argument

PyProxy v.09 by Gunslinger_ <yudha.gunslinger@gmail.com> - Proxy Hunter and Tester Opensource engine
A high-level cross-protocol proxy-hunter

Usage: pyproxy.py [options]

Options:
  -h, --help            show this help message and exit
  -s, --samair          just use samair.ru to hunt proxies
  -l, --sitelist        use all site in the list
  -t, --test            test all proxy !
  -a, --all             do all !
  -v, --version         print current proxy hunter version
  -d, --debug           debug program for more talkable & every proxy will be
                        print to screen
  -o FILE, --outputfile=FILE
                        output proxy will be print
                        [default : proxylist.txt]
  -i FILE, --inputfile=FILE
                        input proxy will be checked
                        [default : proxylist.txt]
  -g FILE, --outputgood=FILE
                        output all good proxy will be saved
                        [default : goodproxy.txt]
  -c NUMBER, --timeout=NUMBER
                        timeout connections being program run
                        [default : 30]

  Example :
    pyproxy.py -s                   | Gather proxy with samair.ru
    pyproxy.py -l                   | Gather proxy in the url list
    pyproxy.py -t proxylist.txt     | Test proxy inside proxylist.txt
    pyproxy.py -a                   | Do all
    pyproxy.py -v                   | Print current version

for advance user / python programmer .
we can use it in PyShell too by import them inside

gunslinger@c0debreaker:~/python/lib$ python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) 
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyproxy
>>> help(pyproxy)
Help on module pyproxy:

NAME
    pyproxy

FILE
    /home/gunslinger/python/module/pyproxy/pyproxy.py

DESCRIPTION
    # -*- coding: utf-8 -*-
    #   This library is free software; you can redistribute it and/or
    #   modify it under the terms of the GNU Lesser General Public
    #   License as published by the Free Software Foundation; either
    #   version 2.1 of the License, or (at your option) any later version.
    #
    #   This library is distributed in the hope that it will be useful,
    #   but WITHOUT ANY WARRANTY; without even the implied warranty of
    #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    #   Lesser General Public License for more details.
    #
    #   You should have received a copy of the GNU Lesser General Public
    #   License along with this library; if not, write to the 
    #      Free Software Foundation, Inc., 
    #      59 Temple Place, Suite 330, 
    #      Boston, MA  02111-1307  USA
    #
    #   Copyright 2010 Gunslinger_ <yudha.gunslinger@gmail.com>
    #   http://bit.ly/c0debreaker

CLASSES
    __builtin__.object
        proxyhunter
        runengine
    
    class proxyhunter(__builtin__.object)
     |  Instance variables:
     |   
     |  Outputproxy
     |          Output file every proxy will be printed in
     |          Default : proxylist.txt
     |  
     |  Goodproxy
     |          Output file all good proxy will be print
     |          Default : goodproxylist.txt
     |  
     |  Verbose
     |          More noise, every proxy will be print into screen
     |          Default : True
     |  Timeout
     |          Timeout every test proxy connections in socket
     |          Default : 30
     |  
     |  Sitelist
     |          Proxy site for parsing proxy
     |          Default : []
     |  
     |  Methods defined here:
     |  
     |  Cleanitup(self, sorted_output='uniqueproxylist.txt')
     |      proxy will be printed in uniqueproxylist.txt by default
     |  
     |  CoreFreshTester(self, proxy)
     |  
     |  LoadProxy(self)
     |  
     |  MainFreshTester(self, proxy)
     |  
     |  ParseProxy(self, site)
     |  
     |  Samairdotru(self)
     |  
     |  Single(self)
     |  
     |  TestProxy(self)
     |  
     |  __init__(self, OutputProxy='proxylist.txt', GoodProxy='goodproxylist.txt', Verbose=True, TimeOut=30, Sitelist=[])
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
    
    class runengine(__builtin__.object)
     |  Methods defined here:
     |  
     |  __init__(self)
     |  
     |  parseoption(self)
     |  
     |  printversion(self)
     |  
     |  run(self)
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)

FUNCTIONS
    main()

DATA
    __author__ = 'Gunslinger_ <yudha.gunslinger@gmail.com>'
    __copyright__ = 'Copyright (c) 2010 Gunslinger_'
    __date__ = 'Thu Oct  7 00:00:41 2010'
    __version__ = '09'
    __warningregistry__ = {('the sets module is deprecated', <type 'except...

VERSION
    09

DATE
    Thu Oct  7 00:00:41 2010

AUTHOR
    Gunslinger_ <yudha.gunslinger@gmail.com>

(END) q

Need parse proxy in any site ? simply like this

>>> ph = pyproxy.proxyhunter()
>>> ph.ParseProxy("http://aliveproxy.com/high-anonymity-proxy-list/")
[*] Parse proxy from aliveproxy.com/high-anonymity-proxy-list/
218.182.134.23:8080
210.158.6.201:8080
174.142.24.201:3128
217.23.137.56:80
174.142.104.57:3128
205.213.195.70:8080
174.142.24.203:3128
174.142.24.205:3128
24.155.96.93:0080
174.142.24.204:3128
[*] 10 Proxies receieved from : aliveproxy.com/high-anonymity-proxy-list/ 

This module can be use for proxy testing too

>>> import pyproxy
>>> ph = pyproxy.proxyhunter(GoodProxy="goodproxylist.txt")
>>> ph.LoadProxy()
[*] File successfully loaded...
>>> ph.TestProxy()
Error : <urlopen error [Errno 111] Connection refused>
[*] 218.182.134.23:8080 
 '--------------> Bad
Error : <urlopen error [Errno 111] Connection refused>
[*] 210.158.6.201:8080 
 '--------------> Bad
Date: Fri, 08 Oct 2010 12:56:21 GMT
Server: gws
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=UTF-8
X-XSS-Protection: 1; mode=block
Set-Cookie: PREF=ID=3b034e546cd351bf:TM=1286542581:LM=1286542581:S=EmivqSAOZBhj22iF; expires=Sun, 07-Oct-2012 12:56:21 GMT; path=/; domain=.google.ca
Set-Cookie: NID=39=AQ2UnSEV0xbVMzzwrlcIhBN6dBszmQNIrHgh_iggOQh2JB8pBqz8bIrsxWQv-YX_6jaB3HlMJ7U1ghKURQyUM5evLmenr8vy9ByPZcVM-rkOGsf6nMNxxLQST1SkyJZK; expires=Sat, 09-Apr-2011 12:56:21 GMT; path=/; domain=.google.ca; HttpOnly
Connection: close
Transfer-Encoding: chunked

...
[*] 174.142.24.201:3128 
 '--------------> Good
[*] All Fresh proxy has been saved in goodproxylist.txt
>>> 

doesn’t need more noise ? take down the Verbose variable to False

>>> ph = pyproxy.proxyhunter(GoodProxy="goodproxylist.txt", Verbose=False)
>>> ph.LoadProxy()
[*] File successfully loaded...
>>> ph.TestProxy()
[*] 218.182.134.23:8080 
 '--------------> Good
[*] 210.158.6.201:8080 
 '--------------> Good
[*] 174.142.24.201:3128 
 '--------------> Good
[*] 217.23.137.56:80 
 '--------------> Good
[*] 174.142.104.57:3128 
 '--------------> Good
[*] 205.213.195.70:8080 
 '--------------> Bad
[*] 174.142.24.203:3128 
 '--------------> Good
[*] 174.142.24.205:3128 
 '--------------> Good
[*] 24.155.96.93:0080 
 '--------------> Bad
[*] 174.142.24.204:3128 
 '--------------> Good
[*] All Fresh proxy has been saved in goodproxylist.txt
>>> 

For more infomations, you can take a look at the source
you can find the project here https://sourceforge.net/projects/pyproxy/
hope can be useful for you ;)


images from codecomics.com for programmer


Well , this is my fav jokes in the weeks from codecomics.com…
nice for refreshing too .. lol ..
check this out !

Characters
~~~~~~~~

Our characters are mice and rats that represent the profesionals of the software industry.
We use this archetype because most of these people develop dirty,
badly documented code without quality criteria.
We are tired of this behavior and we want to contribute with healthy ideas
in order to bring better results for everyone.

Max (Programmer & Architect)

Max is a programmer that uses technology for its own sake.
His ideas are not the most intelligent in the universe,
but he knows how to entertain his collegues with his geek style.
His body cannot live without coffee and his brilliant mind is dependent on that substance.

Besides programming, Max is a great architect (well, at least he thinks this way)
and he knows how to create multi-layered complex architectures (mainly when this is not necessary).
Max’s dream is to own an Open Source project just to become famous.
He is not concerned about the utility of the project for the community.

Mix (Programmer & Database Administrator)

Mix is a cool programmer that likes data storage mechanisms.
He doesn’t really know the difference between relational and object-oriented databases,
but this should not be a problem since the persistency layer will abstract these and other details
(let’s forgive him for now).

Mix does not care if his job is boring and his productivity is low.
He just blames the company and the former programmers for the problems of the spaghetti code.
He also ignore other oportunities that could make his life more challenging.
As long as the company pays correctly, the job is fine for him.

Jim (Manager)

Jim is the manager of the team. His thoughts on
how to control employees are not in the psychology books,
and sometimes he just pretents to be unaware of problems
just to check the sanity of the developers (or simply to drive them crazy).
Jim claims to be very smart and has created his own management rules.
By the way, pragmatism and gratitude are not in his vocabulary.
In his opinion, the developer’s productivity should not depend on the work environment.
If this is not the case, pressure can be used to push the team forward.

6 Comments

more at codecomics.com


python programming ebook


Here i have python programming books
i hope you can enjoy !

Get cash from your website. Sign up as affiliate.

Apress Beginning Python From Novice To Professional
Click Here To Download

Beginning Game Development With Python And Pygame
Click Here To Download

Beginning Python From Novice To Professional
Click Here To Download

Beginning Python Apress
Click Here To Download

Beginning Python From Novice To Professional Second Editiontqw darksiderg
Click Here To Download

Beginning Python W-r-o-x
Click Here To Download

Beginning Python
Click Here To Download

Computer Programming Python Programming Language Tutorial
Click Here To Download

Core Python Programming.
Click Here To Download

Distributing Python Modules
Click Here To Download

Foundations Of Agile Python Development
Click Here To Download

Game1 Programming With Python Lua And Rubye Book
Click Here To Download

Game Programming With Python Lua and Ruby 2
Click Here To Download

How To Think Like A Computer Scientist With Python
Click Here To Download

John Wiley And Sons Making Use of Python e-Book
Click Here To Download

Learning Python
Click Here To Download

Learning Python 3rd
Click Here To Download

Lessa Python Developers Handbook Sams
Click Here To Download

LM15 Python
Click Here To Download

Python How To Program
Click Here To Download

Python 21 Bible
Click Here To Download

Python Cookbook
Click Here To Download

Python Essential Reference 2nd Edition
Click Here To Download

Python Library Reference
Click Here To Download

Python Scripting For Computational Science
Click Here To Download

Python XML
Click Here To Download

Python For Unix And Linux System Administration
Click Here To Download

Python Developers Handbook Sams
Click Here To Download

Python 2 1 Bible
Click Here To Download

python notes
Click Here To Download

Rapid GUI Programming with Python and QtOct
Click Here To Download

Rapid Python Web Application Development
Click Here To Download

Springer Python Scripting For Computational Science 3rd Edition
Click Here To Download

Thinking in Python Bruce Eckel Rev
Click Here To Download

webpython The Definitive Guide To Plone
Click Here To Download

Get cash from your website. Sign up as affiliate.