Web Servers
(Note that my internet is not title cased, it's just a thing, not a person, and should receive no special treatment.) Two servers dominate the internet:IIS on Windows
Apache on Windows and everything else
Apache has the largest percentage of servers
Both have similarities
Filters the Apache API finally gives us a robust method for filtering at different layers in the stack, and is similar to IIS's ISAPI.
MSDN Article on ISAPI filters here
APACHE API information here
Archimedes Spiral
http://home.att.net/~numericana/answer/curve.htm#archspir
Standards
World Wide Web Consortium (W3C)
Internet Engineering Task Force (IETF)
- HTTP Hypertext Transfer Protocol (rfc 2616)
- HTML 4.01 Specification
- XHTML™ 1.0 The Extensible HyperText Markup Language
- CSS Specifications Style Sheets
- Platform for Privacy Preferences (P3P) Project
- Cookies from the IETF help yourself!
WSDLPULL
http://wsdlpull.sourceforge.net/wsdlpull is a C++ web services client library. It includes a WSDL Parser,a XML Schema parser and validator and an XML Parser and serializer.
...
wsdlpull uses the xml pull api to parse a WSDL1.1 document. This makes wsdlpull highly efficient which is why you can process and invoke a WSDL in no time.
The Web service Invocation API allows you to dynamically inspect and invoke a web service. Unlike other toolkits there is no need to generate stubs or type serializers.
You can use the dynamic invocation API to write your own web service clients in one step. Writing a web service client involves providing the WSDL URL,setting the operation,the input types and getting back the results. No knowledge of SOAP is needed to write a web service client using wsdlpull. The invocation API is quite protocol independent and focusses on presenting a simple and intutive interface and abstracts away protocol specific details.
References
Aesthetics, Style
RGB to CMYK and other conversionsI am going to have some rather advanced color selection tools here, which are currently about half developed. They use some the algorithms from this site (among others.) (The hard one was color-saturation-value CSV, due to it's lack of dimensional orthoganality. I'll use CSV for my color model space. CSV is too useful to do without!)
Style from the W3
Just a lot of common sense!
Web Style Guide
You can take some of this with a grain of salt, but it encapsulates the prevailing wisdom in one site.
On Page Dimension from the Guide...
"The graphic safe area dimensions for printing layouts and for page layouts designed to use the maximum width of 800 x 600 screens are shown below:
Graphic "safe area" dimensions for layouts designed to print well:
Maximum width = 560 pixels
Maximum height = 410 pixels (visible without scrolling)
Graphic "safe area" dimensions for layouts designed for 800 x 600 screens:
Maximum width = 760 pixels
Maximum height = 410 pixels (visible without scrolling)"
www.ShoreWalker.com - I agree with most everything David Walker has to say on this site. It's actually kind of spooky for me to see someone that thinks like I do on style issues.
JavaScript / DHTML / DOM
On inner browsing
Inner browsing was the old name. This concept has been re-monikered 'AJAX' for Asynchronous Javascript and XML. I will be providing some documantation on AJAX.The Browser DOM...
There are now a set of standards that define an object model as an abstraction of the web browser and it's parts. This abstraction helps developers make the client browser an active part of the overall user interaction with a web site. It makes it easier to get by without a plugin or applet.The problem is that MS Internet Explorer and Mozilla/Netscape adhere to the standard differently and have proprietary extensions. My openDom.js class helps.
More coming soon
C# - coming soon
Java
Java is still the #1 programming language of the web. It would be remiss for me not to have some information on it. I will be playing around with some client side Java for doing pie charts, and will publish the documentation here.Highly Recomended Book Resources
Effective C++, Second Edition, by Scott Meyers
More Effective C++, by Scott Meyers
Scott Meyer's website contains links to many publications, presentations, books, and other information from Scott: http://www.aristeia.com/
Open Databases
On Linux, there are two open database platforms do almost anything you would ever want a database to do. Both are extremely reliable.
(The openData abstraction library available on this site provides a common interface to both of them, so you can switch from one to the other painlessly.)
Images
The Image Magic API is the easiest and most full featured library for manipulating images for resizing and filtering.
We use ImageMagick to automatically generate thumbnail images from the fullsize images as they're uploaded.
Example code:
try
{
Image image;
// read the image in
image.read(imgPath);
// set the scaling geometry
Geometry geom( boundX, boundY );
// only scale images that are greater in size
geom.greater(true);
// do not change the aspect ratio
geom.aspect(false);
// use sampling method to resize
image.sample(geom);
// write the small image out
image.write(smlPath);
}
catch( Exception &error_ )
{
script << "Error creating thumbnail - Exception caught: " << error_.what() << endl;
}
Linux Reference
Building a web site from scratch? You need to know how to manage the Linux system.
Time
How to set your Linux computer's time to the Atomic Clock at the National Institute of Standards and Technology (NIST)...
- Login as root or issue the su command.
-
Run the following command to set you system clock:
rdate -s time.nist.gov
Suse:
ntpdate time.nist.gov -
Run the following command to synchronize your hardware clock with your system clock:
/usr/sbin/hwclock --systohc
Suse:
/sbin/hwclock --systohc - You may Verify correct time by going to the NIST Web Site.
See the article at www.myfonts.com
Both are command line references ro Redhat Package Manager.
Recommendations
- Server operating system (in order of preference): Linux, Free BSD, OSX, AIX, Solaris
- Webserver: Apache (or Zeus for higher load traffic)
- Databases (no real order of preference): MySQL, PostgreSQL, DB2, Sybase, Oracle
- Server code development language (in order of preference): C++, Java, C# ASP.NET, PERL, PHP
- Client code development language: ECMA (Java)script, Java, (C# is under evaluation)
- Authentication, Site Certificates:

For information on my book
Detecting the World: Capturing Physical Measurements with C++
click here
Simple steps for creating an autorun CD-ROM
The best material for Windows is on the Microsoft site.
Favicon.ico?
Favicon.ico itself is a 16x16 bitmap stored in legacy Microsoft icon resource file. Actually, it is very easy to generate favicon.ico from an existing image file using ImageMagick. Since almost all Linux distributions install ImageMagick by default, all you need to generate your own favicon.ico is a shell access to a Linux box. Root access or physical access to the box is not required. Regular user privilege suffices. No need to use fancy graphical editor like Adobe Photoshop or The Gimp.
Suppose you have an image named picture.png. To convert it into favicon.ico all you need to do is to execute the following command:
convert picture.png -resize 16x16! favicon.ico
That’s it. No fuss, no muss. Any experienced PHP/Perl/Python coder
can use the above oneliner to easily create their own aforementioned
web based favicon.ico generator.
debugging https
Issue the following to start a debug session with the https server:
openssl s_client -connect www.XYX.com:443 -state -debug
If it hangs, do a netstat in another session on the client you issued the command from to see how far you got with the protocal before it got stuck. That should prove illuminating.
Reference Library
Internal and external resource for web development.
The Apache Web Server