Software Engineering - my life and passion
I have a
diploma which says I am a certified Java Developer.
Table of Contents
I have some thoughts on the Year
2000 Crisis. There is another crisis brewing: the population
explosion. See http://www.esmerel.com/
for more details.
Why not Microsoft?
I am unhappy with Microsoft
and their design approach, and I have written a manifesto
on Windows/NT and software reliability. With the advent of Windows/2000,
Windows has improved remarkably, but has it improved enough to be a competitive
threat with Linux? See the operating
system comparison page for details.
But don't take my word for it. In spite of the fact that Microsoft
is one of the largest advertisers in the world and despite the fact of
their near virtual monopoly on the OS for desktop computers, in the webserver
world and in the server world in general, they aren't that great.
See http://www.netcraft.com/Survey/
for a survey of web browsers,
http://electriclichen.com/linux/srom.html for one automated technique
for counting operating systems, and http://www.hzo.cubenet.de/ioscount/
for a count of operating systems.
And while I am on the subject, I suggest you take a moment to view
the Digital
Equipment Co. memorial web site. Yes, DEC had clusters back in
the early 1980s, about the same time Intel was announcing plans to build
the 8088. Yes, DEC had virtual memory in the early 1970s on minicomputers.
Yes, DEC had timesharing back when Bill Gates was in preschool. Alas,
DEC is no more.
IIS sucks
IIS is Microsoft's web server. It only runs on Windows/NT, Windows/2000
and Windows/XP. It is fatally flawed, because it runs fully privileged.
Thus, any coding error which creates a vulnerability, such as a buffer
overflow, creates the possibility of corrupting the entire system.
By way of contrast, Apache, IIS's competition, runs on any UNIX like
system, including but not limited to Linux, the BSDs, Solaris, HP-UX, etc.
Apache runs with privilege only long enough to grab port 80, and then drops
to the context of an account which has no privilege. So even if Apache
were compromised somehow, the extent of the damage is limited.
But don't take my word for it. Look at the Ziff-Davis
story on Gartner or the story
in the Register which quote this
article by the Gartner Group . However, Microsoft seems to feel
that this is all overblown, according
to a CNN story. Gartner advocates completely rewriting
IIS. Joel Spolsky makes some
compelling arguments why rewriting IIS is a bad idea. What is
the right way to think about this?
What OS is that site running?
Virus Hoaxes
So many people have written me about E-mail hoaxes, E-mail viruses,
and other E-mail scams that I have written a
page with a response to it.
System Administration Resources
An essay on How to report vulnerabilities on other people's computing systems.
php resources
I have examples of php files either at the
test location or the production
location; or they might also be here.
The php tutorial from the people who
wrote it, written, of course, in PHP.
There is a tutorial on MySQL and PHP called MySQL
& PHP. I have a local php page where
I am struggling to learn php.
I found a good Structured
Query Language (SQL) Tutorial.
HTML Resources
Java Resources.
I am taking a Java
Class from the University of Washington. The course examples
are from Deitel & Deitel
. Other Java resources are JavaWorld
, Gamelan, and Mind
View, Inc. The Apache group wrote
a package (in Java) to generate HTML.
There are the O'Reilly books. I have Java in a nutshell, and
the examples from that
book are here.
Of course, let us not forget the people who started it all:
Java Resources at Sun, a.k.a. sunsoft
.
Java Rules! Java Rocks!
Java 1.2 documentation
from Sun. Java
Serverlets documentation from sun.
Java
Servlets (HttpServlet)
Current JDK download
for Win32 and Solaris. This is the state of the art in production
JDKs.
JDK 1.0.2 download
for Win32 and Solaris. This is the maximum compatibility JDK.
If you really want "write once, run anyway", use this JDK.
JDK 1.2 Win32
and Solaris. This is for Bleeding Edge of Technology applications.
JVM plugin for
any brain damaged web browser. Note that if you want to use the plugin,
you have to change the HTML. The plugin includes an HTML translator.
Current
JRE - if you want to run Java Applications on a machine with no JDK,
use the JRE.
Java software from the
free software foundation (FSF, pronounced "gnu") and from the
giant Java Tree.
Java Documentation Resources on Angel (for local use only)
I am measuring the performance
trade-offs involved in writing compute intensive software in Java.
Ordinarily, compute intensive software ought to be written in C. Or FORTRAN.
You can write compute-intensive code in Java, but you should consider using
JNI, which is not trivial.
Movesphere
is a java/EAI/VRML application. The RTA simulator is a simulation
of the Rapid Transit Authority. It's still a work in progress
and one of the ways I think I shot myself in the foot was to code it to
the Java 1.1 spec instead of 1.0. Here is a VRML
simulation of a diamond. All of my VRMLs are indexed in my
VRML page, which is generated by a perl
script.
I am learning about servlets. Here is a Hello,
world servlet.
Documentation
Table of contents There is also a list
of Java products, from Sun. Most of them are free.
JDK
1.2 API and language spec with frames on angel.
JDK
1.2 API and language spec without frames on angel.
Java
JDK 1.2 tools
JDK 1.1
API documentation (JDK 1.1 is useful because JDK 1.2 is not ubiquitous
yet)
Web 3D consortium which has both
Java and VRML 3D software.
-
JDK
-
Java Developer's Kit. This is the reference implementation of Java
and includes a compiler, javac, an application run time, java (see also
JRE), and an applet test environment, appletviewer.
Version 1.1.8 is the most ubiquitous. Version
1.2.2 is the most recent. Browse
the Version 1.2.2 documentation.
-
JRE
-
Java Runtime Environment
-
JSP
-
JavaServer Page. This is a way to make dynamic web content.
There is a relationship between JSPs and Servelets
. (a JSP can invoke a servelet, but you don't need JSPs to use servelets)
See Sun's JSP page, the
JSP FAQ, and
the JSP syntax cheat
sheet.
-
JSWDK
-
JavaServer Web Development Kit.
-
JVM
-
Java Virtual Machine
Java Resources for LINUX
The Blackdown Organization
.
Access to documentation
Of course, the most important documentation in the geek community is User
Friendly.
The Apache documentation
Local dialup
procedures documentation, and Linux
dialup configuration information. I have some of the linux
information local to this machine.
Requests for Comment
During the early development of the Internet developers did not want to
go through the laborious process of developing formal standards and applying
to a standards body such as the EIA, IEEE, or ISO. Instead, they called
the standards documents they developed [Requests for Comments]. These soon
became de facto standards, and with the formal acceptance of the TCP/IP
protocol as a network standard, de jure as well. You can get copies of
the RFCs from literally hundreds of network sites, including http://www.isi.edu,
http://www.faqs.org/rfcsNIS.NSF.NET,
RFC.JVNC.NET , or FTP.ISI.EDU.
Perl Documentation
The
Perl 5 documentation from CPAN.
Perl software is mirrored at SPU.
Java Documentation
The
JDK 1.2 documentation on angel or from sun.
The Java Serverlet
FAQ .
Java numerics: High precision
arithmetic in Java, courtesy the National
Institute of Standards & Technology (NIST).
/usr/local/ecs/ecs-1.0/docs
and other Java
server documentation
The
Java Telnet applet. This is a Java Applet that allows you to
telnet into a computer without a telnet daemon. I'm not sure how
useful that is, because telnet clients are common - but if you had a Java
computer, then something like this might be useful.
Other linux related files and things:
For Red Hat Linux, please visit the web site of Red
Hat Software. The manual for Red Hat Linux is available here
at Red Hat's site. Additional GNU/LINUX documentation is available
on this machine. There is documentation on gnome
and the
Red Hat Manual. The HOWTOs are stored on angel's
hard drive.
<URL:
http://www.linux.locus.halcyon.com> for Linux Documentation perldocs
~jeffs/perldocs grasp /usr/local/graspada//GRASP_Documentation/ The
Linux documentation
The Linux Documentation
Project.
A tutorial
on the bash shell.
Information
on NetATalk, which is a Linux implementation of the Apple Macintosh
network file system. More on NetAtalk+asun.
A Netatalk tutorial.
Get Netatalk from the University
of Wisconsin. There is a competing package for AppleTalk
on Linux from Columbia, the Columbia AppleTalk Package (CAP) .
<URL:
ftp://ftp.linux.locus.halcyon.com> for kernel patches, etc.
<URL:
ftp://ftp.linux.locus.halcyon.com/pub/linux/slackware>
<URL:
ftp://ftp.halcyon.com/pub/linux/slackware>
Nice online tutotials for Unix and utilities at: System Administrator
(includes Bourne shell) http://www.ctel.msk.ru/~ftp/EBooks/Vol_1/toc.htm
You can also get MacSSH as a binary or
as a MacSSH .hqx file.
Unix utilities (including make): http://www.ctel.msk.ru/~ftp/EBooks/Vol_2/toc.htm
> Getting started with ssh
is user documentation on ssh. The ssh
FAQ has information for sysadmins. I am working on my own ssh
tutorial oriented towards Mathsoft
(Data Analysis Products Division) people.
More Linux resources.
Access
to software from VISI.
Other linux-related files and things:
URL:ftp://ftp.linux.locus.halcyon.com
for kernel patches, etc.
A RedHat
download mirror site.
A Linux Hardware
and software installation tutorial with many links to other places.
MultiSync 50 The MultiSync 50 15" (13.8" viewable image size)
monitor is designed for value-driven consumers who seek high-quality display
performance and reliability. Model #: #PN7501 Screen Size: 15" (13.8" viewable
image size) CRT: Dot Trio Maximum Resolution: 1280 x 1024 @ 65 Hz Horizontal
Frequency: 31 kHz to 69 kHz Synchronization Range: Horizontal: 31 kHz to
69 kHz (automatically) Vertical: 55 Hz to 120 Hz (automatically) Specifications
File Description in PDF format.
Linux, UNIX, and X-windows resources:
The long lost guide to X-terminal control codes: http://www.giccs.georgetown.edu/~ric/howto/xterm.seq
Webmaster resources
The WWW Viewer
Test page at Lawrence Livermore National Lab which you may use to test
your browser's capabilities.
Submit your page to 34 popular sites for free, using one form!
List of popular RFCs.
-
Name Server (DNS or BIND)
-
Domain Names - Concepts and Facilities", STD 13, RFC
1034, November 1987.
-
Mockapetris, P., "Domain Names - Implementation and Specification", STD
13, RFC 1035, November
1987.
-
E-mail (SMTP, POP, IMAP)
-
Remote Terminal
-
File Transfer
Apache, HTTP and HTML documentation
Apache documentation
on this machine. Apache Documentation
on Apache's web site .
I have made a
handy list of the HTTP status codes which show up in log files and
other places.
HTML tutorial page: HTML
Goodies.
Java software and documentation
Movesphere (which is also a VRML
application)
I have the Sun Java JDK1.2 documentation mirrored
here - however if you really want to use them, you should go to Sun's
page for API documentation or Sun's
page for SDK standard edition documentation.
I have more links at the software engineering
page.
Perl software and documentation
The Perl 5 documentation from CPAN.
Perl software is mirrored at Seattle
Pacific University (SPU).
To fix the links in this document (to change them from
file: links to relative http: links) use Perl:
public_html]$ perl -e "s|file:////Angel/jeffs/public_html/||"
-p INFILE.html > OUTFILE.html
Another document fixup one liner:
perl -e "s|angel\.jetinternet\.com|www.jeffsilverman.ddns.net|"
-i.bak -p *.html *.htm
perl -e "s|\@angel\.jetinternet\.com|\@mail.jeffsilverman.ddns.net|"
-i.bak -p *.html *.htm
I have more links at the software engineering
page.
VRML software and documentation.
Movesphere (which is also a Java applet)
A Simulated diamond. I gave my love
a diamond, it was 1*10-6 carets, she dumped me. Oh well,
back to Linux and Perl and Java.
The revolving cone. This was
done entirely in VRML, there is no Java here, because I am still trying
to figure out the VRML<->Java interface (EAI).
Your basic tetrahedron.
Simple minds are easily amused, and I guess my mind is pretty simple: I
am fascinated by the idea that you can construct a tetrahedron
inside a cube. It's true: a tetrahedron is a solid with 4 equilateral
triangles; the 6 diagonals of a unit cube form a tetrahedron with edges
of length sqrt(2). I am studying the External Authoring Interface of VRML.
Here is one of my experiments: the Add and
Remove test, which is an HTML page which invokes a VRML model which
has a Java Class associated with it.
Maplesoft has a Gallery
of 3D models in VRML.
HTML resources
Learn HTML by
example . The HTML
Barebone guide, an HTML cheatsheet. The HTML
3.2 reference ("Wilbur").
More information on the types of URLs and their formats can be found
at: http://www.ncsa.uiuc.edu/demoweb/url-primer.html
System Administration, computer security topics
My favorite computer store is Uptime Technologies (206) 547-1817 2408 N.
45th street, Seattle, WA, 98103
Access to documentation
The Apache 1.3 documentation Local dialup
procedures documentation (obsolete now that DSL is in place), and Linux
dialup configuration
information. I have some of the linux
information local to this machine.
Program editors (This is for C and Java
and Ada and ...)
I have been using GRASP with Sun's JDK on both LINUX and Windows/95.
Works great. Get GRASP
from the University of Auburn.
Do you think UCITA is a good idea? Me neither. See this
article in The Linux Journal
.
Return to the home
page.
Here is a link to a web page with working
and broken links, to test web spiders.
A history of CPUs from http://www3.sk.sympatico.ca/jbayko/cpu.html.
This is from JimPrice.com,
which has other cool links to information.
0 1 2 3 4 5 6 7 8 9 A B C D E F
0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2 SP ! " # $ % & ' ( ) * + , - . /
3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4 @ A B C D E F G H I J K L M N O
5 P Q R S T U V W X Y Z [ \ ] ^ _
6 ` a b c d e f g h i j k l m n o
7 p q r s t u v w x y z { | } ~ DEL
see new web server .web server .web server .