Closed GoogleCodeExporter closed 9 years ago
Yeah, I am about to release 2.9.
Unfortunately, I am unable to test it properly under Windows. I am thinking on
how can I set up good regression test.
Original comment by valenok
on 27 Aug 2010 at 9:17
I'm not sure what a good regression test should cover. Might be too complicated
for me to do if every feature must be tested. But you can give me an advance
copy of 2.9 and at least I can check that it no longer crashes.
I did some editing of the two pages on Wikipedia that mention Mongoose. The
article we wrote on Mongoose has been deleted, so I added references mentioning
this and giving a link to Google Code.
All information allowing easy comparison of the various small webservers has
been deleted from the two comparison articles. I proposed a solution, but it
may or may not be accepted by other editors.
The article that was deleted was well-written; it listed all the advantages of
using Mongoose. But that's how it goes at WP: many really good articles are
deleted all the time. If we get a magazine review of Mongoose, a software
award, an article describing how it is being used in a real project, or
something similar, we can request restoration of the article based on the
"reliable source" and "notability" policies.
Original comment by googl...@springtimesoftware.com
on 27 Aug 2010 at 9:42
[deleted comment]
[deleted comment]
By the way, do you have any ideas about how two local webservers (Mongoose and
Apache) can both listen on the same port (80) for local requests but use
different loopback or LAN IP addresses so that web browsers can select them
easily, without having to specify a port number? For example, I'd like the
browser address http://localhost to use Apache to show the Apache root page,
and http://mongoose to use Mongoose to show the Mongoose root page. I almost
have it working (Mongoose works but not Apache), but I'm missing some key
insight. I'm using the HOSTS file to map localhost to 127.0.0.1 and mongoose to
127.1.1.1.
There are lots of uses for this, such as testing both servers using complicated
CGI and other features, or for testing while porting an Intranet application
from one server to another (sometimes there is a big reliance on advanced
Apache or IIS features that can be eliminated so the app works on Mongoose).
Original comment by googl...@springtimesoftware.com
on 27 Aug 2010 at 9:54
You can try out today's binary at
http://silversoft.net/~devnull/tmp/mongoose.27Aug2010.exe
Original comment by valenok
on 27 Aug 2010 at 11:25
Thanks for editing on Wikipedia!
I guess, it would be worth mentioning a LinuxJournal article, and give a
reference.
Probably that sort of things are required as "reliable sources".
Original comment by valenok
on 27 Aug 2010 at 11:29
Yes, it's worth a try as soon as we have at least three articles in three
journals. One is not enough to prove 'notability'. Wikipedia is really weird.
Original comment by googl...@springtimesoftware.com
on 27 Aug 2010 at 11:35
When I run this version of mongoose.exe, it immediately closes. I'm not sure
how my environment could be that different from yours. I didn't (and still
don't) have this problem with 2.8, so there must be a problem with this
version. I don't know how to debug standalone executables, sorry.
Original comment by googl...@springtimesoftware.com
on 28 Aug 2010 at 1:20
I think I got both Mongoose and Apache running on one machine, sharing port 80
for simplicity in Web addresses. Here's how to do it:
In Apache config file (Apache/conf/httpd.conf):
Listen 127.0.0.1:80
ServerName localhost
UseCanonicalName On
In Mongoose config file:
ports 80
acl -0.0.0.0/0,+127.1.1.1
cgi_env SERVER_NAME=mongoose
In HOSTS file (default local DNS):
127.0.0.1 localhost
127.1.1.1 mongoose
After this gets tested (http://mongoose/ shows the Mongoose root page and
http://localhost/ shows the Apache root page), it could be added to the wiki or
the Mongoose manual. And this example needs to be modified to work under Unix
and other environments.
Original comment by googl...@springtimesoftware.com
on 28 Aug 2010 at 2:52
I've been running Mongoose off and on using your special build for the last day
or two, and it hasn't crashed. I would say, go ahead and release it. Crashes
won't be good publicity for Mongoose, which is otherwise very well debugged.
It's such a relief not to have to install Apache (which, although having a
smaller kernel than Mongoose, has a total directory size of around 10 MB, and
is much more difficult to configure) on my tiny computer and yet to continue my
Web programming work there. Thanks, Sergey!
Original comment by googl...@springtimesoftware.com
on 29 Aug 2010 at 9:31
Welcome. I am about to release it, just cleaning up bits and pieces.
Sometimes this week, hopefully.
I was thinking quite hard about the best backward-compatible API, and imagine
what? I've changed the API, together with the configuration option names. I
made them bit longer, but more descriptive. Like, -root option became
-document_root, -ports option became -listening_ports, etcetera.
Also, embedding API has also changed, which probably doesn't concern you much.
I hope that the naming change would not be very frustrating (I understand it is
always annoying).
Original comment by valenok
on 29 Aug 2010 at 10:15
[deleted comment]
Agree with that.
The reason for longer, more descriptive names comes from an embedded interface.
Maybe for standalone binary, the right way is to have one-letter options.
E.g. "mongoose -r /var/www -p 8080". I'll think about that.
Original comment by valenok
on 30 Aug 2010 at 8:14
I've just pushed a change that allows short option names in mongoose:
mongoose -r /var/www -p 8080
Original comment by valenok
on 30 Aug 2010 at 12:12
[deleted comment]
You said, "The reason for longer, more descriptive names comes from an embedded
interface." But that doesn't make sense to me. People who create embedded
applications know what they are doing, so they neither need nor want longer
names.
Am I misunderstanding something?
Considering option names in general, one could have "r", "root", or
"root_document". Here are my thoughts:
* The ideal length and "feel" of an option name depends not on "the right way"
but on specific users. There will be no general agreement which is best.
* Personally, I don't care, since I only want to set up the configuration once.
I think that might be true of the majority of advanced users.
* However, newcomers probably would benefit from a tradeoff. "r" is too short
(example: Unix short command names are difficult for newcomers to Unix); "root"
is nice because it is an English word; "root_document" is long without being
any more helpful than "root"--the only way to understand config directives is
to read the Help.
* I believe that config directives don't need multiple lengths (both "r" and
"root", for example). It produces confusion rather than supporting personal
preference.
In summary: newcomers appreciate a short word in their native language;
advanced users, including embedded systems programmers, don't care about length
or "feel" of directives, so long as they don't change.
I understand your desire to "get it right" early in the project, but there will
always be the possibility you will change your mind about directive/option
names. For that reason, and because it makes work for programmers when names
change, I believe that keeping the names the same forever is more useful than
picking the right names.
Of course, if Mongoose were in Alpha test or before, this would not apply,
since there would be no real users. But it's really in Beta test (or later)
now, so my last paragraph applies.
Original comment by googl...@springtimesoftware.com
on 30 Aug 2010 at 2:55
Short names are for command line use.
Long names are for config files and for embedded use.
Why config files and embedded code need long names? For readability. If a
person reads Mongoose config file, I'd rather expect him/her to see
"listening_ports 8080,8081"
rather than
"p 8080,8081"
Mongoose will support both forms.
Original comment by valenok
on 30 Aug 2010 at 2:59
That makes good sense.
Original comment by googl...@springtimesoftware.com
on 30 Aug 2010 at 7:53
Issue 166 has been merged into this issue.
Original comment by valenok
on 31 Aug 2010 at 6:48
Please see issue 166, which apparently has NOT been merged correctly, for
additional information.
I am using mongoose for real development on Windows, so I need a version that
works.
Original comment by googl...@springtimesoftware.com
on 31 Aug 2010 at 7:00
Update Collision
What happened?
While you were viewing or updating issue 166, another user submitted an update
to it. That user's update has already taken effect. Your update cannot be saved
because your changes could overwrite the other user's changes.
Note: if you have been viewing and updating issue 166 in multiple browser
windows or tabs, it is possible that the "other user" is actually yourself.
Your options:
* Start over: view the up-to-date issue 166 and consider making your changes again.
----
I'm not sure you can see my latest suggestions. Probably it doesn't matter. I'm
sure you will release an updated Manual when you have time. Until then, I'll
guess at the new config file format.
Original comment by googl...@springtimesoftware.com
on 1 Sep 2010 at 1:32
1. I've looked in the latest Manual (2.8) and I cannot find any information
about error handling. When I open a nonexistent page, I just get a fixed 404
message. I want to provide my own message, which will tell me the path of the
page.
2. I want to open all files via PHP, regardless of file extension or contents.
This is easy to do in Apache .htaccess files, but I'm not sure what to do in
mongoose config files.
3. Due to time pressure, I've read through all the 2.8 code quickly, but
haven't had the time to figure out how to run Visual C++ version 6 (not VC
Express, because I don't want to install the giant .NET CLR on either of my
computers) with a makefile and the right libraries. If you know how, please
just tell me. With the help of the VC IDE, I might make more progress in
understanding how mongoose works so I can add features like 1 and 2 above, if
they're missing.
Original comment by googl...@springtimesoftware.com
on 1 Sep 2010 at 1:44
I experimented and found out how to make a file with no extension be handled by
an interpreter:
In the config file, put
cgi_interp php-cgi.exe
cgi_ext php,,
This makes php the only interpreter, then makes .php and . the cgi extensions.
I didn't try ",," but I bet that would work, too.
Original comment by googl...@springtimesoftware.com
on 1 Sep 2010 at 4:00
Original comment by valenok
on 3 Sep 2010 at 4:02
Original issue reported on code.google.com by
googl...@springtimesoftware.com
on 27 Aug 2010 at 2:23