Solution 1. Students could send me e-mails, but I have the massive work
of pulling files from my inbox into a UNIX system where I can look at
each one. E-mail does the job because it /sort of/ proves the delivery.
Solution 2. They could scp files, but this lets them overwrite files.
It'd be nice if each upload would turn the submission into a
next-version.
Meredith Montgomery <mmontgomery@levado.to> wrote:
Solution 1. Students could send me e-mails, but I have the massive work
of pulling files from my inbox into a UNIX system where I can look at
each one. E-mail does the job because it /sort of/ proves the delivery.
Your unix system doesn't have postfix? Send email to the unix system,
then write a procmail script to sort it out into files. You get multiple valid timestamps on each message. You get some reasonable but not
completely validated idea of who sent the message. You don't need to
give any other access to students. There is only a way for them to send
data to you, never to remove data.
Solution 2. They could scp files, but this lets them overwrite files.
It'd be nice if each upload would turn the submission into a
next-version.
If you HAVE to do this, you can rsync the directory they send it to into another place with timestamps added to the filenames. This way if student
A uploads a file and then student B uploads an invalid file with student A's name on it in order to help the grade curve, it becomes very evident.
--scott
I'm thiking about creating UNIX accounts merely for students to upload
their homework through scp. But I have not solved all what I want to
solve. (Such students are expected to be technical enough to use scp.)
I'm thinking of scp because it's solid enough. It's simple. It works.
I end up having all of the work centralized in a UNIX system. I get
dates et cetera.
But what'd really like is to have a program receive each file transfer
and rename the file, say. In other words, I'd like to associate an scp transfer to a script, much like e-mail can invoke a script on a UNIX
system.
Maybe SSH can sort of do this. I'll look into the documentation. Any
ideas? Thank you!
(*) My thought process leading up to this
Solution 1. Students could send me e-mails, but I have the massive work
of pulling files from my inbox into a UNIX system where I can look at
each one. E-mail does the job because it /sort of/ proves the delivery.
Solution 2. They could scp files, but this lets them overwrite files.
It'd be nice if each upload would turn the submission into a
next-version.
I'm thiking about creating UNIX accounts merely for students to upload
their homework through scp. But I have not solved all what I want to
solve. (Such students are expected to be technical enough to use scp.)
I'm thinking of scp because it's solid enough. It's simple. It works.
I end up having all of the work centralized in a UNIX system. I get
dates et cetera.
But what'd really like is to have a program receive each file transfer
and rename the file, say. In other words, I'd like to associate an scp transfer to a script, much like e-mail can invoke a script on a UNIX
system.
Maybe SSH can sort of do this. I'll look into the documentation. Any
ideas? Thank you!
(*) My thought process leading up to this
Solution 1. Students could send me e-mails, but I have the massive work
of pulling files from my inbox into a UNIX system where I can look at
each one. E-mail does the job because it /sort of/ proves the delivery.
Solution 2. They could scp files, but this lets them overwrite files.
It'd be nice if each upload would turn the submission into a
next-version.
I'm thiking about creating UNIX accounts merely for students to upload
their homework through scp. But I have not solved all what I want to
solve. (Such students are expected to be technical enough to use scp.)
I'm thinking of scp because it's solid enough. It's simple. It works.
I end up having all of the work centralized in a UNIX system. I get
dates et cetera.
But what'd really like is to have a program receive each file transfer
and rename the file, say. In other words, I'd like to associate an scp transfer to a script, much like e-mail can invoke a script on a UNIX
system.
Maybe SSH can sort of do this. I'll look into the documentation. Any
ideas? Thank you!
(*) My thought process leading up to this
Solution 1. Students could send me e-mails, but I have the massive work
of pulling files from my inbox into a UNIX system where I can look at
each one. E-mail does the job because it /sort of/ proves the
delivery.
Solution 2. They could scp files, but this lets them overwrite files.
It'd be nice if each upload would turn the submission into a
next-version.
I'm thiking about creating UNIX accounts merely for students to upload
their homework through scp. But I have not solved all what I want to
solve. (Such students are expected to be technical enough to use scp.)
I'm thinking of scp because it's solid enough. It's simple. It works.
I end up having all of the work centralized in a UNIX system.
I get dates et cetera.
But what'd really like is to have a program receive each file transfer
and rename the file, say. In other words, I'd like to associate an scp transfer to a script, much like e-mail can invoke a script on a UNIX
system.
Maybe SSH can sort of do this. I'll look into the documentation. Any
ideas? Thank you!
(*) My thought process leading up to this
Solution 1. Students could send me e-mails, but I have the massive work
of pulling files from my inbox into a UNIX system where I can look at
each one. E-mail does the job because it /sort of/ proves the delivery.
Solution 2. They could scp files, but this lets them overwrite files.
It'd be nice if each upload would turn the submission into a
next-version.
Maybe SSH can sort of do this. I'll look into the documentation. Any
ideas? Thank you!
I wonder why getting mail onto a Unix system would be such hard work.
What's going on to make that the case?
Yep, and I would not think it too hard to have you write some code to automagically extract each student's email into a file. Go ahead and
send yourself a few emails then cat /var/mail/your_login_id
I'm thiking about creating UNIX accounts merely for students to upload
their homework through scp. But I have not solved all what I want to
solve. (Such students are expected to be technical enough to use scp.)
But what'd really like is to have a program receive each file transfer
and rename the file, say. In other words, I'd like to associate an scp transfer to a script, much like e-mail can invoke a script on a UNIX
system.
Solution 1. Students could send me e-mails, but I have the massive work
of pulling files from my inbox into a UNIX system where I can look at
each one. E-mail does the job because it /sort of/ proves the delivery.
I'm thiking about creating UNIX accounts merely for students to upload[snip]
their homework through scp. But I have not solved all what I want to
solve. (Such students are expected to be technical enough to use scp.)
I'm thinking of scp because it's solid enough. It's simple. It works.
I end up having all of the work centralized in a UNIX system. I get
dates et cetera.
But what'd really like is to have a program receive each file transfer
and rename the file, say. In other words, I'd like to associate an scp transfer to a script, much like e-mail can invoke a script on a UNIX
system.
Solution 2. They could scp files, but this lets them overwrite files.
It'd be nice if each upload would turn the submission into a
next-version.
Solution 1. Students could send me e-mails, but I have the massive work
of pulling files from my inbox into a UNIX system where I can look at
each one. E-mail does the job because it /sort of/ proves the delivery.
I'm thiking about creating UNIX accounts merely for students to upload
their homework through scp. But I have not solved all what I want to
solve. (Such students are expected to be technical enough to use scp.)
I'm thinking of scp because it's solid enough. It's simple. It works.
I end up having all of the work centralized in a UNIX system. I get
dates et cetera.
But what'd really like is to have a program receive each file transfer
and rename the file, say. In other words, I'd like to associate an scp >transfer to a script, much like e-mail can invoke a script on a UNIX
system.
I wonder why getting mail onto a Unix system would be such hard work.
What's going on to make that the case?
I'm thiking about creating UNIX accounts merely for students to upload
their homework through scp. But I have not solved all what I want to
solve. (Such students are expected to be technical enough to use scp.)
I'm thinking of scp because it's solid enough. It's simple. It works.
I end up having all of the work centralized in a UNIX system. I get
dates et cetera.
But what'd really like is to have a program receive each file transfer
and rename the file, say. In other words, I'd like to associate an scp transfer to a script, much like e-mail can invoke a script on a UNIX
system.
Maybe SSH can sort of do this. I'll look into the documentation. Any
ideas? Thank you!
(*) My thought process leading up to this
Solution 1. Students could send me e-mails, but I have the massive work
of pulling files from my inbox into a UNIX system where I can look at
each one. E-mail does the job because it /sort of/ proves the delivery.
Solution 2. They could scp files, but this lets them overwrite files.
It'd be nice if each upload would turn the submission into a
next-version.
I'm thinking of scp because it's solid enough. It's simple. It works.
I end up having all of the work centralized in a UNIX system. I get
dates et cetera.
I'm thinking of scp because it's solid enough. It's simple. It works.
I end up having all of the work centralized in a UNIX system. I get
dates et cetera.
Meredith Montgomery <mmontgomery@levado.to> writes:
Solution 1. Students could send me e-mails, but I have the massive work
of pulling files from my inbox into a UNIX system where I can look at
each one. E-mail does the job because it /sort of/ proves the delivery.
It’s probably worth looking at why moving files from your mail to a Unix host is ‘massive work’. It shouldn’t be more effort than saving an attachment and then scping it yourself.
On Wed, 31 Aug 2022 22:07:17 -0300, Meredith Montgomery wrote:
As an alternative, you could look into one of the many "revision control" systems. I'm thinking specifically of git or cvs, both of which can handle networked commits.
In theory, your students would "commit" their homework to your repository, and you could then "pull" the homework out to be evaluated. Such revision control systems include user privilege management that you may be able
to use to limit a student's ability to, for instance, "commit" to another student's homework, or "pull" another student's homework for copying.
It would take a bit of set-up, but would give you control over what the students can access, and an audit trail of what they /have/ accessed.
Meredith Montgomery <mmontgomery@levado.to> writes:
(*) My thought process leading up to this
Solution 1. Students could send me e-mails, but I have the massive work
of pulling files from my inbox into a UNIX system where I can look at
each one. E-mail does the job because it /sort of/ proves the
delivery.
This is what I used to do. The email had to have the exercise number in
the subject. I used to use mh, so a simple script could find
coursework, extract the work and, if appropriate, compile and run tests
on it.
I wonder why getting mail onto a Unix system would be such hard work.
What's going on to make that the case?
Meredith Montgomery <mmontgomery@levado.to> writes:
But what'd really like is to have a program receive each file transfer
and rename the file, say. In other words, I'd like to associate an scp >>transfer to a script, much like e-mail can invoke a script on a UNIX >>system.
I like using https://github.com/dutchcoders/transfer.sh/ alot.
You can upload the files with curl (or a web browser). It'll make a
new file for each upload.
You'd have to determine how students differentiate their uploads so
you don't end up with a random jumble of files. (ie. they must name
their files after themselves, or student ID or something).
On the backend, it just creates a random directory to put the file in,
and then it can't be touched (other than deleted if the delete token
is captured). You'll end up with all the files in subdirectories of
where you have the web server dropping files.
On 01/09/2022 02:07, Meredith Montgomery wrote:
I'm thiking about creating UNIX accounts merely for students to upload
their homework through scp.
The suggestions to have your own Unix server receive email are all
well and good but setting it up *and securing it* is a PITA.
An alternative is to use Amazon's SES (Simple Email Service) <https://aws.amazon.com/ses/details/>
Your volumes are probably low enough that the free tier will cover everything, and it's easy to have a script run on receipt of an
email. Anti-virus scanning of the attachments is automatic.
Supersedes: <mail-20220902130956@ram.dialup.fu-berlin.de>
Meredith Montgomery <mmontgomery@levado.to> writes:
I'm thinking of scp because it's solid enough. It's simple. It works.
I end up having all of the work centralized in a UNIX system. I get
dates et cetera.
written earlier:
So you have a UNIX system that is online meaning students can
connect to it via SCP, but this UNIX system does neither have
a mailserver nor are you allowed to run a mailserver on it?
written later:
Sorry, I missed the post where you already answered this!
I would not say that you "have a server" if you can't run
a mail server program on it. - If it's just port 25 that's
blocked then you could use any other port and dispatch a
specific client to the students that connects to that port.
Ben Bacarisse <ben.usenet@bsb.me.uk> writes:
Meredith Montgomery <mmontgomery@levado.to> writes:
[...]
(*) My thought process leading up to this
Solution 1. Students could send me e-mails, but I have the massive work >>> of pulling files from my inbox into a UNIX system where I can look at
each one. E-mail does the job because it /sort of/ proves the
delivery.
This is what I used to do. The email had to have the exercise number in
the subject. I used to use mh, so a simple script could find
coursework, extract the work and, if appropriate, compile and run tests
on it.
I wonder why getting mail onto a Unix system would be such hard work.
What's going on to make that the case?
I can't run a MTA in this server because e-mail ports are blocked by the
ISP. I can pay more and get that out of the way, though.
But it seems you mean you had a script that would look into an inbox and extract homework from messages. But my mail is not in the UNIX system.
I'd need a script to POP3-download or IMAP-download or something like
that. I wouldn't know how to quickly do something like that.
I'd feel better setting up a new server with an MTA and have mail
piped to a program.
E-mail has the downside that the mechanism doesn't report right away
that the student is using it wrong. A run of scp (if there's no way for files to the wrong directory) would always be successful (as long as I
could name the files).
Nevertheless, this gives me the idea that if I write a web server for
the job, we should have an endpoint that students can submit their work through the command-line. (A nice interface for the more technical
people.)
Meredith Montgomery <mmontgomery@levado.to> wrote:
Ben Bacarisse <ben.usenet@bsb.me.uk> writes:
Meredith Montgomery <mmontgomery@levado.to> writes:
[...]
(*) My thought process leading up to this
Solution 1. Students could send me e-mails, but I have the massive work >>>> of pulling files from my inbox into a UNIX system where I can look at
each one. E-mail does the job because it /sort of/ proves the
delivery.
This is what I used to do. The email had to have the exercise number in >>> the subject. I used to use mh, so a simple script could find
coursework, extract the work and, if appropriate, compile and run tests
on it.
I wonder why getting mail onto a Unix system would be such hard work.
What's going on to make that the case?
I can't run a MTA in this server because e-mail ports are blocked by the
ISP. I can pay more and get that out of the way, though.
But it seems you mean you had a script that would look into an inbox and
extract homework from messages. But my mail is not in the UNIX system.
I'd need a script to POP3-download or IMAP-download or something like
that. I wouldn't know how to quickly do something like that.
It shouldn't be hard with Movemail from GNU Mailutils, or
alternatives like fdm: https://www.mailutils.org/wiki/Fetching_Mail_with_Movemail
E-mail has the downside that the mechanism doesn't report right away
that the student is using it wrong. A run of scp (if there's no way for
files to the wrong directory) would always be successful (as long as I
could name the files).
Well email sent should always end up in your mailbox (though
using Gmail puts this logic at risk because they like to reject
things that they falsely identify as malicious), so it seems the
same to me. With email you don't have to set up a separate user on
the system for each student in order to identify who uploaded what.
On Sun, 04 Sep 2022 17:22:37 -0300, Meredith Montgomery wrote:
Nevertheless, this gives me the idea that if I write a web server for
the job, we should have an endpoint that students can submit their work
through the command-line. (A nice interface for the more technical
people.)
Have you looked at installing Moodle?
Bob Eager <news0009@eager.cx> writes:
On Sun, 04 Sep 2022 17:22:37 -0300, Meredith Montgomery wrote:
Nevertheless, this gives me the idea that if I write a web server for
the job, we should have an endpoint that students can submit their
work through the command-line. (A nice interface for the more
technical people.)
Have you looked at installing Moodle?
I've used it before as a student. It's a whole system for such stuff.
I did not like to use it as a student --- it seemed ugly visually
speaking.
On Sun, 04 Sep 2022 21:39:34 -0300, Meredith Montgomery wrote:
Bob Eager <news0009@eager.cx> writes:
On Sun, 04 Sep 2022 17:22:37 -0300, Meredith Montgomery wrote:
Nevertheless, this gives me the idea that if I write a web server for
the job, we should have an endpoint that students can submit their
work through the command-line. (A nice interface for the more
technical people.)
Have you looked at installing Moodle?
I've used it before as a student. It's a whole system for such stuff.
I did not like to use it as a student --- it seemed ugly visually
speaking.
It is customisable.
And in any case, it's the functionality that matters.
As an academic, I found it very good.
This idea seems very interesting. I think you're saying each student
would have their own repository and they would push their repository to
a server (from where I'd pull and look at).
I'm thiking about creating UNIX accounts merely for students to upload
their homework through scp. But I have not solved all what I want to
solve. (Such students are expected to be technical enough to use scp.)
On Wed, 31 Aug 2022 22:07:17 -0300, Meredith Montgomery wrote:
I'm thiking about creating UNIX accounts merely for students to upload
their homework through scp. But I have not solved all what I want to
solve. (Such students are expected to be technical enough to use scp.)
As an alternative, you could look into one of the many "revision control" systems. I'm thinking specifically of git or cvs, both of which can handle networked commits.
In theory, your students would "commit" their homework to your repository, and you could then "pull" the homework out to be evaluated. Such revision control systems include user privilege management that you may be able
to use to limit a student's ability to, for instance, "commit" to another student's homework, or "pull" another student's homework for copying.
It would take a bit of set-up, but would give you control over what the students can access, and an audit trail of what they /have/ accessed.
On Sun, 04 Sep 2022 17:09:28 -0300, Meredith Montgomery <mmontgomery@levado.to> wrote:
This idea seems very interesting. I think you're saying each student
would have their own repository and they would push their repository to
a server (from where I'd pull and look at).
If you want to explore the repository solution, you may be
interested in fossil, https://www.fossil-scm.org/
(its architect is the creator of the SQLite database engine)
Thank you so very much. The software captivated me.
Now I'm learning
how to use it. My first thought was to make a repository for each
student and give them clone, password, check-in and check-out
permissions (I suppose that's what I need).
Would I have to put up a web server for each student? I guess so! They
must be able to clone it, after all.
Perhaps you guys are thinking of a
single repository with permissions on a branch basis, so I create a
branch for each student? I don't know. Probably, right?
Running so
many servers would be nightmare.
I'd have to learn how to set permission on a branch basis or something
like that. I don't know. I gotta learn how to do this.
On Tue, 06 Sep 2022 22:32:27 -0300, Meredith Montgomery
Would I have to put up a web server for each student? I guess so! They
must be able to clone it, after all.
Perhaps you guys are thinking of a
single repository with permissions on a branch basis, so I create a
branch for each student? I don't know. Probably, right?
In fossil, permissions are given for the whole repository, there
are no per-branch permissions.
Running so many servers would be [a] nightmare.
That would be a nightmare indeed. Luckily it is not needed. One
webserver will do. Fossil can run as CGI, with one simple CGI
script per repository.
For example, I run about 35 fossil repostories behind one
lighttpd web server. Each repository can be accessed with:
https://sub.domain.tld/fossil/REPONAME
Directory structure:
/var
+-fossil
+-cgi
+-repo
The repo directory contains a file for each repository,
with the name REPONAME.fossil.
Note: the /var/fossil/repo and the .fossil files in it must be
writable by the webserver user (www-data)
The cgi directory contains a CGI script for each repository, /var/fossil/cgi/REPONAME, mode -r-xr-x---
user:group: www-data:www-data
containing just:
#!/usr/local/bin/fossil
repository: /var/fossil/repo/REPONAME.fossil
Lighttpd configuration snippet:
#
## CGI for fossil reposiitories
#
$HTTP["url"] =~ "^/fossil" {
alias.url += ( "/fossil/" => "/var/fossil/cgi/" )
cgi.assign = ( "" => "" )
}
I'd have to learn how to set permission on a branch basis or something
like that. I don't know. I gotta learn how to do this.
You can script the creation of the per-student repository and
the cgi scripts.
The student should get developer permissions for his/her repo on
the server.
You create the repos on your server,
The students clone their own repo to their own machine and open
a checkouyt.
They automatically have all permissions on that local clone.
They checkin their work to the local repo and sync that with
their repo on the server.
You can checkout on the server to a per student directory, or
extract files directly from the repo.
docs: the fossil-scm website and :
fossil help user
fossil help new
fossil help clone
fossil help settings
fossil help cat
https://www.fossil-scm.org/home/doc/trunk/www/server/ https://www.fossil-scm.org/home/doc/trunk/www/server/any/cgi.md
Community:
https://fossil-scm.org/forum/forum
I'm running nginx. So I'm gonna have to learn how to run at least one
CGI and I'm having a hard time understanding the problem here. I'm
running OpenBSD 7.
I'll run lighthttpd if I have to.
The students clone their own repo to their own machine and open
a checkouyt.
You have a typo here. The letters yt are neighors in an american
keyboard. But yt is also present in your name.
Kees Nuyt <k.nuyt@nospam.demon.nl> writes:
On Wed, 07 Sep 2022 16:03:09 -0300, Meredith Montgomery
<mmontgomery@levado.to> wrote:
[...]
I'm running nginx. So I'm gonna have to learn how to run at least one
CGI and I'm having a hard time understanding the problem here. I'm
running OpenBSD 7.
I think you are stuck because you tried a mix of fastcgi and plain
cgi. The simple CGI script I showed will not work for FastCGI or
SCGI.
I got puzzled there, but I'll let that one go and try your next
suggestions.
As an alternative, you could look into one of the many "revision control" >systems. I'm thinking specifically of git or cvs, both of which can handle >networked commits.
In theory, your students would "commit" their homework to your repository, >and you could then "pull" the homework out to be evaluated. Such revision >control systems include user privilege management that you may be able
to use to limit a student's ability to, for instance, "commit" to another >student's homework, or "pull" another student's homework for copying.
On Wed, 07 Sep 2022 16:03:09 -0300, Meredith Montgomery <mmontgomery@levado.to> wrote:
[...]
I'm running nginx. So I'm gonna have to learn how to run at least one
CGI and I'm having a hard time understanding the problem here. I'm
running OpenBSD 7.
I think you are stuck because you tried a mix of fastcgi and plain
cgi. The simple CGI script I showed will not work for FastCGI or
SCGI.
Not running nginx myself I can only refer to this matrix : https://www.fossil-scm.org/home/doc/trunk/www/server/#matrix
[...]
I'll run lighthttpd if I have to.
For small scale sites lighttpd is pretty good.
Another, even lighter alternative is althttpd.
https://sqlite.org/althttpd/
(A single C-source you can compile yourself)
[...]
The students clone their own repo to their own machine and open
a checkouyt.
You have a typo here. The letters yt are neighors in an american
keyboard. But yt is also present in your name.
Yeah, I often fat-finger t and y and u and y :D
Here, I meant to type checkout.
I can't run a MTA in this server because e-mail ports are blocked by the
ISP. I can pay more and get that out of the way, though.
But it seems you mean you had a script that would look into an inbox and >extract homework from messages. But my mail is not in the UNIX system.
Meredith Montgomery <mmontgomery@levado.to> wrote:
I can't run a MTA in this server because e-mail ports are blocked by the >>ISP. I can pay more and get that out of the way, though.
Your ISP sure has an awful lot of spammers using their service, though.
Maybe they only allow outgoing mail and not incoming? Perhaps you should
get a competent ISP.
But it seems you mean you had a script that would look into an inbox and >>extract homework from messages. But my mail is not in the UNIX system.
There's your problem, right there.
--scott
Meredith Montgomery <mmontgomery@levado.to> wrote:
Kees Nuyt <k.nuyt@nospam.demon.nl> writes:
On Wed, 07 Sep 2022 16:03:09 -0300, Meredith Montgomery
<mmontgomery@levado.to> wrote:
[...]
I'm running nginx. So I'm gonna have to learn how to run at least one >>>> CGI and I'm having a hard time understanding the problem here. I'm
running OpenBSD 7.
I think you are stuck because you tried a mix of fastcgi and plain
cgi. The simple CGI script I showed will not work for FastCGI or
SCGI.
I got puzzled there, but I'll let that one go and try your next
suggestions.
FastCGI and SCGI are ways of making basic CGI 'faster' in a high load environment.
Unless all your students all try to upload exactly one minute before
any deadline, you likely don't need the performance boost from either.
And, even then, unless you have enough students or a very underpowered system, the load likely won't cause any harm.
Look into how to enable plain, basic, standard, CGI with nginx. There
is likely some way to do so (I don't run nginx, so I can't provide any
advice as to 'what' to do).
Lew Pitcher <lew.pitcher@digitalfreehold.ca> wrote:
As an alternative, you could look into one of the many "revision control" >>systems. I'm thinking specifically of git or cvs, both of which can handle >>networked commits.
In theory, your students would "commit" their homework to your repository, >>and you could then "pull" the homework out to be evaluated. Such revision >>control systems include user privilege management that you may be able
to use to limit a student's ability to, for instance, "commit" to another >>student's homework, or "pull" another student's homework for copying.
Not only that, but the student can pull a framework and a datafile,
write the code and push that back. Permissions will keep them from
pushing a new datafile to screw up other students.
This is by far the best idea so far, and part of what makes it so good is that it's bidirectional and any changes can be seen and rolled back. But another part of why it's so good is that in the real world students will
find themselves having to work this way so they might as well get used to
it as quickly as possible.
If it were me I would recommend svn or git. They both are very good for teaching the basic source code control concepts, but unfortunately they
use totally different language in their documentation to mean the same things. This means moving from one to the other can be confusing even
though in the end they really do the same things underneath.
--scott
Kees Nuyt <k.nuyt@nospam.demon.nl> writes:
On Wed, 07 Sep 2022 16:03:09 -0300, Meredith Montgomery
<mmontgomery@levado.to> wrote:
[...]
I'm running nginx. So I'm gonna have to learn how to run at least one
CGI and I'm having a hard time understanding the problem here. I'm
running OpenBSD 7.
I think you are stuck because you tried a mix of fastcgi and plain
cgi. The simple CGI script I showed will not work for FastCGI or
SCGI.
I got puzzled there, but I'll let that one go and try your next
suggestions.
Not running nginx myself I can only refer to this matrix :
https://www.fossil-scm.org/home/doc/trunk/www/server/#matrix
[...]
I'll run lighthttpd if I have to.
For small scale sites lighttpd is pretty good.
Another, even lighter alternative is althttpd.
https://sqlite.org/althttpd/
(A single C-source you can compile yourself)
Sounds good. But I would not like to replace nginx completely because
it answers many other hostnames. I'm thinking I can use nginx as a
proxy to althttpd --- just so I don't have to ask users to memorize port numbers in their web addresses. I'll try that. (I like the
single-source I can compile myself.)
Meredith Montgomery <mmontgomery@levado.to> writes:
Kees Nuyt <k.nuyt@nospam.demon.nl> writes:
On Wed, 07 Sep 2022 16:03:09 -0300, Meredith Montgomery
<mmontgomery@levado.to> wrote:
[...]
I'm running nginx. So I'm gonna have to learn how to run at least one >>>> CGI and I'm having a hard time understanding the problem here. I'm
running OpenBSD 7.
I think you are stuck because you tried a mix of fastcgi and plain
cgi. The simple CGI script I showed will not work for FastCGI or
SCGI.
I got puzzled there, but I'll let that one go and try your next
suggestions.
Not running nginx myself I can only refer to this matrix :
https://www.fossil-scm.org/home/doc/trunk/www/server/#matrix
[...]
I'll run lighthttpd if I have to.
For small scale sites lighttpd is pretty good.
Another, even lighter alternative is althttpd.
https://sqlite.org/althttpd/
(A single C-source you can compile yourself)
Sounds good. But I would not like to replace nginx completely because
it answers many other hostnames. I'm thinking I can use nginx as a
proxy to althttpd --- just so I don't have to ask users to memorize port
numbers in their web addresses. I'll try that. (I like the
single-source I can compile myself.)
I have a few small victories. At first glance, althttpd has a weak
error reporting. It silently refuses to do some impossible things.
With some trial and error, I managed to see what it wanted.
I asked nginx to be a proxy for althttpd.
What's the new obstacle? I must find a way to tell fossil that the base
URL is another one. It is trying to load CSS from
http://localhost:1234. That's wrong. It should try to load it from https:/my.host.name/style.css. Fossil's /server/ command accepts the
option --baseurl URL, which I've used before when I was running fossil's server stand-alone. Now I must somehow instruct fossil's CGI script. I wonder how.
I'm well used to git, but fossil seems rather simple to use, too, and it comes ready with this nice web interface too --- which I believe will be
very useful for students to understand the commands they type.
On Wed, 07 Sep 2022 20:59:17 -0300, Meredith Montgomery <mmontgomery@levado.to> wrote:
I'm well used to git, but fossil seems rather simple to use, too, and it
comes ready with this nice web interface too --- which I believe will be
very useful for students to understand the commands they type.
And when you need it, fossil includes ticketing, a forum and a
developer chat room. All in that same one executable.
For projects like this, I would add one fossil repository for a
forum for all students, a forum per student would be a bit
silly.
I'm glad you are making progress, nginx can be a tough cookie.
Kees Nuyt <k.nuyt@nospam.demon.nl> writes:
On Wed, 07 Sep 2022 20:59:17 -0300, Meredith Montgomery
<mmontgomery@levado.to> wrote:
I'm well used to git, but fossil seems rather simple to use, too, and it >>> comes ready with this nice web interface too --- which I believe will be >>> very useful for students to understand the commands they type.
And when you need it, fossil includes ticketing, a forum and a
developer chat room. All in that same one executable.
Yeah, in fact it even seems like too much. <sarcasm>Let's write an
email to the author (not open a ticket!) asking him to, please,
*enhance* the software with an embedded NNTP server (and client, please) because *we personally believe* that NNTP is clearly the
future.</sarcasm>
Meredith Montgomery <mmontgomery@levado.to> wrote:
Kees Nuyt <k.nuyt@nospam.demon.nl> writes:
On Wed, 07 Sep 2022 20:59:17 -0300, Meredith Montgomery
<mmontgomery@levado.to> wrote:
I'm well used to git, but fossil seems rather simple to use, too, and it >>>> comes ready with this nice web interface too --- which I believe will be >>>> very useful for students to understand the commands they type.
And when you need it, fossil includes ticketing, a forum and a
developer chat room. All in that same one executable.
Yeah, in fact it even seems like too much. <sarcasm>Let's write an
email to the author (not open a ticket!) asking him to, please,
*enhance* the software with an embedded NNTP server (and client, please)
because *we personally believe* that NNTP is clearly the
future.</sarcasm>
The author of Fossil is also the author of SQLite.
But in any case, if you consider Fossil's intended use case:
distributed software development by a team of open source/free software developers, most of those projects are going to want one or more of:
Source control, trouble/bug tickets, a website, a forum, etc...
Fossil is simply combining, into a single module, most of the common
items that "distributed open source development teams" will want,
obviating the need to deploy each individually and separately.
So the 'combination', looked at in the light of the intended use, has
some logic behind it. It is an "all in one, non-proprietary,
solution" for distributed software development.
I'll write again. (More later!)
Now I have full privileges and the user is a reader /union/ developer.
Finally, I give it a nice random project name as a warm welcome to the student.
fossil sqlite -R $r \
"replace into config (name, value, mtime) \
values ('project-name', 'Nice Name', now());"
That's it. Should I close it now --- because I opened it? I'm not
sure. I'm not quite sure what open or close really do.
I'm thiking about creating UNIX accounts merely for students to upload
their homework through scp. [snip]
I'm thiking about creating UNIX accounts merely for students to upload
their homework through scp. But I have not solved all what I want to
solve. (Such students are expected to be technical enough to use scp.)
I'm thinking of scp because it's solid enough. It's simple. It works.
I end up having all of the work centralized in a UNIX system. I get
dates et cetera.
On Thu, 08 Sep 2022 19:20:06 -0300, Meredith Montgomery <mmontgomery@levado.to> wrote:
Now I have full privileges and the user is a reader /union/ developer.
If you plan to ever use "unversioned files", the students and
you also need "y" permission.
Finally, I give it a nice random project name as a warm welcome to the
student.
fossil sqlite -R $r \
"replace into config (name, value, mtime) \
values ('project-name', 'Nice Name', now());"
Great! Congratulations. You mastered fossil within a week more
than I did in over 3 months :D
That's it. Should I close it now --- because I opened it? I'm not
sure. I'm not quite sure what open or close really do.
"open' means the directory is considered a checkout of the
repository. "closed" means the relation between repository and
checkout is removed.
That relation is maintained in a database called ".fslckout" at
the root of the checkout directory tree.
The repository itself also contains pointers to associated checkouts.
Use "fossil all info" to verify.
If you plan to checkout the students work (new version) after it
arrives, you have to leave it open.
If you collect the students work with something like
"fossil cat ... -R path/to/repo -r VERSION", you can close it
Sudents obviously need a local clone of their personal
repository on their own machine, and they can only "fossil add"
new files and checkin with "fossil commit -m 'description' "
when the repository is opened in a checkout directory on their
machine. They will automatically have all permissions on their
local repo.
I hope this answers your question.
I won't use unversioned files. (I won't have files changing very often,
for instance, if I understand what unversioned files are for.)
... I'm on Win32, so ``fossil all info''
seems to read %LOCALAPPDATA%'s file _fossil. I'd like to keep this file
in a certain specific place --- for portably carrying it over with me wherever I go. I might need to understand some environment variables?
When I clone a repository, I see
config-db: C:/Users/x/AppData/Local/_fossil
when I ``fossil status''. I'd also like to keep this _fossil somewhere specific so I can carry it with me wherever I go with my pendrive.
... Let me ask --- what are the steps and knowledge
required on the student's part? I think they need to
clone
add
commit
and eventually
update.
They need to update to find out if changes were made to their repository
--- I'll tell their grades by making changes to their own files, which
will be good to allow us to give them a very precise feedback.
On Tue, 13 Sep 2022 00:10:10 -0300, Meredith Montgomery <mmontgomery@levado.to> wrote:
... I'm on Win32, so ``fossil all info''
seems to read %LOCALAPPDATA%'s file _fossil. I'd like to keep this file
in a certain specific place --- for portably carrying it over with me
wherever I go. I might need to understand some environment variables?
When I clone a repository, I see
config-db: C:/Users/x/AppData/Local/_fossil
when I ``fossil status''. I'd also like to keep this _fossil somewhere
specific so I can carry it with me wherever I go with my pendrive.
Yes, on Windows, fossil looks for "_fossil"
in these directories, in order:
FOSSIL_HOME
LOCALAPPDATA
APPDATA
USERPROFILE
HOMEDRIVE HOMEPATH
The first in this list that has a value decides.
So, set environment variable FOSSIL_HOME and you're done.
... Let me ask --- what are the steps and knowledge
required on the student's part? I think they need to
clone
add
commit
and eventually
update.
They need to update to find out if changes were made to their repository
--- I'll tell their grades by making changes to their own files, which
will be good to allow us to give them a very precise feedback.
Nice.
Also useful :
changes
info
ls
extras
diff
timeline -v
sync (if autosync is off)
rm (delete)
mv (rename)
More questions soon!
Thank you so much!
Bruce Horrocks <07.013@scorecrow.com> writes:
On 01/09/2022 02:07, Meredith Montgomery wrote:
I'm thiking about creating UNIX accounts merely for students to upload
their homework through scp.
[...]
The suggestions to have your own Unix server receive email are all
well and good but setting it up *and securing it* is a PITA.
Good point.
An alternative is to use Amazon's SES (Simple Email Service)
<https://aws.amazon.com/ses/details/>
Your volumes are probably low enough that the free tier will cover
everything, and it's easy to have a script run on receipt of an
email. Anti-virus scanning of the attachments is automatic.
That's interesting. I watched a video in which they set up an S3 bucket
and the mail is stored there. I guess I could then write a program to download all files and extract attachments. I'd have to learn to use
the S3 API. This seems simple enough, elegant enough.
On 04/09/2022 21:41, Meredith Montgomery wrote:
Bruce Horrocks <07.013@scorecrow.com> writes:
On 01/09/2022 02:07, Meredith Montgomery wrote:[...]
I'm thiking about creating UNIX accounts merely for students to upload >>>> their homework through scp.
The suggestions to have your own Unix server receive email are allGood point.
well and good but setting it up *and securing it* is a PITA.
An alternative is to use Amazon's SES (Simple Email Service)That's interesting. I watched a video in which they set up an S3
<https://aws.amazon.com/ses/details/>
Your volumes are probably low enough that the free tier will cover
everything, and it's easy to have a script run on receipt of an
email. Anti-virus scanning of the attachments is automatic.
bucket
and the mail is stored there. I guess I could then write a program to
download all files and extract attachments. I'd have to learn to use
the S3 API. This seems simple enough, elegant enough.
No need to learn the S3 API if you don't want to as an S3 bucket can
be mounted as a filesystem.
<https://cloud.netapp.com/blog/amazon-s3-as-a-file-system>
On Tue, 13 Sep 2022 16:48:38 -0300, Meredith Montgomery <mmontgomery@levado.to> wrote:
More questions soon!
No problem.
Thank you so much!
My pleasure.
Next question. It seems fossil doesn't like my certificate, but it's
a Let's-Encrypt one and Google Chrome and Firefox are happy with it.
--8<---------------cut here---------------start------------->8---
Unable to verify SSL cert from fossil.heaven.mil
subject: CN = fossil.heaven.mil
issuer: C = US, O = Let's Encrypt, CN = R3
notBefore: 2022-09-08 01:15:14 UTC
notAfter: 2022-12-07 01:15:13 UTC
sha256: ab15f1a43a7ebbd009e5c891177c57bce4dfbae7d9968eeed844aefe2bb5d031 accept this cert and continue (y/N/fingerprint)? Y
remember this exception (y/N)?
--8<---------------cut here---------------end--------------->8---
Any idea why? Thank you!
Most likely is wherever fossil is looking for root certificates, it
does not have the lets-encrypt root certificate in that store.
With that said, I do not know /where/ it might be looking to find root
certs, so you'll have to see if the docs give you any clues on that
one.
You can download a copy of the root cert from the Lets-Encrypt website somewhere (I don't remember where, so go hunting for that too).
On Fri, 16 Sep 2022 01:36:16 -0000 (UTC), Rich
<rich@example.invalid> wrote:
Most likely is wherever fossil is looking for root certificates, it
does not have the lets-encrypt root certificate in that store.
With that said, I do not know /where/ it might be looking to find root
certs, so you'll have to see if the docs give you any clues on that
one.
You can download a copy of the root cert from the Lets-Encrypt website
somewhere (I don't remember where, so go hunting for that too).
Very likely indeed. The fossil client can be configured where to
look for root certificates, if they are not in "some standard
location".
See:
fossil help ssl-ca-location
Thank you. It's not worth it to set this up because that's a client
thing.
Fossil saves the identity of the certificate in its config-db,
so I'd have to somehow manage to do that in every client workstation,
but repository users may decide to clone their repository anywhere ---
when they'd see the certificate not being identified. Not the end of
the world.
kludge@panix.com (Scott Dorsey) writes:
Meredith Montgomery <mmontgomery@levado.to> wrote:
I can't run a MTA in this server because e-mail ports are blocked by the >>>ISP. I can pay more and get that out of the way, though.
Your ISP sure has an awful lot of spammers using their service, though.
Maybe they only allow outgoing mail and not incoming? Perhaps you should
get a competent ISP.
I think they think their price is really low and spammers would buy
these servers just to send out mail. I've no idea. It's what it is. I >don't mind paying more for a nice server. But we gotta do one thing at
a time.
Meredith Montgomery <mmontgomery@levado.to> wrote:
kludge@panix.com (Scott Dorsey) writes:
Meredith Montgomery <mmontgomery@levado.to> wrote:
I can't run a MTA in this server because e-mail ports are blocked by the >>>>ISP. I can pay more and get that out of the way, though.
Your ISP sure has an awful lot of spammers using their service, though.
Maybe they only allow outgoing mail and not incoming? Perhaps you should >>> get a competent ISP.
I think they think their price is really low and spammers would buy
these servers just to send out mail. I've no idea. It's what it is. I >>don't mind paying more for a nice server. But we gotta do one thing at
a time.
1and1 and hetzner are the two major spam sources in Europe. Some months
one is on the top of the spam statistic list, other months it's the other.
If you attempt to contact tech support at either one you will find it difficult to talk to someone who knows something about computers.
These two facts are likely related.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 388 |
Nodes: | 16 (2 / 14) |
Uptime: | 05:23:09 |
Calls: | 8,220 |
Calls today: | 18 |
Files: | 13,122 |
Messages: | 5,872,261 |
Posted today: | 1 |