Re: Mega Newbie Questions: Probably FAQs

2006-08-16 Thread Peter Decker
On 8/15/06, Zeph [EMAIL PROTECTED] wrote:
  Framework for what kind of apps? Web, native GUI, client-server, etc?
  MVC is an abstract architecture rather than a specific implementation.
  Even so, many implementations rarely employ a purely MVC design.

 Native GUI with some client-server abilities. Basically, it's a
 database-inventory sort of thing with some pretty intense reporting.
 Call it a productivity app--no need for intense graphics or massive
 computation. Fundamentally, what I want is to be able to distribute a
 regular app, mainly for the Windows market, but I also want to offer
 it to the Mac and Linux crowd--on one code base if possible.

You should really check out Dabo. It is an application framework
designed to create database apps in a really Pythonic way. Probably
the best way to start is to check out the screencasts - they really
show just how cool Dabo is. I'd start with the one on quickly creating
a database app:
http://leafe.com/screencasts/appwizard.html

The rest of them are listed at http://dabodev.com/documentation. I've
been using the UI module from Dabo for over a year, and it's
rock-solid.


-- 

# p.d.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Mega Newbie Questions: Probably FAQs

2006-08-15 Thread Simon Forman
Zeph wrote:
 Python
 Pros: Free. Open source. Deep. Flexible. Rich community and third party
 stuff. Well documented.

 Cons: Interpreted.

 Unknown: Secure (meaning not easily reverse engineered) code? Performance?

Very recent thread on this subject:
http://groups.google.ca/group/comp.lang.python/browse_frm/thread/b4e08adec2d835f5/af340f17faec4055

Peace,
~Simon

-- 
http://mail.python.org/mailman/listinfo/python-list


Mega Newbie Questions: Probably FAQs

2006-08-14 Thread Zeph
I'm pretty well of a mind to pick up Python. I like it because it seems 
to have a fair degree of functionality and is accessible to someone 
without a PhD in computer sciences. This is my second day of 
investigation, and I'm astounded by the huge ecosystem that surrounds 
it. I have a number of questions that probably should be on a FAQ, but I 
haven't found them. I'll explain my goals and needs, perhaps someone 
here will have some recommendations

1) I want to write high-level apps that are db connected, networkable 
and cross-platform: Linux, Mac OSX, Windows. I know there are apps that 
can convert to Linux or Windows as stand-alone executables, is there 
also one that will permit me to convert to MacOSX?

1b) Are these executable completely free from the need of the average 
user needing to install Python. Basically, I want to write and sell 
compiled apps.

2) I want a real and native GUI. wxPython or PyQT? My concerns are about 
cross-platform and responsiveness of GUI. I suspect that this will be 
one of the gravest issues for the long run.

3) Can someone recommend a good framework that will enable me to keep 
things well sorted out, and easy to maintain as my apps grow? (I'm 
considering MVC, but have no idea how to apply it until I've gone beyond 
Hello World).

4) There are a lot of books and tutorials out there, but they are of the 
proof-of-concept type. Specifically, a tutorial might teach me Hello 
World, but not really care about the framework, because it's a very 
simple item, and the point is simply to get me coding. I'd like to start 
off with an established, tested and reputable system whose habits I can 
ingrain from day one, rather than figure it out later. Can someone 
recommend a good book, or your favourite tutorials? Perhaps even one 
that assumes MVC as the framework?

5) Following the above, is there a framework that assumes tcp/ip udp 
networking, database connectivity? My first app will be in large part a 
networkable database type app where two or more users can share the same 
file concurrently.

6) Since I've been a web-developer for a long time (over 10 years), I 
never properly learned OOP. Recommended tutorials?

7) I'm developing on WinXP and for the IDE, I'm considering 
theKompany.com's BlackAdder, Komodo or Eclipse. Any very strong 
negatives in regards to either of these?

8) Can anyone speak to the point, or point out a useful comparison 
between Python and RealBasic?

Thanks.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Mega Newbie Questions: Probably FAQs

2006-08-14 Thread AlbaClause
Zeph wrote:

 

 4) There are a lot of books and tutorials out there, but they are of the
 proof-of-concept type. Specifically, a tutorial might teach me Hello
 World, but not really care about the framework, because it's a very
 simple item, and the point is simply to get me coding. I'd like to start
 off with an established, tested and reputable system whose habits I can
 ingrain from day one, rather than figure it out later. Can someone
 recommend a good book, or your favourite tutorials? Perhaps even one
 that assumes MVC as the framework?

There is no tutorial that will teach you good coding habits.   You pretty
much have to develop them on your own.   Looking at other people's source
is a good way to learn accepted coding habits.

Python, in and of itself, is a good language for learning good programming
habits, as the interpreter forces you to use certain conventions that are
widely regarded as good coding structure.   One of the things that many
Python detractors harp about, is that Python forces you to use a
considerable amount of whitespace.   i.e. consistent indentation of code
blocks.   However, good and consistent indentation is generally considered
to assist in making the source more readable and thus, easier to debug.  
All in all, these conventions help you to develop some good habits by
producing runtime errors when you fail to observe them.



-- 
--
There are several things that I will never be:
  *  I will never be attracted to females.
  *  I will never enjoy the company of others.
Exactly how these realities bode for my enemy, is not of my concern.

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Mega Newbie Questions: Probably FAQs

2006-08-14 Thread ajaksu
Zeph wrote:
 1) I want to write high-level apps that are db connected, networkable
 and cross-platform: Linux, Mac OSX, Windows. I know there are apps that
 can convert to Linux or Windows as stand-alone executables, is there
 also one that will permit me to convert to MacOSX?
Yes, py2app (http://undefined.org/python/py2app.html).

 1b) Are these executable completely free from the need of the average
 user needing to install Python. Basically, I want to write and sell
 compiled apps.
Yes. However, you can have downloads of a dozen MBs for something that
could be 100KB for someone with the right pre-requisites already
installed. And I'd research a bit about decompiling those executables,
might be easier (or harder,  in my case) than you thought :)

 2) I want a real and native GUI. wxPython or PyQT? My concerns are about
 cross-platform and responsiveness of GUI. I suspect that this will be
 one of the gravest issues for the long run.
wxPython. Even if  PyQT is the best tool for the job, it'll cost you
to find that out (if you're planning to sell your software). So try
wxPython first. Actually, play with Dabo (http://dabodev.com/ -
wxPython + DBs).

 3) Can someone recommend a good framework that will enable me to keep
 things well sorted out, and easy to maintain as my apps grow? (I'm
 considering MVC, but have no idea how to apply it until I've gone beyond
 Hello World).
Framework... MVC... not my area, sorry. However, try a look at Envisage
(http://code.enthought.com/envisage/, also
http://code.enthought.com/traits/ seems relevant) PEAK
(http://peak.telecommunity.com/), PlugBoard
(http://plugboard.berlios.de/) and Dabo again. All of which pass miles
above my head, so if you figure them out please share the wisdom :)

 4) There are a lot of books and tutorials out there, but they are of the
 proof-of-concept type. Specifically, a tutorial might teach me Hello
 World, but not really care about the framework, because it's a very
 simple item, and the point is simply to get me coding. I'd like to start
 off with an established, tested and reputable system whose habits I can
 ingrain from day one, rather than figure it out later. Can someone
 recommend a good book, or your favourite tutorials? Perhaps even one
 that assumes MVC as the framework?
IMHO, you'd benefit from wxPython in action
(http://www.manning.com/rappin/). But see below.

 5) Following the above, is there a framework that assumes tcp/ip udp
 networking, database connectivity? My first app will be in large part a
 networkable database type app where two or more users can share the same
 file concurrently.
Sure, tons of frameworks somewhat like that. Web-based, mostly. And
targeting the sane approach of a DB server talking to clients. Share
the same file? What kind of file would that be? :)

 6) Since I've been a web-developer for a long time (over 10 years), I
 never properly learned OOP. Recommended tutorials?
http://diveintopython.org/object_oriented_framework/index.html - I
love this one
http://www.voidspace.org.uk/python/articles/OOP.shtml - gentle
http://www.ibiblio.org/g2swap/byteofpython/read/oops.html - gentle
http://www.brpreiss.com/books/opus7/html/book.html - not so gentle :)
And search this group for Book to get much better recommendations ;)

 7) I'm developing on WinXP and for the IDE, I'm considering
 theKompany.com's BlackAdder, Komodo or Eclipse. Any very strong
 negatives in regards to either of these?
Only one: PyScripter is better
(http://mmm-experts.com/Products.aspx?ProductId=4). And SPE is very
good too (http://stani.be/python/spe). Two negatives, PyScripter and
SPE. Also, Eclipse is so heavy and bloated that I wonder what it
eclipses :)

 8) Can anyone speak to the point, or point out a useful comparison
 between Python and RealBasic?
Perhaps http://discuss.joelonsoftware.com/default.asp?design.4.70287.9

And a general recommendation: go for something easier as your very
first target. As you're a web-developer, writing simple and useful
tools (run tidy on files, simple pre-processors, bare-bones templating,
CSS inliner, etc.)  first would be IMHO both rewarding and a great
learning opportunity.

Hoping this helps more than confuses,
Daniel

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Mega Newbie Questions: Probably FAQs

2006-08-14 Thread Zeph
ajaksu wrote:
 Hoping this helps more than confuses,

Thanks, these were the sort of answers I was looking for. I've 
programmed in Basic, AppleScript, Pascal and Usertalk (Userland 
Frontier), I've got a sense for development, it's just been a very, very 
long time ago.

I do intend to start small and build up, but I want to front load my 
learning curve, usually makes the other side of the curve more productive.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Mega Newbie Questions: Probably FAQs

2006-08-14 Thread Zeph
ajaksu wrote:
 Zeph wrote:
And I'd research a bit about decompiling those executables,
 might be easier (or harder,  in my case) than you thought :)

Are you saying that generally python code is insecure? It hadn't 
occurred to me, but I want to play in a fairly competitive field, and 
I'd hate to have a competitor rip my app.

 Framework... MVC... not my area, sorry.

I think a better word might have been methodology, for example, as a 
Coldfusion developer, I enjoy using Fusebox.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Mega Newbie Questions: Probably FAQs

2006-08-14 Thread AlbaClause
Zeph wrote:

 ajaksu wrote:

 I do intend to start small and build up, but I want to front load my
 learning curve, usually makes the other side of the curve more productive.

Did you ever play on teeter-totters when you were a kid?   I think that's
what they're called.   Those board like things that are balanced in the
middle, one kid on each end, and as one kid goes up, the other kid goes
down.

Anyway, when I was a kid there was some teeter-totters in the yard at a
nearby apartment complex, and there were some teeter-totters in the park
behind my house.   If you spend much time on these contraptions, you soon
realize that simply going up and down is not very much fun.   We'd often
carry on in our activity as it was supposed to be, but, invariably, one of
us would be sitting on the low end and looking up at our playmate.   With
an almost devilish grin, we'd hop off the teeter totter and send our good
buddy crashing to the ground.  Such wonderful childhood fun.

Another activity that my brother and I took part in was shoplifting.   We
devised a clever way of hording candy from the checkout aisles at a local
grocery store.   What we'd do, is climb in under the conveyor belt cabinet
and reach out and bring entire boxes of candy bars, etcetera in under the
conveyor belt where we'd sit and eat away at our leisure.  We never ever
got caught, and we went through probably hundreds of dollars worth of
candy.  But we got greedy!

Hope this helps rather than confuses you.


-- 
--
There are several things that I will never be:
  *  I will never be attracted to females.
  *  I will never enjoy the company of others.
Exactly how these realities bode for my enemy, is not of my concern.

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Mega Newbie Questions: Probably FAQs

2006-08-14 Thread Yu-Xi Lim
Zeph wrote:

 1b) Are these executable completely free from the need of the average 
 user needing to install Python. Basically, I want to write and sell 
 compiled apps.

OSX and Linux installations nearly always come with Python pre-installed
(usually because they are required by other system software). Your only
concern should be the availability of additional Python libraries you
may use.

 2) I want a real and native GUI. wxPython or PyQT? My concerns are about 
 cross-platform and responsiveness of GUI. I suspect that this will be 
 one of the gravest issues for the long run.

Tk is available on all but the most minimalistic of Python
distributions. It's also butt-ugly. wxPython is probably a good compromise.

 3) Can someone recommend a good framework that will enable me to keep 
 things well sorted out, and easy to maintain as my apps grow? (I'm 
 considering MVC, but have no idea how to apply it until I've gone beyond 
 Hello World).

Framework for what kind of apps? Web, native GUI, client-server, etc?
MVC is an abstract architecture rather than a specific implementation.
Even so, many implementations rarely employ a purely MVC design.

 4) There are a lot of books and tutorials out there, but they are of the 
 proof-of-concept type. Specifically, a tutorial might teach me Hello 
 World, but not really care about the framework, because it's a very 
 simple item, and the point is simply to get me coding. I'd like to start 
 off with an established, tested and reputable system whose habits I can 
 ingrain from day one, rather than figure it out later. Can someone 
 recommend a good book, or your favourite tutorials? Perhaps even one 
 that assumes MVC as the framework?

For GUIs, and wxPython in particular, wxPython in Action would probably
be what you have in mind.

 5) Following the above, is there a framework that assumes tcp/ip udp 
 networking, database connectivity? My first app will be in large part a 
 networkable database type app where two or more users can share the same 
 file concurrently.

Mix and match. I typically select best of breed libraries for the
necessary functionality. wxPython for GUI, SQLObject (when it gets too
clunky for the regular Python DBAPI), Twisted for networking.

 6) Since I've been a web-developer for a long time (over 10 years), I 
 never properly learned OOP. Recommended tutorials?

OOP is overrated. A multi-paradigm language like Python lets you decide
what's best for your particular application. Most Python tutorials would
not focus on OOP specifically, unlike Java where you'd have to learn OOP
from day 1. OOP may be a suitable model for business logic, but feel
free to explore other alternatives for the other parts of your project.

But if you insist, try How to Think Like a Computer Scientist
(http://www.ibiblio.org/obp/thinkCSpy/). It takes the approach similar
to an introductory college-level CS course, which is typically heavy on
the OOP and data structures.

 8) Can anyone speak to the point, or point out a useful comparison 
 between Python and RealBasic?

The size of the Python community is huge compared to RealBasic. And
you'll benefit from that alone by better answers to your questions,
better documentation, and better 3rd party libraries.


Side note: You seem like you've researched a bit, but unfortunately been
affected by the swirl of buzzwords. While there are usually valid
reasons for particular technologies to have so much hype behind them,
you should not neglect the alternatives. They may be the answer you seek.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Mega Newbie Questions: Probably FAQs

2006-08-14 Thread Zeph

Zeph wrote:
 3) Can someone recommend a good framework that will enable me to keep 
 things well sorted out, and easy to maintain as my apps grow? (I'm 
 considering MVC, but have no idea how to apply it until I've gone 
 beyond Hello World).

Yu-Xi Lim wrote:
 Framework for what kind of apps? Web, native GUI, client-server, etc?
 MVC is an abstract architecture rather than a specific implementation.
 Even so, many implementations rarely employ a purely MVC design.

Native GUI with some client-server abilities. Basically, it's a 
database-inventory sort of thing with some pretty intense reporting. 
Call it a productivity app--no need for intense graphics or massive 
computation. Fundamentally, what I want is to be able to distribute a 
regular app, mainly for the Windows market, but I also want to offer 
it to the Mac and Linux crowd--on one code base if possible.

I have on a number of occasions downloaded apps that required that 
Visual Basic, or .Net or whatever runtimes be installed. I've never 
liked or trusted these kinds of apps. Regardless of the quality that the 
particular thing may have had, I didn't trust it and didn't like all of 
the extra clutter that went along with it. This is why I'd prefer to 
deliver some sort of stand alone solution--or at least something that 
appears as such. Fundamentally, I want to put out a solid, slick and 
professional product. Is Python still a good choice for me?

Back to the question: When I speak of framework, maybe I should have 
used the term methodology. I have excellent methods for coding my 
web-apps (I like Fusebox) but not having created anything significant in 
another language from scratch for over 10 years, I wouldn't know how to 
start organizing my stuff so that it's long-term maintainable.

 The size of the Python community is huge compared to RealBasic. And
 you'll benefit from that alone by better answers to your questions,
 better documentation, and better 3rd party libraries.

Excellent points.

 Side note: You seem like you've researched a bit, but unfortunately been
 affected by the swirl of buzzwords. While there are usually valid
 reasons for particular technologies to have so much hype behind them,
 you should not neglect the alternatives. They may be the answer you seek.

Yes. That's the problem with being a newb: you don't know what you don't 
know, then when you do, it's obvious. I'm still seeing only the surface.

One question that does come to my mind is that of the notion of 
decompiling or reverse engineering. Based on a comment someone made 
earlier, is this a significant concern that I should have, if I want to 
ship commercial software?

The stage I'm at right now is that I'm on the fence between REALbasic 
and Python.

Here's how I see it, relevant to my situation:


REALbasic
Pros: A fairly rich system, excellent GUI, spits out a binary executable 
for Win, Mac and Linux. One code base. Well documented, ever evolving. 
Relatively reasonably priced for commercial purposes.

Cons: Closed source (what if they're bought out?) I'm not sure that I 
can trust my investment of time to last 10 years. The language and IDE 
is a tad strange to me. It has the word Basic (read: cheap, 
half-assed, not-a-real-app) in it, which is not a particularly good term 
to use in a pitch.

Unknown: Learning curve? Long-term value? Level of support?

Python
Pros: Free. Open source. Deep. Flexible. Rich community and third party 
stuff. Well documented.

Cons: Interpreted.

Unknown: Secure (meaning not easily reverse engineered) code? Performance?


Further thoughts?
-- 
http://mail.python.org/mailman/listinfo/python-list