Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?

2015-07-20 Thread Alan Gauld

On 20/07/15 04:59, boB Stepp wrote:


implementing features of kivy on this list?  I imagine that they would
...But I'm sure there is a kivy list somewhere



I guess I will answer this question myself:  I have just been skimming
through the kivy docs tonight and they look to be quite good.  Also, I
found their Google group and it looks to be quite active.  So unless I
have a GUI question that seems to fit better here, I will direct my
kivy inquiries to their Google group.


right answer ;-)


--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos


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


Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?

2015-07-19 Thread Alan Gauld

On 19/07/15 07:27, Steven D'Aprano wrote:


If you use SQLite for the data storage, it should have a simple dump
function that would let you export the database to a standard SQL dump
format, and reconstruct the database from said dump if needed. Otherwise
you would have to write your own export/import routines.


SQLite is a single file database so you shouldn't need to dump/load it. 
Just save the file. That's why I suggested Dropbox or similar since you 
get the benefit of a local copy with automated backup to the cloud.


SQLIte provides no login/user access control but the Cloud will provide 
visibility control so only approved users can access the

file. (Of course they can copy it anywhere they want so its not
as good as full server based access but for a few users/devices
it should be sufficient)


--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos


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


Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?

2015-07-19 Thread Laura Creighton
In a message of Sun, 19 Jul 2015 16:27:13 +1000, Steven D'Aprano writes:
I'm not sure if it runs on Macs, but it should work on Android, Windows, 
and Linux, and of course it is entire Python-based.

Python 2.7 only on for MacOSX.  Python 3 is coming very soon.

Laura

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


Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?

2015-07-19 Thread Steven D'Aprano
On Sun, Jul 19, 2015 at 12:49:50AM -0500, boB Stepp wrote:

 In this thread, I kept it very general on purpose.  I was probing this
 community for their thoughts on two things:  1)  Should I make the
 software web-based or desktop-based?  2) What would be the best way of
 handling the data involved, particularly the data that impinges on
 student privacy concerns.

Not to be a wet blanket, but this is way off-topic for this mailing 
list. However, you're a regular in good standing, and we don't have a 
strict rule about staying on-topic (such rules are tiresome and annoying 
if they allow for no exceptions), so let's go with it.

I would start with the simplest thing that can work. With an initial 
user-base of one person, especially one who is quite computer 
literate, you don't have to worry about backwards compatibility and can 
feel free to experiment and expand the software as needed.

So I would start with something that just runs on the local machine. 
Since your missus intends to use a tablet, you may want to investigate 
Kivy for your GUI needs.

http://kivy.org/

I'm not sure if it runs on Macs, but it should work on Android, Windows, 
and Linux, and of course it is entire Python-based.

Once you have a proof-of-concept working for your one user, then you can 
consider how to expand on it by moving the data to a server and possibly 
giving access to others.

In the meantime, keep everything on the local machine. Take backups of 
the data by exporting to some sort of regular file which can be zipped 
up and copied onto a USB stick and locked in a safe. You might consider 
an encrypted file system if the data is particularly sensitive. But 
that's a separate issue from the application itself.

If you use SQLite for the data storage, it should have a simple dump 
function that would let you export the database to a standard SQL dump 
format, and reconstruct the database from said dump if needed. Otherwise 
you would have to write your own export/import routines.

If you make the decision to provide multi-user access, then you have a 
large number of problems to deal with:

- security of the database server;
- access to the database itself;
- what to do if the link between the app and the database goes down?
- user authentication and permissions (you don't want little Freddy
  changing his grades, or accessing other people's records);

etc. Why deal with those things from Day One if you only have one user? 
You don't even know if this application is going to be useful. Start 
with a proof of concept to prove that it is worth the extra effort. 
Perhaps your wife will decide that the application isn't useful at all, 
or that it is useful, but it can remain a single person app and no 
shared database is needed. But you won't know until you have something 
to actually experiment with.



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


Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?

2015-07-19 Thread boB Stepp
On Sun, Jul 19, 2015 at 5:28 PM, Laura Creighton l...@openend.se wrote:
 In a message of Sun, 19 Jul 2015 18:11:36 -0400, Dave P writes:
On Jul 19, 2015 5:43 AM, Laura Creighton l...@openend.se wrote:

 In a message of Sun, 19 Jul 2015 16:27:13 +1000, Steven D'Aprano writes:
 I'm not sure if it runs on Macs, but it should work on Android, Windows,
 and Linux, and of course it is entire Python-based.

 Python 2.7 only on for MacOSX.  Python 3 is coming very soon.

 Laura

Hi all,

I can't help thinking we're trying to reinvent the wheel here. I would be
quite surprised if Trello couldn't help in this situation. (I do not work
for Trello.com)

Long story short, it's kanban in the cloud and can be adapted for just
about anything.  It's free, too!  My son's multi-age, non-traditional
school -kids, teachers, and parents alike- use it to track student projects
 goals, plan school events, fundraising, wish lists, supplies lists, and
more.  It's easy to use, share, and collaborate.  It works in the browser
or you can use their mobile apps.  You can set up checklists, attach images
and files, work with due dates, comment and activity streams, etc.  Plus,
using their RESTful API, you could whip up some slick automation and
reporting (using Python, of course!)

I'll be glad to help you and your wife off-list if you'd like some
pointers.

Good luck!

Dave

 boB: this was precisely the sort of solution 'already existing in the
 cloud' I was hoping you could find.  I just didn't know about this one.
 Very cool.  Thank you Dave.

I will forward this to Vonda and see what she thinks.  But from what
she has described thus far, I don't think it will give her the type of
interface she is hoping to get, or make it easy to organize her
information in the way she seems to want.  However, it looks like it
might do some stuff that I have wanted done on my phone that I used to
do on a Palm once upon a time.  I will have to glance at the API docs
and see what else we might do with it.

Thanks!

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


Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?

2015-07-19 Thread Dave P
On Jul 19, 2015 5:43 AM, Laura Creighton l...@openend.se wrote:

 In a message of Sun, 19 Jul 2015 16:27:13 +1000, Steven D'Aprano writes:
 I'm not sure if it runs on Macs, but it should work on Android, Windows,
 and Linux, and of course it is entire Python-based.

 Python 2.7 only on for MacOSX.  Python 3 is coming very soon.

 Laura

Hi all,

I can't help thinking we're trying to reinvent the wheel here. I would be
quite surprised if Trello couldn't help in this situation. (I do not work
for Trello.com)

Long story short, it's kanban in the cloud and can be adapted for just
about anything.  It's free, too!  My son's multi-age, non-traditional
school -kids, teachers, and parents alike- use it to track student projects
 goals, plan school events, fundraising, wish lists, supplies lists, and
more.  It's easy to use, share, and collaborate.  It works in the browser
or you can use their mobile apps.  You can set up checklists, attach images
and files, work with due dates, comment and activity streams, etc.  Plus,
using their RESTful API, you could whip up some slick automation and
reporting (using Python, of course!)

I'll be glad to help you and your wife off-list if you'd like some
pointers.

Good luck!

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


Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?

2015-07-19 Thread Laura Creighton
In a message of Sun, 19 Jul 2015 18:11:36 -0400, Dave P writes:
On Jul 19, 2015 5:43 AM, Laura Creighton l...@openend.se wrote:

 In a message of Sun, 19 Jul 2015 16:27:13 +1000, Steven D'Aprano writes:
 I'm not sure if it runs on Macs, but it should work on Android, Windows,
 and Linux, and of course it is entire Python-based.

 Python 2.7 only on for MacOSX.  Python 3 is coming very soon.

 Laura

Hi all,

I can't help thinking we're trying to reinvent the wheel here. I would be
quite surprised if Trello couldn't help in this situation. (I do not work
for Trello.com)

Long story short, it's kanban in the cloud and can be adapted for just
about anything.  It's free, too!  My son's multi-age, non-traditional
school -kids, teachers, and parents alike- use it to track student projects
 goals, plan school events, fundraising, wish lists, supplies lists, and
more.  It's easy to use, share, and collaborate.  It works in the browser
or you can use their mobile apps.  You can set up checklists, attach images
and files, work with due dates, comment and activity streams, etc.  Plus,
using their RESTful API, you could whip up some slick automation and
reporting (using Python, of course!)

I'll be glad to help you and your wife off-list if you'd like some
pointers.

Good luck!

Dave

boB: this was precisely the sort of solution 'already existing in the
cloud' I was hoping you could find.  I just didn't know about this one.
Very cool.  Thank you Dave.

Laura

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


Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?

2015-07-19 Thread boB Stepp
On Sun, Jul 19, 2015 at 1:27 AM, Steven D'Aprano st...@pearwood.info wrote:
 On Sun, Jul 19, 2015 at 12:49:50AM -0500, boB Stepp wrote:

 In this thread, I kept it very general on purpose.  I was probing this
 community for their thoughts on two things:  1)  Should I make the
 software web-based or desktop-based?  2) What would be the best way of
 handling the data involved, particularly the data that impinges on
 student privacy concerns.

 Not to be a wet blanket, but this is way off-topic for this mailing
 list. However, you're a regular in good standing, and we don't have a
 strict rule about staying on-topic (such rules are tiresome and annoying
 if they allow for no exceptions), so let's go with it.

Thanks for the pass!  But I actually thought this was on-topic.  I am
preparing to write a Python application.  I have some questions about
how to design it.  Why would this be off-topic?  I get it that program
design applies to all programming languages, but since this list is
targeted to people learning programming, I would think we would all
need help in these areas, too.  Otherwise our Python programs would
not be very well written, however correct the Python syntax might be.

For the rest of your answer, I think that this is exactly how I should
approach this first program.  And after having a discussion with Vonda
today, it is actually her intent--play with this project until it is
in a form that works in her workflow, and then expand upon it.  Laura
suggested kivy, too, and I think it will best do what is needed for
the Slate tablet.  Alan's and your suggestion to use SQLite seems a
good one as well for the prototype.

Thanks to everyone who responded to this thread.  It has really
clarified my thinking on the best way to get productive as quickly as
possible.  Now to find the energy after my regular work and the time
at home which is always being taken up by my two kids and Vonda!

Would it be off-putting later to ask specific questions about
implementing features of kivy on this list?  I imagine that they would
tend to be basic questions that would probably apply to any GUI
development.  But I'm sure there is a kivy list somewhere once I look
for it if I need to go there.

I took Laura's suggestion and asked my original questions that started
this thread on the tkinter list she suggested, but I have yet to
receive an response.  One thing I cherish about this list is it is
both active and enthusiastic in providing help and direction, even if
that help is to suggest other avenues for help.  Much better than
silence!

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


Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?

2015-07-19 Thread boB Stepp
On Sun, Jul 19, 2015 at 8:23 PM, boB Stepp robertvst...@gmail.com wrote:
 Would it be off-putting later to ask specific questions about
 implementing features of kivy on this list?  I imagine that they would
 tend to be basic questions that would probably apply to any GUI
 development.  But I'm sure there is a kivy list somewhere once I look
 for it if I need to go there.

I guess I will answer this question myself:  I have just been skimming
through the kivy docs tonight and they look to be quite good.  Also, I
found their Google group and it looks to be quite active.  So unless I
have a GUI question that seems to fit better here, I will direct my
kivy inquiries to their Google group.

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


Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?

2015-07-18 Thread Alan Gauld

On 18/07/15 04:20, boB Stepp wrote:

My wife (a Montessori teacher


No idea what that is but I'll assume its pretty much
a regular type teacher...


For her most urgent project to be done before school starts in 5 weeks


For the *urgent* project I'd consider using Sqlite for the data and 
store it on a cloud server. That will enable sync between devices, 
provided they don't both make changes at once. Its not super secure
but it does provide some level of access control on the cloud and the 
data isn't in a simple text file so can't be trivially read.


You can migrate to a bigger client/server solution later if needed 
provided you build a data access API from the start. And the more 
extensive security features need to be added later. Treat the 5 week 
project as a semi-throwaway prototype learning experience.


Other than that Laura's advice is pretty much spot on.


I do own server space and a domain name that I have never used, but
should be adequate for my wife's needs.


What software will they allow you to run? The server owners restrictions 
are likely to be a major factor in your choice

of solution. For example do they allow you to install a web
framework like Django? Or do you have to use Wordpress or
similar?

Not all web providers are equal. You may find you are better
off using something like Google or Amazon web services.

Finally, for a really modern feeling web app you are going to
have to use Javascript, possibly quite a lot of it. If you
don't already know it, it will be a steep learning curve, so
you might want to start reading now!

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos


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


Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?

2015-07-18 Thread boB Stepp
On Sat, Jul 18, 2015 at 4:58 PM, Brandon McCaig bamcc...@gmail.com wrote:

 Rather than worrying about technology, frameworks, peripherals,
 and protocols you need to focus on the real problem. Have her
 describe exactly what she'll do with it. Try to get her to put it
 into context of what she does NOW without the software so that
 you can compare. I'm 29 years old so I've been away from school
 for a long time. I don't know what teachers are using computers
 for these days, but I cannot imagine it being useful to walk
 around the classroom with a tablet (if anything I don't think I'd
 want my children's teachers having such a distraction). At least,
 not so useful as to commission the development of custom
 software. I'm also not familiar with what a Montessori teacher
 does, but it sounds even less likely that custom software will be
 useful since it sounds like the students' learning is much less
 organized than in a traditional school.

The Montessori philosophy of teaching is quite non-traditional.  Two
or more different grades of children are taught in the same classroom,
usually with just one teacher, who may or may not have any helpers.
My wife often does not have help, or, if she does, it has not been as
helpful as it might.  She has 7th, 8th and 9th graders in her class.
This coming school year she will have approximately 20 students.  At
any moment during the school day, all of the students are NOT doing
the same thing.  Some may be working in small groups.  Others will be
doing individual work, where it is quite likely that none of these
students are doing the same assignment.  Each student often has an
individualized learning plan.  The initial assessment project is quite
needful.  In the past my wife has wandered about the classroom
assessing her students with either a clipboard in hand or trusting her
memory until she got back to her desk and able to write down her
assessment notes for each student.  Note that students do not get
traditional grades.  Instead, they have a detailed list of skills that
they are working towards mastery in.  Her assessments will notate each
student's progress towards mastery in light of whatever assignments
they might be working on.  When it comes time to interact with each
student's parents, my wife needs to combine all of this assessment
data into a report of the student's progress in each skill area to
share with the parents.  This is quite burdensome to do entirely by
hand.

The Montessori method of teaching is most frequently associated with
children of age three up through sixth grade.  There are relatively
few examples of junior high/high school Montessori programs and there
does not seem to be a good consensus of how to apply the Montessori
methods to secondary education.  So the main reasons why my wife does
not have detailed requirements for what she would like me to program
is that she has been working out what is and is not appropriate on her
own.  After several years of developing her program, she feels she is
at the point where software can be a real help for her.  BTW, she is
very computer literate.  She has done programming before when she was
a university student and sporadically since then.  So she is well
aware of what is possible and what can be useful.

I have not given you a good idea of what a Montessori education is all
about.  If you are curious I encourage you to do the usual online
searching.

In this thread, I kept it very general on purpose.  I was probing this
community for their thoughts on two things:  1)  Should I make the
software web-based or desktop-based?  2) What would be the best way of
handling the data involved, particularly the data that impinges on
student privacy concerns.  As I said in the initial thread, some
software would be strictly for the teacher's use.  Some would be used
by the students and the teacher with the potential that the students
might have to access that software in their homes (homework).  And
finally in addition to the students and teachers, some things might be
desirable for the parents to be able to monitor their student's
progress from home.

And then to make things at least a little more concrete I gave a very
broad outline of the first project that she (perhaps foolishly ~(: )
) hopes to have at the start of her school year.  And I have been
given some great thoughts by this community to help me on my way!

I understand and appreciate your concerns.  If the client was anyone
but my wife, I would not be attempting this for all of the excellent
reasons you gave.  But Vonda is kinda the lone ranger here in what she
is trying to build, and I think I can give her some real help.  And
from my perspective it is another opportunity to learn many cool new
things and push my limits.  I never seem to ever find time to just
read and study a Python (or other programming-related) book from
beginning to end, but when I have a concrete project to do, then at
least I start learning *something* out of sheer 

Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?

2015-07-17 Thread boB Stepp
On Fri, Jul 17, 2015 at 11:18 PM, Laura Creighton l...@openend.se wrote:
 I have a plug in usb keyboard that I can just plug into my tablet.
 It  works great for data entry...

I suggested this to my wife and believe she is looking into it.
However, whenever she is walking about her classroom, she does not
want to be messing with her keyboard, just quickly tapping and
selecting predetermined skill assessment options (Student just
beginning to learn; practicing now; has achieved mastery of this
skill; etc.).


1) Find a way to always keep the laptop and tablet synchronized.

 All the cloud storage services want to sell you something that
 does this.  So does Dropbox.

My wife has a Dropbox account and mentioned this as a possibility.


Is this a sensible way of approaching at least this one project?  Of
course, I have not a clue as to how to do any of this (yet!).

[snip]

 The idea is to use as much off the shelf technology to do what you
 want, and not reinvent the wheel.  Especially when it comes to
 security issues that, worse case scenario, have all the parents
 suing you for not keeping things that are required to be private
 from being hacked.

 Before there was cloud computing, and smartphones, we wrote a client
 server app that handled the billing situation for the local energy
 company -- plus all their power outages, service apps etc, etc, etc.
 It took 4 of us nearly a year to get the permissions down right for
 all possible cases.

 Doing the same sort of thing for our mobile app using existing
 cloud libraries took about 3 weeks.  Only some of that speedup was
 due to the fact that we knew what we were doing a lot better the
 second time around, and we had really extensive unit tests from
 the old way of doingf that we could slightly refactor and then
 make sure they passed under trhe new regime.

 You haven't picked yourself an easy one here ...

Tell me about it!  Vonda (my honored spouse) has been hinting about
all of this for quite some time.  But she had not figured out her
exact needs.  She actually still hasn't, but has a broad idea of what
she initially would like to have now.  And she has a greatly
exaggerated idea of what I can accomplish in five weeks!

I suspect version 0.0.1 will be something along the lines of:
Everything basically exists on the tablet.  Get a keyboard that works
with the tablet.  Manually backup/sync tablet with laptop as needed.
Does the program have the basic functionality you *really* want as you
wander about the room?  Probably not.  Tell me what you now need.
Etc.  Only when I feel I have what she really wants nailed down will I
get into the rest of our discussion.  But I *do* want to design my
code with where the final version needs to go, so hopefully I won't
have any major rewrites in my future!

 One warning -- the trick to high speed performance for such things is
 to copy as little data as is needed from one device to another (and
 then let the devices regenerate a lot of what they need from the
 basic necessary set).  But the trick for _developing_ and
 debugging such things is to send more information, including a
 bunch of handshaking things like 'I am trying to open the MongoDB
 Database now.  Ok, that worked, now I am adding new job tickets ...
 and so on and so forth.

 If you do not do things like that, the time will come when you sit
 pointing at your server saying 'You aren't doing anything.  Why aren't
 you doing whatever it is you want it to do?  Utterly frustrating.
 YOu need to build a verbose way into what you do so you can have your
 server tell you what it thinks it ought to be doing, and then a
 way to shut the server up when you go into production.

This makes a lot of sense!  Must remember...

 But I would go google for cloud services that have data synchronisation.
 (Which is pretty much all of them, that being the point, after all).
 You want to build your app out of some of these ready made parts, or
 risk that  your wife's students will all be in university before you are
 done with your app.

For sure!  Especially when I get into some student drills programs
that she will undoubtedly want the students to work on both in class
and at home with an option for the parents to view their child's
progress online.

But for this student assessment project, it is going to have to be
without all the desired bells and whistles to have something that will
be practically useful for her when school starts.  Especially when I
am certain Vonda is still figuring out what she *really* needs!



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


Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?

2015-07-17 Thread Laura Creighton
In a message of Fri, 17 Jul 2015 23:57:01 -0500, boB Stepp writes:
But for this student assessment project, it is going to have to be
without all the desired bells and whistles to have something that will
be practically useful for her when school starts.  Especially when I
am certain Vonda is still figuring out what she *really* needs!

Every user is like this.  You hand them a thing that does 100%
exactly what they said they wanted, they play with it for 10 minutes,
(or sometimes 10 seconds) and say 'aha!  Now what I would really like is ...'

This means that you need to have frequent chats with the people who
will use the app as you are developing it. And here, you got lucky
in that you live with the person you need to talk to.  So you won't
run into -- we are too busy to talk to you right now, we cancelled the
last meeting we had to discuss things, and no, we don't know when
we can reschedule --  which can be a problem when  doing commercial
development.

One warning -- how a person uses an app when they are new to it, and
learning how to use it is different than how they use it when they
are very familiar with it.  So, for instance, it is common to hear
'I will never remember the 4 commands.  Can I have a pull down
menu?'  And you give them that.  Then, a week later they tell you
'This pull down menu is too slow.  Can  we have a keyboard shortcut
instead?'  At this point the 4 commands won't be hard to remember,
and may be exactly the keyboard shortcut they are now looking for.

It is a thing to remember when you are discussing what users want
with the users.

Laura


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


Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?

2015-07-17 Thread Laura Creighton
I have a plug in usb keyboard that I can just plug into my tablet.
It  works great for data entry.  I don't know anything about windows
tablets though, this is working for android.  You need a usb port
that is capable of being both a slave and a master.  Most of them
can do this these days -- if you send me the model number of the tablet
I can look that up for you.

1) Find a way to always keep the laptop and tablet synchronized.

All the cloud storage services want to sell you something that
does this.  So does Dropbox.

2) Have both devices write a backup copy of the data to the server
whenever a change in the data occurs.

This may be overkill.  Plus it may not be what you want.  You may
be happier with 'the server gets the new data whenever I push it
to there'.  Or the cloud gets it then.

3) In case of wireless network failure, the software would realize
this and know that whenever connectivity is restored to write any data
that has changed in the interim.
4) The backup data on the server would have to be securely encrypted
against whatever hackers might try to to access or intercept the data.
(Hmm.  What about the communications between the laptop and the
tablet?)

If wireless, yes, if you are plugging your tablet into your laptop

Is this a sensible way of approaching at least this one project?  Of
course, I have not a clue as to how to do any of this (yet!).

As always, many thanks in advance!

P.S.:  My wife has researched existing software and has found
everything lacking.  She wants custom solutions to her custom needs.
Oh, joy.  But very interesting!
-- 
boB

The idea is to use as much off the shelf technology to do what you
want, and not reinvent the wheel.  Especially when it comes to
security issues that, worse case scenario, have all the parents
suing you for not keeping things that are required to be private
from being hacked.

Before there was cloud computing, and smartphones, we wrote a client
server app that handled the billing situation for the local energy
company -- plus all their power outages, service apps etc, etc, etc.
It took 4 of us nearly a year to get the permissions down right for
all possible cases.

Doing the same sort of thing for our mobile app using existing
cloud libraries took about 3 weeks.  Only some of that speedup was
due to the fact that we knew what we were doing a lot better the
second time around, and we had really extensive unit tests from
the old way of doingf that we could slightly refactor and then
make sure they passed under trhe new regime.

You haven't picked yourself an easy one here ...

One warning -- the trick to high speed performance for such things is
to copy as little data as is needed from one device to another (and
then let the devices regenerate a lot of what they need from the
basic necessary set).  But the trick for _developing_ and
debugging such things is to send more information, including a
bunch of handshaking things like 'I am trying to open the MongoDB
Database now.  Ok, that worked, now I am adding new job tickets ...
and so on and so forth.

If you do not do things like that, the time will come when you sit
pointing at your server saying 'You aren't doing anything.  Why aren't
you doing whatever it is you want it to do?  Utterly frustrating.
YOu need to build a verbose way into what you do so you can have your
server tell you what it thinks it ought to be doing, and then a
way to shut the server up when you go into production.

But I would go google for cloud services that have data synchronisation.
(Which is pretty much all of them, that being the point, after all).
You want to build your app out of some of these ready made parts, or
risk that  your wife's students will all be in university before you are
done with your app. 

Laura

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