Re: [Zope] Help in deciding approach to Web App

2011-12-06 Thread Sareesh Sudhakaran

Thank you all for your replies. I have an idea on how to begin: I'll go with 
mySQL and see how it works out. I will use both PHP and Python for the 
prototype. 
My issue no longer fits within the scope of this mailing list. Without your 
support it would have been impossible for me to get started. Thanks!sareesh
  ___
Zope maillist  -  Zope@zope.org
https://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists -
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Help in deciding approach to Web App

2011-12-05 Thread Sareesh Sudhakaran


Hi NielsI agree with you, even though I have no experience. 
But I'm restricted by hosting options for Zope at the moment, and will revert 
to Python once the project is deployed - and when I figure out whether mySQL is 
good enough or not. I hate having to type all those extra characters in php 
though.sareesh


 From: n...@syndicat.com
 To: ays...@hotmail.com; zope@zope.org
 Subject: Re: [Zope] Help in deciding approach to Web App
 Date: Mon, 5 Dec 2011 11:25:18 +0100
 
 Am Sonntag, 4. Dezember 2011, 16:15:13 schrieben Sie:
  As you mentioned, if I have to use mySQL, isn't it better for me to go with
  PHP+mySQL - easier to learn and deploy?
 
 ...just from my experience:
 
 PHP is - for different, but mainly technical/historical reasons - very widely 
 spread within web applications, one major reason was/is i.e. the large 
 (because easy) availability on low cost hosting environments in the past - 
 but the most advantages was/are on the side of the hosting providers
 
 PHP might be easier to learn then other languages or frameworks, but 
 maintaining large / complex applications / software projects within PHP could 
 be a real mess.
 
 We develop nearly any web application with Zope / ZODB since = 10 years but 
 are a hosting company byself - so we was not bound to PHP as many other 
 internet hosting users in the past. A colleagues company produces very high 
 level expert systems on Perl and Catalyst - requiring high skilled Perl 
 programmers.
 
 From my experience developing within Zope / ZODB (with Python, DTML and/or 
 ZPT) allows very high quality products within very short timeframes and even 
 further maintaining the project is relative ressource efficient - especially 
 compared to PHP.
 
 Most web application data structures (i.e. a simple web page) fit's much 
 better by a oo object strategy then a relational (RDBMS) one. 
 
 The major typical ressource hole within typical PHP+SQL web applications or 
 i.e. a CMS solution is the translation of typical data objects into tables 
 and 
 vice versa. Producing i.e. one simple CMS page within a PHP-SQL CMS easily 
 could trigger hundreds of SQL requests into many different tables - a 
 significant overhead which has to implemented by developers and handled by 
 the 
 machines.
 
 But this is my view onto the issue - just my two cents...
 
 
 
 cheers,
 
 
 Niels.
 
 -- 
 ---
 Niels Dettenbach
 Syndicat ITInternet
 http://www.syndicat.com/
  ___
Zope maillist  -  Zope@zope.org
https://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists -
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Zope Digest, Vol 91, Issue 2

2011-12-05 Thread Sareesh Sudhakaran
 is to truly succeed, it must reach the capability 
to marry disjointed tools into seamless workflows. If I want to cook a recipe, 
the app should be able to tell me which ingredients to use, which manufacturers 
to buy from, the quantity and proportion, how to slice and dice, which way to 
cook it...etc. The app is an expert system. The end user is a layman who needs 
to find the best workflow without having to think about it.
I feel like the layman who needs my own expert system! So:
Do I need ZODB or am I going to be okay with mySQL? My confusion is restricted 
to Object DB vs RDB vs RDB+ORM. Among all the aspects of the project, this is 
the most boring and laborious to me, and I want to get it right the first time. 
I am confident I can make the logic work (the fun part), but I don't know how 
to manage the data (the boring part). 
Actually I like your suggestion, and I will code my project in PHP (or Python 
if I can find a way to use it with mySQL) using text files. I will use mySQL to 
start adding the data for the prototype. Hopefully things will work out!
sareesh


Date: Tue, 6 Dec 2011 00:14:25 +0100
From: ferna...@cmartins.nl
To: ays...@hotmail.com
CC: zope@zope.org
Subject: Re: [Zope] Zope Digest, Vol 91, Issue 2



  



  
  
On 12/05/2011 03:12 PM, Sareesh Sudhakaran wrote:

  
  


Hi John and Fernando
Intuitively I feel that my project fits in with an Object
  DB, which is why I have spent a lot of time trying to
  understand its methodology. But now I'm more confused than
  ever.





  

Sareesh, could you be more specific about what confuses you? You
have several routes, you need to give proper consideration to those
routes. 



Maybe it would also help us if you clarify what is your skillset and
experience in software development. 



Also, is your problem a CIM one? see
http://en.wikipedia.org/wiki/Computer-integrated_manufacturing and
specifically the key challenge listed over there. I have the
impression you might be underestimating the problem. 



Finally, do you already have information about the tools in some
electronic format? And what about the rules to choose tools? Is
there already some computer based solution to help with the current
problem?



Please keep in mind that OOP and Object DB is not the same thing.
You can work with objects in Python and never rely on OODB.



I have serious doubts about using ZODB at your stage because AFAIK,
creating custom objects requires the development of zope Products.
Note that the zope book does not teach you about creating custom
objects in the ZODB. You need another whole book for that. 



And the combination RDB and ZODB suggested by Neils/John seems too
complicated as a start. I think you have a high learning curve ahead
of you if have to learn to create Zope Packages to put objects in
ZODB. But maybe there are simpler ways that I am not aware of. I'm
sure OOP in Python and RDB is a good option. ZODB itself, I'm not so
sure. Maybe others can enlighten you better here.



It appears to me you don't have much experience and it looks like
there is a long evolutionary project ahead of you. For these
reasons, I would highly recommend Python. BTW, I never recommended
and I do not recommend C/C++ for your needs, I just mentioned that I
used it for a similar purpose many years ago.



I would recommend you to do some programming in Python just to read
some tool data from a text file, create some objects and try to do
some tool selection where the output is merely done with print. 



Then you can upgrade to use MySQL to store your tool data and then
you can decide if you go the Zope or the PHP route. Keep in mind
that RDBs are a huge standard with many people and tools around it,
whereas ZODB is very much a small niche in comparison. That should
also weigh in your criteria.



Regards,

Fernando


  ___
Zope maillist  -  Zope@zope.org
https://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists -
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Help in deciding approach to Web App

2011-12-04 Thread Sareesh Sudhakaran


Thanks AJ. I assumed an OODBMS would be the right choice because of the object 
nature of my 'tools'. Of course, it was an assumption. Instead of 
Pyramid+RDBMS, can I use PHP+mySQL (my current hosting provider supports 
this).If ZODB isn't for my project, then would a GraphDB help? I have no idea 
on where to start with Graph DB - I've read the wikis and it's made me more 
confused.
-ss


 Date: Sun, 4 Dec 2011 08:40:28 +0100
 From: li...@zopyx.com
 To: ays...@hotmail.com
 CC: zope@zope.org
 Subject: Re: [Zope] Help in deciding approach to Web App
 
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 - From reading: your database model appears pretty much relational.
 Where would you take advantages from using Zope as framework?
 This sounds like a task for Pyramid + RDBMS or a graph DB.
 
 - -aj
 
 Sareesh Sudhakaran wrote:
  I have a personal project - a web application I wanted to develop - 
  but I'm confused on which route to take. I am not under any time 
  constraint.
  
  
  *About the App:*
  
  The best I can describe it is as a kind of expert system (but not AI)
  that needs to find the best workflow for a process, given a set of
  initial and final parameters. E.g. a 'capsule' of data must pass 
  through many 'tools' or 'environments' to reach a desired output - 
  something like a very complicated car wash.
  
  Let's say there are many tools that can be used at various stages in 
  the process. I have estimated there are at least 500 tools as of
  now, and it is bound to grow in the future as newer tools are
  introduced. Existing tools will also have version updates.
  
  Each tool, on average, has at least 100 properties that define the 
  tool. Some of them have as high as 1000 unique properties. Some of 
  these tools are linked to each other - e.g if one tool is selected, 
  there are only n tools that can correspond to it for the next step
  in the process. I also have the problem of 'matching' the tools for 
  analysis. E.g. Tool A might have only three fixed rpms - 100, 200
  and 500, but Tool B might have rpms from 20 to 2000. I'm not sure how
  I can construct a database without spelling out each number, as in
  the example above.
  
  The total number of tools needed for the process can be defined at 
  the beginning, however, it will change as the application becomes 
  more complex in the future. I plan to address every contingency in 
  the process. The idea is - if the user inputs the initial parameters 
  and the desired outcome (another set of parameters), the app must 
  find the 'best' path - sort of like a decision tree. The best path 
  can be the fastest, cheapest, etc. I would like the user to choose 
  what is best for him/her.
  
  Unfortunately, parameters might change, relationships might change 
  (but not regularly) - the 'rules' I will be using might be revised 
  for better accuracy in prediction.
  
  I also need to track each user's path and solutions' for future 
  reference (but no personal details except username and email address 
  for logging in). Maybe when the app is up and running, I'd like to 
  make it more democratic, with users contributing to refining the 
  logic/rules involved.
  
  If possible, I would also like the app to output a graphical 
  flowchart at the end showing the workflow with all tools grouped in 
  an easy to understand layout.
  
  
  *My questions:*
  
  1. Will the app be better served with a relational DB like mySQL or 
  an Object database? After a lot of research I've guessed that my 
  particular case might be better served with Python and Zope/ZODB.
  But I might be wrong? Maybe PHP+mySQL or Django is a better fit? 2.
  Can anyone provide general advice on how to go about beginning such
  a project in ZOPE. Which is the best place to start learning for a 
  newbie? 3. Can anyone recommend a good shared hosting provider that 
  supports Zope fully but is not expensive? 4. Is there a module or
  app that is open source that I can use to output a graphical
  flowchart based on the results, or will I be better served
  programming it from scratch with Python?
  
  I would appreciate any help in getting started. Thank you in
  advance. I have tried most online forums but have not good any
  productive answers. Most of the answers I got were pro-PHP+mySQL.
  
  
  Adam
  
  ___ Zope maillist  - 
  Zope@zope.org https://mail.zope.org/mailman/listinfo/zope **   No 
  cross posts or HTML encoding!  ** (Related lists - 
  https://mail.zope.org/mailman/listinfo/zope-announce 
  https://mail.zope.org/mailman/listinfo/zope-dev )
 
 - -- 
 ZOPYX Limited   | zopyx group
 Charlottenstr. 37/1 | The full-service network for Zope  Plone
 D-72070 Tübingen| Produce  Publish
 www.zopyx.com   | www.produce-and-publish.com
 - 
 E-Publishing, Python, Zope  Plone development, Consulting

Re: [Zope] Help in deciding approach to Web App

2011-12-04 Thread Sareesh Sudhakaran

Thanks Niels. Just to clarify:Does my particular instance fall under an OODBMS 
model or a RDBMS model (with ORM if necessary)? 
I will begin by reading the Zope Book. Thanks for your assistance. Appreciate 
it.
-ss


 Subject: Re: [Zope] Help in deciding approach to Web App
 From: n...@syndicat.com
 Date: Sun, 4 Dec 2011 09:24:10 +0100
 To: ays...@hotmail.com; zope@zope.org
 
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA256
 
 
 
 
 
 Sareesh Sudhakaran ays...@hotmail.com schrieb:
 
 My questions:Will the app be better served with a relational DB like
 mySQL or an Object database? After a lot of research I've guessed that
 my particular case might be better served with Python and Zope/ZODB.
 But I might be wrong? Maybe PHP+mySQL or Django is a better fit?Can
 anyone provide general advice on how to go about beginning such a
 project in ZOPE.
 This hardly depends from your data structure, but with Zope you have the 
 option to use ZODB and SQL DBs like MySQL in parallel. Typical relational 
 data should go into a SQLDB while complex / oo Data structures should go into 
 ZODB.
 
 We developed several complex to very complex web based applications - incl. 
 expert systems - on Zope ZODB plus MySQL. I can't believe that someone would 
 be able to solve such issues with PHP/SQL within the same time / ressources.
 
 
  Which is the best place to start learning for a
 newbie?
 You should start by trying the short zope practice / excercise as described 
 in the Zope book.
 
 The Zope Book should be the best source for getting into Zope step by step 
 from nothing. ß)
 
 
  Can anyone recommend a good shared hosting provider that
 supports Zope fully but is not expensive?
 Looking for zope hosting or similiar in google should advice you. Our 
 company - as one of many - offers Zope hosting to.
 
 
 Is there a module or app that
 is open source that I can use to output a graphical flowchart based on
 the results, or will I be better served programming it from scratch
 with Python?
 There are different modules as i.e. Python Imaging (PIL) and higher level 
 modules.
 
 
 I would appreciate any help in getting started. Thank you
 in advance. I have tried most online forums but have not good any
 productive answers. Most of the answers I got were pro-PHP+mySQL.
 
 Yes, because the peoples did not know anything other solution usually...
 
 
 cheers,
 
 
 Niels.
 
 - --
 Niels Dettenbach
 Syndicat ITInternet
 http://www.syndicat.com
 -BEGIN PGP SIGNATURE-
 Version: APG v1.0.8
 
 iIEEAREIAEEFAk7bLio6HE5pZWxzIERldHRlbmJhY2ggKFN5bmRpY2F0IElUJklu
 dGVybmV0KSA8bmRAc3luZGljYXQuY29tPgAKCRBU3ERlZRyiDUhlAJ4/XPl3Oet6
 XN4UlkQ611FNoWqZCwCfZ1IPVjaLMD32wOlFE9cDnrm6bJQ=
 =ukyi
 -END PGP SIGNATURE-
 
  ___
Zope maillist  -  Zope@zope.org
https://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists -
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] Help in deciding approach to Web App

2011-12-04 Thread Sareesh Sudhakaran


Thanks Fernando! I really appreciate the time and effort you have put in 
answering my query. My personality sides with Python but my hosting provider 
does not support Django or Zope.
As you mentioned, if I have to use mySQL, isn't it better for me to go with 
PHP+mySQL - easier to learn and deploy? Can I just start out with a framework 
like Symphony instead?
In the future I'll have to use either Python or C/C++ for my business logic and 
math. But the focus now is to get a prototype out, and if I'm doomed to change 
everything later I might as well start with the easiest and most obvious. Is 
this a viable starting point compared to what you have suggested? Or am I 
missing something?
-Sareesh
Date: Sun, 4 Dec 2011 13:28:36 +0100
From: ferna...@cmartins.nl
To: ays...@hotmail.com
CC: n...@syndicat.com; zope@zope.org
Subject: Re: [Zope] Help in deciding approach to Web App



  



  
  
On 12/04/2011 09:52 AM, Sareesh Sudhakaran wrote:

  
  
Thanks
  Niels. Just to clarify:
Does
my particular instance fall under an OODBMS model or a RDBMS
model (with ORM if necessary)? 


  


  

Data modelling is a bit of an art and probably you could tackle your
problem with any approach. I think the important is for you to
figure out which model suits more your personality. No kidding.



I would personally start with the RDBMS approach considering only
the information you provide. Also, you can easily use zope in
combination with a RDBMS. When you read the book, beware that zope
has been changing from a through the web approach, to a typical
file system based approach, which is a loss, but it seems to be what
suits the needs of the zope developers.



The approach I use is: 



zpt page - (one) Python Script - (some) ZSQL Methods -
MySQL



The zpt defines the layout of the pages, the ZSQL Methods retrieve
the data needed and the Python script massages the data to make it
suitable for the ZPT page. Or the other way around, from user input
in a form to storage in the database.



The advantage of the relational approach is that it is a very well
understood model and although different people will still come to
different models there are sufficient objective guidelines out there
(e.g., the normalization rules, and then criteria for when to
denormalise) to help you along. Furthermore, there are lots of
people in db-related forums that can help you. 



Also, RDBMS provides you with a standard query language, SQL,
which plenty of systems and tools can use. In general, RDBMS gives
you the safest approach to keep your data and not loose it when you
need to migrate either the front-end or the back-end. This language
is very powerful and can avoid you a lot of low level programming. 



However, plenty of people can not deal well with SQL because it
follows a paradigm so different from the classic imperative
programming. With SQL, you specify the what, with the other
languages you specify the how. The advantage of the what is that
you can do a lot of data processing in a few lines of code. The
problem with the what is that because you don't know the how of
it, you feel you don't have control and you are led to say the
language is obscure or unreadable. 



However, even if you are not comfortable with the what (you have
to try to know), you can still rely on an library like SQLAlchemy to
keep you a bit in the comfort zone of the how. So instead of
learning SQL, you need to learn the API of a specific library. Your
choice. I recommend the first by far.



The real main issue with Relational is that it is a highly
structured data model. It allows you to keep high quality data but
if you don't get it right soon enough in the development cycle, some
later changes can have a huge impact in the application, requiring
rewrites. Furthermore, it works the best when you have many objects
with the same properties. If you have many entities all different
from each other (the tools in your case, maybe), then maybe a OODBMS
might be better. But here, there is no standard language, or
standard whatever. Perosnally, I would avoid as much as possible to
put data in something like ZODB (I use it merely to store and manage
the application).



The problem with your specific case is that it does not seem to be a
typical case of books and authors, which might be a risk for someone
without experience. The issue Tool A might have only three fixed
rpms - 100, 200 and 500, but Tool B might have rpms from 20 to
2000, is indeed tricky. I suspect in general the needs of your
system will be too specific to be able to rely only on SQL queries.
You would need to put a lot

Re: [Zope] Help in deciding approach to Web App

2011-12-04 Thread Sareesh Sudhakaran

Thanks Fernando. I would choose ZOPE or Django and a new provider at the drop 
of a hat - if someone can confirm if that's the way to go. However, since, 
there are too many grey areas, it might be better if I stuck to what I have and 
see how things turn out. Once again, thanks for your support. Appreciate it!
- Sareesh


Date: Sun, 4 Dec 2011 18:19:25 +0100
From: ferna...@cmartins.nl
To: ays...@hotmail.com
CC: n...@syndicat.com; zope@zope.org
Subject: Re: [Zope] Help in deciding approach to Web App



  



  
  
On 12/04/2011 05:15 PM, Sareesh Sudhakaran wrote:

  
  
As you mentioned, if I have to use mySQL, isn't it better for me
to go with PHP+mySQL - easier to learn and deploy? Can I just
start out with a framework like Symphony instead?

  



Well, if all you have is PHP + MySQL in your provider, there is no
which is better question, is it?



You might want to look at http://phptal.org/ a library that provides
a templating system similar to ZPT. The advantage is the better
separation between presentation and business layers.



Regards,

Fernando
  ___
Zope maillist  -  Zope@zope.org
https://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists -
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope-dev )


[Zope] Help in deciding approach to Web App

2011-12-03 Thread Sareesh Sudhakaran

I have a personal project - a web application I wanted to develop - but I'm 
confused on which route to take. I am not under any time constraint.
About the App:The best I can describe it is as a kind of expert system (but not 
AI) that needs to find the best workflow for a process, given a set of initial 
and final parameters. E.g. a 'capsule' of data must pass through many 'tools' 
or 'environments' to reach a desired output - something like a very complicated 
car wash.Let's say there are many tools that can be used at various stages in 
the process. I have estimated there are at least 500 tools as of now, and it is 
bound to grow in the future as newer tools are introduced. Existing tools will 
also have version updates.Each tool, on average, has at least 100 properties 
that define the tool. Some of them have as high as 1000 unique properties. Some 
of these tools are linked to each other - e.g if one tool is selected, there 
are only n tools that can correspond to it for the next step in the process. I 
also have the problem of 'matching' the tools for analysis. E.g. Tool A might 
have only three fixed rpms - 100, 200 and 500, but Tool B might have rpms from 
20 to 2000. I'm not sure how I can construct a database without spelling out 
each number, as in the example above.The total number of tools needed for the 
process can be defined at the beginning, however, it will change as the 
application becomes more complex in the future. I plan to address every 
contingency in the process. The idea is - if the user inputs the initial 
parameters and the desired outcome (another set of parameters), the app must 
find the 'best' path - sort of like a decision tree. The best path can be the 
fastest, cheapest, etc. I would like the user to choose what is best for 
him/her.Unfortunately, parameters might change, relationships might change (but 
not regularly) - the 'rules' I will be using might be revised for better 
accuracy in prediction.I also need to track each user's path and solutions' for 
future reference (but no personal details except username and email address for 
logging in). Maybe when the app is up and running, I'd like to make it more 
democratic, with users contributing to refining the logic/rules involved.If 
possible, I would also like the app to output a graphical flowchart at the end 
showing the workflow with all tools grouped in an easy to understand layout.
My questions:Will the app be better served with a relational DB like mySQL or 
an Object database? After a lot of research I've guessed that my particular 
case might be better served with Python and Zope/ZODB. But I might be wrong? 
Maybe PHP+mySQL or Django is a better fit?Can anyone provide general advice on 
how to go about beginning such a project in ZOPE. Which is the best place to 
start learning for a newbie? Can anyone recommend a good shared hosting 
provider that supports Zope fully but is not expensive? Is there a module or 
app that is open source that I can use to output a graphical flowchart based on 
the results, or will I be better served programming it from scratch with 
Python?I would appreciate any help in getting started. Thank you in advance. I 
have tried most online forums but have not good any productive answers. Most of 
the answers I got were pro-PHP+mySQL.
Adam  ___
Zope maillist  -  Zope@zope.org
https://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists -
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope-dev )