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  wrote:

> On Sat, 25 Jun 2011 06:18:14 -0700 (PDT)
> 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
>
> 
>
> > 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 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 wo

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 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 Mac Ryan
On Sat, 25 Jun 2011 06:18:14 -0700 (PDT)
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



> 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] Conceptual Question About Use of Python for Employee Training Program

2011-06-25 Thread Adam Carr
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