Re: [Tutor] Conceptual Question About Use of Python for Employee Training Program

2011-06-30 Thread Christopher King
What's step 4?

On Sat, Jun 25, 2011 at 10:08 AM, Mac Ryan quasipe...@gmail.com wrote:

 On Sat, 25 Jun 2011 06:18:14 -0700 (PDT)
 Adam Carr adamlc...@yahoo.com wrote:

  Good Morning:
 
  I am very new to Python but I am enjoying the learning process. I
  have a question about the application of Python to a problem at the
  industrial business where I work. My two main questions are:
 
  1. Can Python be used to achieve the goals of the possible project?
  2. Where are the best places to look (books, blogs, websites, etc.)
  for programming examples or modules that would help me begin to
  assemble and test some code?
 
  We currently have a Windows-PC based safety training program that was
  put together in MS Access around 2001

 snip

  Thanks in advance for taking the time to read my long note. I
  appreciate any help or direction that can be offered.

 Hi Adam,

from the way you describe your problem, to me the obvious
 answer would be web application. This way you will be able to:

 1. Make sure all employees will use the latest up-to-date training
   material and software version.

 2. Have a central DB able to track employees' activity (this opens up
   the possibility for extra functionalities like sending a gentle
   reminder e-mail to those who are not taking tests frequently
   enough, statistics on what topics employees struggle most with,
   etc...)

 3. Be platform independent.

 5. Save time on developing the GUI (which - done properly - is a very
   time consuming part of desktop projects).

 That said, python is a great tool for web apps too. I personally looked
 a bit into Django (www.djangoproject.com), which is one of the python
 web frameworks and I was impressed by the speed you can prototype a
 fully working application.

 As for presenting the training material, for iteration #1 I would
 simply make them available as a download link. But in following
 iteration of the project I would also integrate them with the web (so
 as to make the entire application truly portable. I once used S5 for a
 project. Here you can see a presentation of it that is - coherentely -
 done with the standard presented:
 http://meyerweb.com/eric/tools/s5/s5-intro.html#slide1
 However an alternative I did not experiment with is XOXO, which I read
 has python code examples available (see
 http://microformats.org/wiki/xoxo-sample-code-python)

 HTH,
 Mac.
 ___
 Tutor maillist  -  Tutor@python.org
 To unsubscribe or change subscription options:
 http://mail.python.org/mailman/listinfo/tutor

___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Conceptual Question About Use of Python for Employee Training Program

2011-06-25 Thread Mac Ryan
On Sat, 25 Jun 2011 06:18:14 -0700 (PDT)
Adam Carr adamlc...@yahoo.com wrote:

 Good Morning:
 
 I am very new to Python but I am enjoying the learning process. I
 have a question about the application of Python to a problem at the
 industrial business where I work. My two main questions are:
 
 1. Can Python be used to achieve the goals of the possible project?
 2. Where are the best places to look (books, blogs, websites, etc.)
 for programming examples or modules that would help me begin to
 assemble and test some code?
 
 We currently have a Windows-PC based safety training program that was
 put together in MS Access around 2001

snip

 Thanks in advance for taking the time to read my long note. I
 appreciate any help or direction that can be offered.

Hi Adam,

from the way you describe your problem, to me the obvious
answer would be web application. This way you will be able to:

1. Make sure all employees will use the latest up-to-date training
   material and software version.

2. Have a central DB able to track employees' activity (this opens up
   the possibility for extra functionalities like sending a gentle
   reminder e-mail to those who are not taking tests frequently
   enough, statistics on what topics employees struggle most with,
   etc...)

3. Be platform independent.

5. Save time on developing the GUI (which - done properly - is a very
   time consuming part of desktop projects).

That said, python is a great tool for web apps too. I personally looked
a bit into Django (www.djangoproject.com), which is one of the python
web frameworks and I was impressed by the speed you can prototype a
fully working application.

As for presenting the training material, for iteration #1 I would
simply make them available as a download link. But in following
iteration of the project I would also integrate them with the web (so
as to make the entire application truly portable. I once used S5 for a
project. Here you can see a presentation of it that is - coherentely -
done with the standard presented:
http://meyerweb.com/eric/tools/s5/s5-intro.html#slide1
However an alternative I did not experiment with is XOXO, which I read
has python code examples available (see
http://microformats.org/wiki/xoxo-sample-code-python)

HTH,
Mac.
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Conceptual Question About Use of Python for Employee Training Program

2011-06-25 Thread Mac Ryan
Just thought to google for S5 python, and google came out with a lot
of interesting links! :o

/mac

 Good Morning:
 
 I am very new to Python but I am enjoying the learning process. I
 have a question about the application of Python to a problem at the
 industrial business where I work. My two main questions are:
 
 1. Can Python be used to achieve the goals of the possible project?
 2. Where are the best places to look (books, blogs, websites, etc.)
 for programming examples or modules that would help me begin to
 assemble and test some code?
 
 We currently have a Windows-PC based safety training program that was
 put together in MS Access around 2001. Access has evolved through
 several versions since then, as has the Windows OS, and the original
 author of the database has left the company. Originally designed to
 be deployed on an employee's desktop, the database is now restricted
 to two older PCs in the facility that run a version of Access
 compatible with the original. In short, the program is quickly
 becoming obsolete.
 
 The safety training program is a monthly exercise for all thirty nine
 employees at our location. The training is mandated by OSHA, and the
 subject matter is chosen based on the relevance to our processes. The
 program consists of the following general steps.
 
 1. The employee is prompted to enter his or her employee identity
 number.
 
 2. A confirmation is generated showing the employee name and other
 minor details, accessed from a simple list, to be sure the identity
 number and the person are correctly matched. This requires employee
 acknowledgment.
 
 3. The employee freely selects a training subject from a list.
 
 4. Once a subject is selected, a PowerPoint (or could be the
 OpenOffice Presentation) is launched. The training information is in
 the presentation. The employee can navigate forward or backward
 through the presentation, or they can exit.
 
 5. Once the presentation is complete, or the employee has started and
 used ESC to exit from the presentation, they are prompted to take a
 quiz or exit the training program.
 
 6. The quiz is a simple true-false ten question process based on the
 material in the training presentation.
 
 7. The employee clicks on their answers to questions, the quiz is
 completed and scored. The employee must get at least eight of the ten
 questions correct to pass the topic. 
 
 
 8. Right now the Access version of the program prints the quiz, the
 employee's answers and the correct answers to the quiz, and the hard
 copy is signed and left with their supervisor. The printer is the
 default location set for the machine on which the training and quiz
 are completed. I think that the only reason the quizzes are printed
 is because no topic and quiz verification process was written into
 the program. In other words, an employee can take the time to review
 a topic, take and pass the associated quiz but if the printed copy is
 lost there is no way to verify that the employee completed anything. 
 
 
 I would like to see a program that can be deployed as originally
 intended, on individual PCs, that can be more easily maintained and
 modified than the behemoth Access program we now have. We are running
 a Windows network with most production floor PCs using the latest
 version of XP and most individual desktops and laptops using Windows
 7. I have the blessing of our network gods to pursue an open source
 solution because the options for this kind of program, which is
 tailored to individual locations, are few. The best approach the
 network folks suggested was a Lotus Notes database, which would work
 great I'm sure but the development cost is very, very high and each
 of the company's many manufacturing locations would require a
 slightly different version of the database.
 
 Thanks in advance for taking the time to read my long note. I
 appreciate any help or direction that can be offered.
 
 Adam

___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Conceptual Question About Use of Python for Employee Training Program

2011-06-25 Thread John Fabiani
On Saturday, June 25, 2011 06:18:14 am Adam Carr wrote:
 Good Morning:
 
 I am very new to Python but I am enjoying the learning process. I have a
 question about the application of Python to a problem at the industrial
 business where I work. My two main questions are:
 
 1. Can Python be used to achieve the goals of the possible project?
 2. Where are the best places to look (books, blogs, websites, etc.) for
 programming examples or modules that would help me begin to assemble and
 test some code?
 
 We currently have a Windows-PC based safety training program that was put
 together in MS Access around 2001. Access has evolved through several
 versions since then, as has the Windows OS, and the original author of the
 database has left the company. Originally designed to be deployed on an
 employee's desktop, the database is now restricted to two older PCs in the
 facility that run a version of Access compatible with the original. In
 short, the program is quickly becoming obsolete.
 
 The safety training program is a monthly exercise for all thirty nine
 employees at our location. The training is mandated by OSHA, and the
 subject matter is chosen based on the relevance to our processes. The
 program consists of the following general steps.
 
 1. The employee is prompted to enter his or her employee identity number.
 
 2. A confirmation is generated showing the employee name and other minor
 details, accessed from a simple list, to be sure the identity number and
 the person are correctly matched. This requires employee acknowledgment.
 
 3. The employee freely selects a training subject from a list.
 
 4. Once a subject is selected, a PowerPoint (or could be the OpenOffice
 Presentation) is launched. The training information is in the presentation.
 The employee can navigate forward or backward through the presentation, or
 they can exit.
 
 5. Once the presentation is complete, or the employee has started and used
 ESC to exit from the presentation, they are prompted to take a quiz or
 exit the training program.
 
 6. The quiz is a simple true-false ten question process based on the
 material in the training presentation.
 
 7. The employee clicks on their answers to questions, the quiz is completed
 and scored. The employee must get at least eight of the ten questions
 correct to pass the topic.
 
 
 8. Right now the Access version of the program prints the quiz, the
 employee's answers and the correct answers to the quiz, and the hard copy
 is signed and left with their supervisor. The printer is the default
 location set for the machine on which the training and quiz are completed.
 I think that the only reason the quizzes are printed is because no topic
 and quiz verification process was written into the program. In other
 words, an employee can take the time to review a topic, take and pass the
 associated quiz but if the printed copy is lost there is no way to verify
 that the employee completed anything.
 
 
 I would like to see a program that can be deployed as originally intended,
 on individual PCs, that can be more easily maintained and modified than the
 behemoth Access program we now have. We are running a Windows network with
 most production floor PCs using the latest version of XP and most
 individual desktops and laptops using Windows 7. I have the blessing of
 our network gods to pursue an open source solution because the options for
 this kind of program, which is tailored to individual locations, are few.
 The best approach the network folks suggested was a Lotus Notes database,
 which would work great I'm sure but the development cost is very, very
 high and each of the company's many manufacturing locations would require
 a slightly different version of the database.
 
 Thanks in advance for taking the time to read my long note. I appreciate
 any help or direction that can be offered.
 
 Adam
You might want to check out Dabo (www.dabodev.com).  It was designed to 
replace Visual Fox Pro, Access, and Visual Basic desktop programs.  Dabo does 
a very good job with dealing with the GUI and data.

That of course assumes you want a desktop app.  You could also use Django to 
create a web app.  But if this is your first python project I think I'd go 
with a desktop app rather than deal with HTML, JavaSript, CSS, and python for 
the first project.  

Johnf

___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Conceptual Question About Use of Python for Employee Training Program

2011-06-25 Thread Steven D'Aprano

Adam Carr wrote:

Good Morning:

I am very new to Python but I am enjoying the learning process. I have a 
question about the application of Python to a problem at the industrial business 
where I work. My two main questions are:


1. Can Python be used to achieve the goals of the possible project?


Yes.


2. Where are the best places to look (books, blogs, websites, etc.) for 
programming examples or modules that would help me begin to assemble and test 
some code?


Do you know Python? If not, start with a tutorial or three. Google is 
your friend: google for python tutorial or learn Python. Don't just 
read them, do them.


Don't start with code. Start with a list of Functional Requirements. FRs 
should be technology independent, and preferably written for non-tech 
people. In other words:


BAD:
The training notes are opened in Powerpoint using a remote procedure call.

GOOD:
The training notes are shown to the user by the system.


You already have the skeleton of an FR, your text below. Don't think the 
FR needs to be a huge, technical, ISO-standard document. A single page 
may be enough. You're just trying to identify the target you are aiming 
for, so you can tell whether or not you've hit it.


Requirements includes things like:

- How scalable does this need to be? Do we have 10 users, or 10 million?
- Do we have to service remote users over the Internet?
- What sort of security is needed? Do you need fear staff cheating?

Don't be afraid to postpone functionality for the next version. You 
don't need all the bells and whistles from day one. In fact, I recommend 
that you start with the simplest application you possibly can do, and 
add extra features afterwards. Release early, release often.


Get the Powers That Be to approve the FRs. Make sure that everyone 
(especially you!) understands that no changes will be accepted to 
functionality without it being put in writing. Now you have a stable 
target, rather than a moving one.


Now write a technical design document: this is where you choose the 
technologies used. This is the point you start thinking about:


- Do we need a database? Which one? SQLite? Postgres? Oracle?
- A web app or a desktop app?
- Which web framework, or GUI toolkit?
- Do you have a server that can run this web app?
- Do you need a server-class machine, or can it run off a cheap PC?

Again, this may be quite short, although probably a bit longer than the 
FR. Don't think that you *need* to answer every question up front, 
although it is best if you can. Especially for small projects, you can 
leave gaps to be filled in later. But the gaps will guide you, by 
showing you what you need to learn before you can even start writing code.


E.g. if you decide you need a web application, but you have no idea 
which web framework to use, you now know that you need to spend some 
time investigating frameworks. CherryPy, Django, Zope, Pylons...


http://wiki.python.org/moin/WebFrameworks

Once you know what sort of code you need to write, then you can start 
writing code.


More comments below:


[...]
2. A confirmation is generated showing the employee name and other minor 
details, accessed from a simple list, to be sure the identity number and the 
person are correctly matched. This requires employee acknowledgment.


You state that the employee name and details are accessed from a simple 
list? That's a technical design choice, not a requirement of the 
program. Perhaps it would be better to come from a database, or a Python 
dict, or an INI file. Who knows?


The requirement is that the employee must acknowledge that he or she is 
who the system thinks he or she is based on the ID number. Everything 
else is design.




3. The employee freely selects a training subject from a list.


I would put it as, freely selects a training subject from a menu of 
available subjects. This could be implemented as a list box GUI widget, 
or a set of checkboxes, or a set of push buttons, or by typing the name 
of the subject... the user interface is a design choice, and should be 
kept separate from the requirement that the employee somehow choose a 
subject.


You should see the pattern now... keep design *choices* separate from 
functional *requirements*.


Nothing you have stated seems impossible for Python. Far from it, I 
would think that Python is a good choice for this project.



[...]
I would like to see a program that can be deployed as originally intended, 
on individual PCs, that can be more easily maintained and modified than the 
behemoth Access program we now have. We are running a Windows network with most 
production floor PCs using the latest version of XP and most individual desktops 
and laptops using Windows 7. I have the blessing of our network gods to pursue 
an open source solution because the options for this kind of program, which is 
tailored to individual locations, are few. The best approach the network folks 
suggested was a Lotus Notes database, which would