| |
May
|
| |
S |
M |
T |
W |
T |
F |
S |
| |
|
1 |
2 |
3 |
4 |
5 |
| |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
| |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
| |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
| 1 |
27 |
28 |
29 |
30 |
31 |
|
| |
| |
June
|
| |
S |
M |
T |
W |
T |
F |
S |
| 1 |
|
1 |
2 |
| 2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
| 3 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
| 4 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
| 5 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
| |
| |
July
|
| |
S |
M |
T |
W |
T |
F |
S |
| 6 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
| 7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
| 8 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
| 9 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
| 10 |
29 |
30 |
31 |
|
| |
| |
August
|
| |
S |
M |
T |
W |
T |
F |
S |
| 10 |
|
1 |
2 |
3 |
4 |
| |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
| |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
| |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
| |
26 |
27 |
28 |
29 |
30 |
31 |
|
|
Hello! I'm Steven Spain, an undergraduate student majoring in Management Information Services. I was placed at Steward Obeservatory where I built a database and web front-end for the Center for Astronomical Adaptive Optics. This page is the week-by-week trace of my progress through the summer.
Contact me! My e-mail address is sspain@as.arizona.edu. I'll have an updated office location when I return to Steward Observatory at the beginning of the fall semester.
|
This week proved a learning experience for me. I've done server-side
web programming in VBScript and JScript using Microsoft's Active
Server Pages technologies. I taught myself rudimentary Perl skills
and wrote a search engine that scours all code I've written for the
keyword or phrase I want to find. I also had to become very
resourceful and learn a little bit about Unix. Granted, I can only do
a few things at a Unix prompt, but I'm learning more daily and
discovering new things through interaction with others here at Steward
and through web-based research of my own. I will need a few additional
tools to do serious web development, and I require the spec for the
database, but I don't think I'll have any trouble completing a system
soon.
|
|
This week continued my education in Perl: The beginnings of the
project specification did not arrive until Thursday, leaving me all of
Monday, Tuesday, and Wednesday to try to cement my Perl skills. I
worked extensively with regular expressions, and also worked on
hashes and arrays. While the Perl interpreter was written in C and
Perl syntax is C-like, certain constructs prove a bit confusing to
somebody who's as accustomed to the rigorous structure of C as I am.
Nevertheless, I did some powerful things with what I know thus far.
With the arrival of my specification, I have begun the development of
the project: I began by creating a visual design that is pleasing to
the eyes, clean, lightweight, and efficient. I based my design on the
CAAO homepage for consistency; however, I added a few of my own
touches to increase visual interest and place more information on the
page than would have otherwise been there. I've been in contact with
the webmaster at the Physics department, so I know what I can and
cannot do with my personal homepage. I will be completing that as soon
as possible, as well.
|
|
I spent a great deal of time this week configuring my workstation as a
web server. I added Internet Information Services as part of the
Windows NT Option Pack, the ActivePerl scripting engine, and the MySQL
database server to my system. Because the final server for the project
will be running Perl and MySQL, I expect to be able to simply recreate
the database on the final server and copy my code without (major)
modification. My time investment in installation and configuration was
significant, however I fully expect to save time in the long run. I've
been able to interface to the database from my pages, and SQL is
quickly coming back to me. I do not yet know how I'll be securing the
database in its final incarnation. In an attempt to experiment with
security, I somehow made the site so secure that it can only be
accessed from my workstation with my username and password. I myself
cannot log on remotely! That's what I call security! The new server
should be configured and ready by the end of next week, and I hope to
have most of the code complete by then. I am researching the Internet
Request For Comment archives to learn about the MIME format so that I
can handle uploaded files. I expect that to be a lengthy script; thus,
I will most likely implement it after I have a working site.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Don't forget! Wednesday, 4Jul2001 is Independence day! Do you know the
proper way to fly the flag? Learn this and more at the American
Legion's Flag Code page,
http://www.legion.org/flagcode.htm.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Beta 1 is complete! I created a statement of compliance to compare the work
I've completed to the spec presented to me, and I have most of the
functionality prepared. The most crucial points that remain to be
implemented are the security, which will be contingent upon the final
server configuration, and the image upload, which will require a great
deal of coding. A development meeting and some research have led me to
believe that PHP might be better for this project than Perl: PHP code is
embedded in HTML whereas HTML is embedded in Perl, and PHP has image upload
handling built into the language. The second revision of the package may
mean a port to PHP. Unfortunately, that means learning another language in
a short period of time; fortunately, PHP is very Perl-like. Future
revisions may include Microsoft's Active Channel technology and, possibly,
a new visual design that I hope to make cleaner and more efficient.
|
|
The conversion to PHP has begun. I took time this week to reconfigure
my local server for PHP development and began converting some of the
code I'd written in Perl. Thus far I've converted the entire class
library I'd written plus the index page for the system. I've enhanced
some functionality and will be adding new functionality very soon. Perl
is a great language, but designed to do both web scripting and other
scripting tasks on the local system. PHP, on the other hand, was
designed with the web in mind, and thus presents a richer feature set
for web development. I'm pleased with what I'll be able to do just by
switching languages. Unfortunately, the PHP documentation is sparse in
comparison to the documentation for Perl, and there are a few calls
that I'm not sure will port easily from Win32 to Linux. This will take
research. I hope to complete the port of existing code next week and
be left with enough time to begin work on securing the site before it
goes live.
|
The port to PHP is complete. I've greatly enhanced the class library
that each page in the site uses, and I've given the site an entirely
new visual design. I've reexamined the initial specification for the
project and have now found that I am in at least partial compliance
with all of the points of the specification and have added features
and functionality that will allow the database to scale nicely. I have
only to enhance the way queries against the database are displayed so
that they can easily be printed and to finalize security before I am in
full compliance with the specification. The query modifications should
not be a lengthy process. After reaching full compliance, I will check
each line of code and look for ways to streamline the site. I will go
through the debugging process once more, which should leave me ready to
implement the final security scheme and take the site live on its new
server.
Note: This marks the first
version of this page to be in XHTML, not HTML. Click the "Valid
XHTML" icon below for more information.
|
|
Security works! I do not have the security scheme implemented on the
visible version of the site at this moment as the code is messy and in
need of refinement, but the security system does work. I've been
informed that I can expect all users to have JavaScript installed on
their systems, so I've got the site set to automatically encrypt the
passwords before sending them; thus, a plain-text password will never
be sent over the wire during the login process. Instead, the user
receives a salt value, prepends that to an MD5 hash of the password,
and then does an MD5 hash of that mess. The user's password is stored
in the database as an MD5 hash, so the actual password does not exist
anywhere but in the user's mind. The database does the same hashing
process and compares the results. If the two match, the user is granted
access. Because of PHP's easy session management functions, I have to
work harder to get the password encoded than I do to get the user
logged in for the entire session. This is a big breakthrough and one
with which I'm most pleased.
|
|
In a triumph of great timing, I went live with the website this week.
The site functions on the new server and is ready for primetime. I have
successfully completed the project placed before me, and have been able
to add many additional features to it. From my beginning tinkerings with
Perl to my efforts to port to PHP, I've worked hard on the site, and I
believe I've done a good job with it. I'm very pleased with the website,
and especially proud of the security scheme: If a browser cannot encode
the user's password, the password simply is never sent! That's a great
feature! I must say that I have enjoyed working at Steward Observatory,
and I've been asked to return with the beginning of the fall semester. I
eagerly anticipate returning to work and the new projects I will take
charge of. I'd like to say thank you to the mentors and past
participants of the Summer Bridge Program and to all the researchers who
brought us into their labs; I've enjoyed these ten weeks and am grateful
for the opportunity to take a position in a research environment.
|
|