I just tested each of the marshallers readily available to me. I dumped and
loaded this object:
'performers': ['An Evening with Karen Savoca'],
'info': 'Reservations required. Please call (978)443-3253 or e-mail Laurie at lalcorn(a)ultranet.com.',
'venue': 'Fox Run House Concerts',
I don't claim this is typical data, but it is typical of the type of data I
push through XML-RPC, so it's important to me. You can see why moving
imports out of dump_string was so worthwhile. I would be happy to change
the object being marshalled to better reflect what people think is
All numbers in the following table are in encodings or decodings per second.
All times were measured using time.clock. The number of times the
encoding/decoding operation was performed was varied to give a reasonable
total test time (approximately 5 seconds). Each test was run 3 times. The
largest number is recorded below, rounded to three significant digits.
marshal 25900 7830
cPickle 1230 149
w/ sgmlop 416 107
w/o sgmlop 415 16.3
w/ sgmlop 365 92.0
w/o sgmlop 363 74.9
py-xmlrpc 2780 2260
I've received another cheque from Amazon with the last quarter's
proceeds for the Python bookstore. The amount is just a bit less than
$500; I'll contribute the few dollars to bring it up to $500 flat.
Question: what do with the money? Right now the best candidate is to
pay the Python10 conference fees for some of Jeffrey Elkner's
students. I can't think of anything else to do with the money; anyone
have any brilliant suggestions?
> How would libxml fit into this picture ?
Uncertain. I could find out the following facts:
Python Wrappers: Dave Kuhlmann has written some, see
Licensing: Available through either LGPL or W3C IPR (Daniel Veillard
from Redhat is the maintainer, he used to work for the W3C).
Portability: Apparently tested on Unix and Win32. Uses zlib and iconv
Size: 85kLOC C source code (compare to 11kLOC in Expat)
Performance: I could not find any results on this subject, comparing
libxml with other parsers.
FIRSTALERT'S COMPANY PROFILE FOR THE WEEK OF OCTOBER 1st
BENTLEY COMMUNICATIONS CORP: (OTC BB: BTLY)
Good day Investors! After the last two weeks of trading everyone is looking for new investments. This week's company profile highlights Bentley Communications Corp. (OTC BB: BTLY). Bentley brings consumers into the world of cutting-edge international gaming websites. Through proprietary technology and advantageous partnership agreements, Bentley operates licensed and fully-insured online gaming websites and sublicenses I-gaming software to businesses worldwide. The Company's flagship I-property, SunriseCityCasino, offers games such as Blackjack, Roulette, Slots, Video Poker and provides users instant access to online betting lines for major sporting events worldwide. Bentley is poised to capture increasing share of the robust Internet sector of I-gaming. By 2002, the global I-gaming market is projected to exceed $1 billion and increase dramatically to more than $9.8 billion by 2005 (source: Merrill Lynch). Bentley targets its websites and software for the world's most popular I-gaming regions, including the United States, Asia and Australia. The Company's growth strategies are directed by Gordon Lee, a polished entrepreneur who has founded several successful emerging-growth companies. Under his leadership, Bentley is poised to enhance its market capitalization substantially over the next 24-months.
Bentley Communications Corp. (OTC BB: BTLY) specializes in operating Internet wagering sites. The Company is licensed in both the Commonwealth of Dominica and Antigua to operate sites inclusive of sportsbook, horseracing and bingo. Bentley also sublicenses proprietary technology and software that enable clients to operate their own online gaming sites under the Bentley license. The Company recently announced the launch of a world-class online gaming site SunriseCityCasino.com. Fully licensed and insured, Sunrise offers more than 20 casino games and features a sportsbook with real-time betting lines on worldwide events. Bentley is embarking upon an aggressive growth strategy that comprises geographical expansion into Europe and Asia and new product lines, including the selling of international lottery tickets online.
Bentley is also prepared to benefit from new legislation in the state of California. Effective January 1, 2002, telephone and Internet betting on horse racing will be legal in California. Bentley is developing the site offtrackbettingonline.com for launch on 1/2/02, in order to capitalize on this new market in the United States. With numerous revenue streams in place (online casino and sportsbook betting; sublicensing set-up and maintenance fees) and substantial opportunities to grow revenues and profits in the near-term, Bentley is poised to become a leader in the booming online international gaming market.
Company Name: Bentley Comm Corp (BTLY)
Exchange: OTC BB
Shares Outstanding: 26,660,000
Market Cap: 2.4 Million
52-Week High: 0.875 on Wednesday, September 27, 2000
52-Week Low: 0.039 on Tuesday, July 31, 2001
Average Price: 0.0990 (50-day) 0.1337 (200-day)
Average Volume: 110,100 (50-day) 73,600 (200-day)
Fiscal Year End: June 30
Market Makers: 17
According to Merrill Lynch, the number of online bettors is expected to increase dramatically from 12 million in 2001 to 81 million in 2005, translating to a market size of $769 million and $9.8 billion respectively. Bentley's primary offerings-Internet casinos and sports betting, currently generate the highest gross win (i.e. the amount of cash lost by consumers) in the industry, followed by online lotteries (a developing new product line for Bentley). Bentley's distinct competitive advantages, leading-edge security and fraud protection; a diversified product mix; turn-key proprietary software and technologies and strategic partnerships, will enable the Company to capture increasing share of this dynamic international marketplace.
High-Growth Market. The worldwide Internet gaming market is expected to grow well over 450% over the next two years. Bentley is well-positioned to capitalize on this high-growth sector through the roll-out of several new product lines and regional expansion worldwide. Strategic Partnerships. Bentley has aligned itself with leading technology, banking and security firms to create world-class I-gaming software and Internet websites The Company is associated with the largest e-mail marketing company in the world, Salesmation and has an exclusive agreement with First International Bank of Dominica to provide real-timesecure online financial transactions.
Sales & Profitability. Online casinos and sports betting are key revenue generators for Bentley. Additional revenues are generated from sub licensing fees, ranging from $30-50K and the management and maintenance payments of 10% of clients' net revenues. As new products are rolled out, Bentley anticipates to exceed 100% annual revenue growth and achieve profitability during 2001 and beyond.
Proven Management. Bentley President and CEO Gordon Lee has a 20-year track record of directing private and public start-ups into successfully operating companies. Mr. Lee has held executive posts including founder, partner, officer, and director at companies such as USA Video Corporation (OTC BB: USVO), Startek.com Inc.(OTC BB: STEK), Future Media Technologies (OTC: FMTF) and American IDC Corp. (OTC BB: ACNI).
Upside Opportunity. Bentley is implementing a multifold growth plan that includes international expansion into the fastest growing I-gaming region of Asia; roll-out of new, higher margin product lines such online lottery sales and the launch of additional websites that capitalize on I-gaming growth trends. These efforts should lead to accelerating revenues and increasing shareholder value.
Gordon Lee, president and CEO of Bentley Communications Corp, has been involved with emerging growth companies in the private and public arena for more than 20 years. His astute business acumen has been applied toward a variety of industries, including hi-tech, communications, e-commerce, mining and oil and gas and he has been featured in more than 200 influential media publications.
TO OPT OT PLEASE VISIT THE FOLLOWING SITE: http://18.104.22.168/optout.html
This report is provided as an information service only, and the statements and opinions in this report should not be construed as an offer or solicitation to buy or sell any security. We accept no liability for any loss arising from an investor's reliance on or use of this report. Please do your own due diligence and research before making any investment decision. An investment in the company outlined herein is highly speculative and should not be considered unless you can afford a complete loss of your investment. Please, always invest with caution and within your means. You can find a great resource for investor education at the U.S. Securities and Exchange's website at http://www.sec.gov/investor.shtml. Also, please see the SEC filings of the company profiled herein, including the company's most recent annual and quarterly reports. EquityThunder Investment Corporation received 50,000 free trading shares of Bentley Communications (BTLY) from a third party in exchange for the drafting and distribution of this report. EquityThunder Investment Corporation intends to sell its shares.
> If you want a very fast validating XML parser, RXP would also
> be a good choice -- AFAIK, the RXP folks would allow us to
> ship RXP under a different license than GPL which is then
> bound to Python.
> Given the many alternatives, I am not sure whether going with
> expat is the right path... may be wrong though.
Lucky I tuned in. Reportlab has had great success with RXP.
We have a python wrapper, pyRXP, with binaries available for
It is GPLed at present. They wish to keep GPL just in
case someone big comes along and wants their code for ten million
set-top boxes or something. However, I persuaded them to grant
a license to let it be used through the Python binding under
Python-like terms, as long as we invent the words and save
them having to waste time on lawyers. They would even be
happy for it to go into the Python distribution. And
we're happy to maintain the wrapper and binaries for
several platforms, which we have to do for our customers
If one of the core Python team, who I know have long and
painful experience of this stuff, would like to drop me a line,
we can probably sort this out in a night.
The other thing we found very useful was our representation.
We make reports, and ML is a common data source; so our goal
is typically to slurp XML into memory as fast as possible,
with validation. We eventually hit on a 'tuple tree':
each tag is represented as
(tagname, attrs, list-of-children, spare)
We get there about 6x faster than the fastest alternative
parser we know, because all the work is done in C; with
typical use of other parsers you call back into Python
on every tag. The tree structure is a fraction of the
size in memory of what gets created by models using
objects for every node. It would be very easy to add
this as an alternative interface to expat as well. So
then Python users could have a choice of tree or events,
and validating or non-validating, all done in C and
in the standard distribution.
CEO/Chief Architect, Reportlab Inc.
Responding to a question in python-help about extracting links from web
pages, I wrote a simple href printer:
import htmllib, formatter
def anchor_bgn(self, href, name, type):
fmt = formatter.NullFormatter()
parser = MyParser(fmt, verbose=1)
When run using 2.2a4, it never prints anything. It outputs a list of hrefs
when run with 2.1 or 1.6. Either there's a bug somewhere (in my code
possibly, though it's pretty simple) or some semantics changed that I
I thought maybe the method resolution order change affected things, but
htmllib.HTMLParser only uses single inheritance. When displaying help about
htmllib.HTMLParser, pydoc.help does emit the method resolution order, which
it doesn't generally seem to do:
| Method resolution order:
Demo/dns is pretty old, and has been superseded by Anthony Baxter's
pydns project on SourceForge. At the very least, Demo/dns/README should
instead of Anthony's old page for this project (dead URL).
More radically, we could delete all the code in Demo/dns, and just leave
behind a little README pointing at Anthony's project. I've *just*
checked out his code, haven't dug in seriously yet, so I don't know if
this is a good idea yet.
Opinions? If I hear nothing, I'll just fix the URL in the README.
Greg Ward - Unix nerd gward(a)python.net
A day for firm decisions!!!!! Or is it?
Well, now every attr access goes thru __getattr__-method,
so this could cause situations which give not so clear
Python 2.2a3 (#1, Sep 26 2001, 22:42:46)
[GCC egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
HELP loaded. Readline loaded. History loaded.
>>> class A:
... def aa(self):
... print self
>>> class B(A):
... def __getattr__(self, x):
... print "getattr:", x
>>> b = B()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: object is not callable: None
The problem above is that __repr__ can't be called because
__getattr__ intercepts it's call, giving None.
Could something be done with this to make it easy to
trace such kinds of problems?
Also, the question is what is the proper way (1 and only 1 way) to check
if attribute exists inside __getattr__ method? How can it be done by one
simple check like:
def __getattr__(self, attr):
if hasattr(self, attr):
Or do I need some other tricks?
Sincerely yours, Roman Suzi
_/ Russia _/ Karelia _/ Petrozavodsk _/ rnd(a)onego.ru _/
_/ Sunday, September 30, 2001 _/ Powered by Linux RedHat 6.2 _/
_/ "Killer Rabbit's Motto: "Lettuce Prey."" _/
> > I think and it seems it contains some useful information
> > for when we try to port the descr changes to jython,
> > or will all this stuff be completely documented somewhere else?
> Hopefully the PEPs will be much more complete records. PLAN.txt was
> just my own to-do list, indicating how far I was along the realization
> of the PEPs. I realize that the PEPs are currently behind, but it is
> in the PLAN.txt to remedy this. :-)
> I'm glad you are planning to copy this effort in Jython.
Yes I'm planning to do try that.
I don't think that without keeping up with Python Jython
can survive. Not that we are very fast at keeping up OTOH.
(yes for very practical reasons I'm among
those who would prefer a slower development for Python :))
> (It should
> actually be simpler in Jython as it doesn't have so much of a
> dichotomy between types and classes as C-Python does.)
I take this as an encouragement but actually the good point
is that Java is bit more productive than multi-platform C, that's
You should consider that we have to integrate the changes
with the whole Java interoperability architecture and
that we should deal with the limitations of java reflection
and probably invent some new kind of inheriting from java,
different from what is already there,
that means new code that should produce dynamically
some java bytecode ...
> If there's
> anything I can do to help (short of coding in Java :-) please let me
> know. In particular, if there's anything unclear in the PEPs or
> PLAN.txt or in python.org/2.2/descrintro.html or anywhere else
> (including the C code), I'd be happy to clarify it at your (or anybody
> else's) request.
Thanks, I imagine we will have some questions :)
> (Is Finn Bock still around in Jython?)
AFAIK yes. For 2.1 (yet not out) he has done:
- rich comparison
- new coercion model
- weak ref support
- importing from jars on sys.path
I have done:
static nested scopes
fixed some old nasty bugs
improved the compatibility of importing wrt CPython
And in any case I hope so:
given that for 2.2 we have to do:
both in the runtime and jythonc ...
and our user base so far has been quite passive.
Sorry for the rants.