summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>2010-01-20 21:12:56 +0100
committerGravatar Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>2010-01-20 21:12:56 +0100
commite4977ae3f16054d29a481b7146207df6c7c376ac (patch)
treed9de12dfcdfc93fbc82e229051efebaf8147fd88
downloaduClibc++-website-e4977ae3f16054d29a481b7146207df6c7c376ac.tar.gz
uClibc++-website-e4977ae3f16054d29a481b7146207df6c7c376ac.tar.bz2
initial import
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-rw-r--r--about.html40
-rw-r--r--contact.html34
-rw-r--r--donate.html49
-rw-r--r--download.html57
-rw-r--r--faq.html146
-rw-r--r--favicon.icobin0 -> 1406 bytes
-rw-r--r--index.html33
-rw-r--r--status.html53
-rw-r--r--styles.css2
9 files changed, 414 insertions, 0 deletions
diff --git a/about.html b/about.html
new file mode 100644
index 0000000..9a7cf18
--- /dev/null
+++ b/about.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
+ <meta name="keywords" content="linux, software, embedded, C++, development" >
+ <meta name="GENERATOR" content="nano" >
+ <link rel ="stylesheet" type="text/css" href="styles.css" >
+ <title>uClibc++ C++ library</title>
+</head>
+<body>
+<H1>uClibc++</H1>
+<div style="float: left; width: 150px;">
+ <br><a href="index.html">Main</a>
+ <br><a href="about.html">About</a>
+ <br><a href="faq.html">FAQ</a>
+ <br><a href="download.html">Download</a>
+ <br><a href="status.html">Status</a>
+ <br><a href="donate.html">Donate</a>
+ <br><a href="contact.html">Contact</a>
+</div>
+
+<div style="float: left;">
+ <H3>About</H3>
+ <P>uClibc++ is a C++ standard library targeted towards the embedded systems/software market. As such it may
+ purposefully lack features which you might normally expect to find in a full fledged C++
+ standard library. The library will focus on space savings as opposed to performance.
+
+ <P>The author of uClibc++ is Garrett Kajmowicz, who is employed as a "Member of Technical Staff" with <A
+ HREF="http://www.netapp.com">Network Appliance</A>, a company which provided scalable storage solutions.
+ Garrett is currently located in Pittsburgh, Pa.
+ <P>If you would like custom modifications done to this library, or would like to obtain it under a different
+ license, please contact Garrett Kajmowicz.
+
+</div>
+
+
+
+</body>
+</html>
diff --git a/contact.html b/contact.html
new file mode 100644
index 0000000..2ab2b82
--- /dev/null
+++ b/contact.html
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
+ <meta name="keywords" content="linux, software, embedded, C++, development" >
+ <meta name="GENERATOR" content="nano" >
+ <link rel ="stylesheet" type="text/css" href="styles.css" >
+ <title>uClibc++ C++ library</title>
+</head>
+<body>
+<H1>uClibc++</H1>
+<div style="float: left; width: 150px;">
+ <br><a href="index.html">Main</a>
+ <br><a href="about.html">About</a>
+ <br><a href="faq.html">FAQ</a>
+ <br><a href="download.html">Download</a>
+ <br><a href="status.html">Status</a>
+ <br><a href="donate.html">Donate</a>
+ <br><a href="contact.html">Contact</a>
+</div>
+
+<div style="float: left;">
+ <H3>Contact</H3>
+ <P>You can reach me via email at: ucxx - at - garrett.dyndns.biz
+ <br>Yes, the email has been spam-protected. If other contact information is needed (say mailing address),
+ I will make that available via email.
+
+</div>
+
+
+
+</body>
+</html>
diff --git a/donate.html b/donate.html
new file mode 100644
index 0000000..865a341
--- /dev/null
+++ b/donate.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
+ <meta name="keywords" content="linux, software, embedded, C++, development" >
+ <meta name="GENERATOR" content="nano" >
+ <link rel ="stylesheet" type="text/css" href="styles.css" >
+ <title>uClibc++ C++ library</title>
+</head>
+<body>
+<H1>uClibc++</H1>
+<div style="float: left; width: 150px;">
+ <br><a href="index.html">Main</a>
+ <br><a href="about.html">About</a>
+ <br><a href="faq.html">FAQ</a>
+ <br><a href="download.html">Download</a>
+ <br><a href="status.html">Status</a>
+ <br><a href="donate.html">Donate</a>
+ <br><a href="contact.html">Contact</a>
+</div>
+
+<div style="float: left;">
+ <H3>Donate</H3>
+ <P>Wow, thanks for considering donating to help me out. Since I'm now employed, I don't really need donatations
+ to keep going at this point. Instead, please look at adding a few cases to the test suite. Alternatively,
+ drop me an email telling me what software you've managed to get uClibc++ to compile against.
+
+<!-- <P>Paypal:
+ <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
+ <input type="hidden" name="cmd" value="_xclick">
+ <input type="hidden" name="business" value="ucxx@garrett.dyndns.biz">
+ <input type="hidden" name="item_name" value="uclibc++ Development Donation">
+ <input type="hidden" name="no_note" value="1">
+ <input type="hidden" name="currency_code" value="CAD">
+ <input type="hidden" name="tax" value="0">
+ <input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif"
+ border="0" name="submit"
+ alt="Make payments with PayPal - it's fast, free and secure!"> -->
+
+</form>
+
+
+</div>
+
+
+
+</body>
+</html>
diff --git a/download.html b/download.html
new file mode 100644
index 0000000..3852a52
--- /dev/null
+++ b/download.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
+ <meta name="keywords" content="linux, software, embedded, C++, development" >
+ <meta name="GENERATOR" content="nano" >
+ <link rel ="stylesheet" type="text/css" href="styles.css" >
+ <title>uClibc++ C++ library</title>
+</head>
+<body>
+<H1>uClibc++</H1>
+<div style="float: left; width: 150px;">
+ <br><a href="index.html">Main</a>
+ <br><a href="about.html">About</a>
+ <br><a href="faq.html">FAQ</a>
+ <br><a href="download.html">Download</a>
+ <br><a href="status.html">Status</a>
+ <br><a href="donate.html">Donate</a>
+ <br><a href="contact.html">Contact</a>
+</div>
+
+<div style="float:left; " >
+ <H3>Downloads</H3>
+ <table>
+ <tr><th>File</th><th>SHA1 sum</th><th>MD5 sum</th></tr>
+ <tr><td><a href="src/uClibc++-0.2.2.tar.bz2">uClibc++-0.2.2.tbz2</a></td><td>f5582d206378d7daee6f46609c80204c1ad5c0f7</td><td>1ceef3209cca88be8f1bd9de99735954</td></tr>
+ <tr><td><a href="src/uClibc++-0.2.1.tar.bz2">uClibc++-0.2.1.tbz2</a></td><td>76e17610bb10a51638b613d737efa78f4e73e847</td><td>6e6032c49916b199ffe6a585552fd46b</td></tr>
+ <tr><td><a href="src/uClibc++-0.2.0.tbz2">uClibc++-0.2.0.tbz2</a></td><td>5ac311c49ad484960cf7fd632c923981351d2d09</td><td>33e01302511c9a1987fb104f12d173e1</td></tr>
+ <tr><td><a href="src/uClibc++-0.1.12.tbz2">uClibc++-0.1.12.tbz2</a></td><td>0c26bd59f4d906af806ba4bfdf02fccec4b84b0e</td><td>36603876fa97dc3860b108983147f400</td></tr>
+ <tr><td><a href="src/uClibc++-0.1.11.tbz2">uClibc++-0.1.11.tbz2</a></td><td>f50c537d9dcf1e9e500857b3bfb29f46cae78e54</td><td>8a8e0ee8fefef150c08a649fd7da04aa</td></tr>
+ <tr><td><a href="src/uClibc++-0.1.9.tbz2">uClibc++-0.1.9.tbz2</a></td><td>400a3adf1597ca6a752c2d75b60c13d54c6bdeda</td><td>ebf58e04d72eab5c131c2c9118737024</td></tr>
+ <tr><td><a href="src/uClibc++-0.1.8.tbz2">uClibc++-0.1.8.tbz2</a></td><td>914d53777bad265e147d96356c9ec508d188e3cc</td><td>c15b4c6680a9f7e9d4d822409003be3c</td></tr>
+ <tr><td><a href="src/uClibc++-0.1.7.tbz2">uClibc++-0.1.7.tbz2</a></td><td>943a41ce10999b7bd5d003f83ad918812486d894</td><td>940b92abc96952e7eca6f208505393ea</td></tr>
+ <tr><td><a href="src/uClibc++-0.1.6.tbz2">uClibc++-0.1.6.tbz2</a></td><td>94db066dfe09166110995c0b09b5312bf1280c52</td><td>54adf3378c526722916521938549c7b4</td></tr>
+ <tr><td><a href="src/uClibc++-0.1.5.tbz2">uClibc++-0.1.5.tbz2</a></td><td>d5b7bad4106f90a73c71c32f80729516c8b3e7ea</td><td>80ff7fea0f3d3590dd236a7611bae4f5</td></tr>
+ <tr><td><a href="src/uClibc++-0.1.4.tbz2">uClibc++-0.1.4.tbz2</a></td><td>07aa0fbe3e98b0c4186efb567e6d4471223e57a9</td><td>1fa5ac55c3366bedacff47078ee88c7e</td></tr>
+ <tr><td><a href="src/uClibc++-0.1.3.tbz2">uClibc++-0.1.3.tbz2</a></td><td>b48fc08f9d520aec67b4aa46b1280db109637ab5</td><td>0e365a925d70b047346146c7c088a80e</td></tr>
+ <tr><td><a href="src/uClibc++-0.1.2.tbz2">uClibc++-0.1.2.tbz2</a></td><td>487f2ae2cab8f5a40dc2a3cb0fd046fe6ada2c01</td><td>92f576641266b0b7caa3f18a54f70c42</td></tr>
+ <tr><td><a href="src/uClibc++-0.1.1.tbz2">uClibc++-0.1.1.tbz2</a></td><td>e365132f6c205103cbe4d3adea1a4037544c7e48</td><td>930c7cdd13316a4bfe300159a39aeb36</td></tr>
+ <tr><td><a href="src/uClibc++-0.1.0.tbz2">uClibc++-0.1.0.tbz2</a></td><td>26037b668e6b519ae6ce51db5101c7d15567fb9d</td><td>f9d7f61e758a1cddc5fc36ecb7fa8248</td></tr>
+ <tr><td><a href="src/uClibc++-0.0.5.tbz2">uClibc++-0.0.5.tbz2</a></td><td>7d257c2322536e8aa81e0f1a7c48fe5d33e7ca7e</td><td>f80daf8b85aaec909abb6ef23ba99677</td></tr>
+ <tr><td><a href="src/uClibc++-0.0.4.tbz2">uClibc++-0.0.4.tbz2</a></td><td>17c6c4b57aad02ae2d5e78ce4085af28ba5a9b76</td><td>f13e0f07f738a33cc631dcdcf3d1671d</td></tr>
+ <tr><td><a href="src/uClibc++-0.0.3.tbz2">uClibc++-0.0.3.tbz2</a></td><td>7c938e258534538855246934718dfa0cdb131a24</td><td>e8e000709f6501dbb2351094d38d56bb</td></tr>
+ <tr><td><a href="src/uClibc++-0.0.1.tbz2">uClibc++-0.0.1.tbz2</a></td><td>fd3b0923c2c51d00440f12e18d2a1e6a6373a0f8</td><td>64b9989efa8595c5ea1b60b3c4960069</td></tr>
+ </table>
+
+ <H3>SVN</H3>
+ <P>You can access SVN source through:
+ <BR>svn co svn://uclibc.org/trunk/uClibc++
+
+</div>
+
+
+
+</body>
+</html>
diff --git a/faq.html b/faq.html
new file mode 100644
index 0000000..0e44c15
--- /dev/null
+++ b/faq.html
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
+ <meta name="keywords" content="linux, software, embedded, C++, development" >
+ <meta name="GENERATOR" content="nano" >
+ <link rel ="stylesheet" type="text/css" href="styles.css" >
+ <title>uClibc++ C++ library</title>
+</head>
+<body>
+<H1>uClibc++</H1>
+<div style="float: left; width: 150px;">
+ <br><a href="index.html">Main</a>
+ <br><a href="about.html">About</a>
+ <br><a href="faq.html">FAQ</a>
+ <br><a href="download.html">Download</a>
+ <br><a href="status.html">Status</a>
+ <br><a href="donate.html">Donate</a>
+ <br><a href="contact.html">Contact</a>
+</div>
+
+<div style="float: left;">
+ <H3>FAQ</H3>
+
+ <P><B>What is the uClibc++ library?</B>
+ <P>The uClibc++ library is my implementation of the C++ standard library. It is designed for use in embedded
+ systems.
+
+ <P><B>Under what license is uClibc++ released?</B>
+ <P>uClibc++ is released under the <a href="http://www.gnu.org/licenses/lgpl.html">GNU LGPL</a>. I am also
+ making it available with custom licenses for a fee. Contact me for more information. Fees subject
+ to the project and the phase of the moon.
+
+ <P><B>How to I use uClibc++?</B>
+ <P>Simply download the source code, run make menuconfig, make, and make install. Optionally you can run make test
+ to ensure that the library is working correctly (I don't pass all of my own test suite as of yet - working on it).
+ <P>Once you have the library installed, you should be able to compile your c++ applications against it by specifying the
+ wrapper script as the C++ compiler to use, either on the command line or with environment variables.
+
+
+ <P><B>Why doesn't your library support feature X</B>
+ <P>There are two possible reasons. The first is that I simply haven't gotten around to writing it. How about
+ you write a conformance test for the feature and send it to me, and I'll implement the feature when I
+ get around to it. The second is that I have decided that this feature is inappropriate for an embedded
+ software/C++ library. As such, I have no plans to implement that feature at all (such as locales)
+
+ <P><B>What if I *really* want feature X</B>
+ <P>I program/consult for tuition and spending money. A.k.a. I'm relatively cheap to hire. Contact me and I'll
+ see what I can do to get you a custom version of the software with your required feature present.
+
+ <P><B>What is the difference between uClibc++ and <a href="http://www.caravan.net/ec2plus/">Embedded C++</a></B>
+ <P>Embedded C++ is a subset of C++. As such it is actually a different language which is missing a *large* number
+ of the cool features in C++ and it's associated library, such as:
+ <ul>
+ <li>namespaces</li>
+ <li>templates</li>
+ <li>exceptions</li>
+ <li>rtti</li>
+ <li>The STL</li>
+
+ </ul>
+ <br>In my view, any one of the above is a good enough reason to use C++ over C (or EC++). As such, stripping
+ them out does not sit well with me. uClibc++ is designed to be used with a complete C++ compiler and
+ a C standard library. Few C library features are actually required, but it is just easier to say that
+ they are.
+
+ <P><B>What are the differences between uClibc++ and a typical C++ library implementation?</B>
+ <P>Firstly, all of the code was designed with size in mind, both code and memory. This means that
+
+ some design choices were made in order to conserve memory which may reduce performance.
+ The main differences are:
+ <ul>
+ <li>No locale support at the C++ level</li>
+ <li>Map currently uses a deque instead of a tree structure</li>
+ <li>I/OStream library does not call locales</li>
+ <li></li>
+ </ul>
+ <P>Most of the differences are trivial for all but the most bizzare cases. Let me know if you
+ run into any problems.
+
+ <P><B>Why use a deque for map?</B>
+ <P>A deque needs only 3 pointers and a size parameter (essentially 4 integers) to manage itself. Compare this
+ with at least 2 pointers per item for a tree. After two items, the memory overhead of the map already
+ outweighs that of the deque. Also, deque lookups may be faster as moving to the next level in the
+ search does not require indirection. On the down side, a deque does not resize cleanly like a map does.
+ It will use more memory than needed in buffering, and will occasionally need to copy all of the elements
+ to a new container for more free space. Inserts also execute in O(n) time instead of O(log(n)) time on a
+ deque unless they are to be added to the front or back of the deque, at which point they are inserted in
+ O(1)+ time. Lookups and updates are O(log(n)) on both systems. In the end, I thought that the memory
+ usage of the system outweighed the performance issues involved.
+
+ <P><B>How big is uClibc++?</B>
+ <P>If you are asking how big the source code is, it is about 500k, uncompressed. If you are asking how big the
+ binary is, that is system dependent. On my system (AMD Athlon) with maximum code expansion, the library is
+ about 100k when compiled with no optimization. When compiled with size optimization it drops to around 76k.
+ For best results, try it on your system.
+
+ <P><B>Is the code ISO compliant?</B>
+ <P>I believe that all of the library code is IOS compliant in terms of syntax. Since it is not complete, it is
+ not compliant in terms of content.
+
+ <P><B>What compilers does uClibc++ work with?</B>
+ <P>The library is written with and for GNU G++ version > 3.3.0. I am developing on a system using 3.3.3.
+ One of the biggest problems with C++ is the ABI used. I don't feel very comfortable implementing it
+ since much of the implementation is done inside the compiler. As such, the ABI code is copied from
+ GNU G++ headers or libraries, as appropriate. You are free to try and use a different C++ compiler.
+
+
+ <P><B>Why don't you support locales?</B>
+ <P>Locales are a really neat feature, but they are very large. My preliminary support for them was about 50k
+ before I chopped it out of the project. And at that point my implementation didn't do anything useful.
+ My rational for this was fairly straightforward: almost no embedded system is going to need locales.
+ If you are using a GUI toolkit, you most likely have better features for locale handling than will
+ be offered by the C++ standard. If you are using files on an embedded system (say for logging), the
+ character used as a decimal marker is pretty much irrelevant. It comes in handy only when you are
+ looking at doing output to the console, and an embedded system is more likely to use custom functions
+ for output than the console. Just face it: how often do you explicitly use locales when programming?
+ Probably not often.
+
+ <P><B>How do I use the library?</B>
+ <P>The library builds a wrapper script, g++-uc, which sets all of the required library calls to effectively
+ use the library. Though it doesn't cover all possibilities, it is sufficient to be able to compile
+ large applications like KDE. Simply use the wrapper script anywhere you would call g++ directly,
+ or override the CXX environment variable if calling scripts and compile away!
+
+ <P><B>How can I contribute to the library</B>
+ <P>First and foremost, attempt to compile your favorite C++ application against uClibc++ and test it. If it
+ works, let me know. If not, also let me know. Ideally, track the bug down to a particular cause and
+ submit a minimal example case which works under GNU libstdc++ but not uClibc++. Then see if it falls
+ under one of the categories above. Ex, if the problem is a lack of locale support, I'm not likely to
+ care. However, if it is an iostream issue than I will endevor to resolve the problem as quickly as
+ possible.
+ <P>If you would like to become involved directly with the code then I am looking for implementations of a
+ comprehensive test suite. This will discover more and more bugs, making the library better and
+ better.
+ <P>If you are truely sadistic, then I am in need of somebody to muck around with the internals of the
+ g++ compiler, strip out the exception and typeinfo internals of that code and replace it with
+ new and better uClibc++ code. Sounds like fun, doesn't it?
+
+</div>
+
+
+
+</body>
+</html>
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000..8fc516a
--- /dev/null
+++ b/favicon.ico
Binary files differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..1b1ff18
--- /dev/null
+++ b/index.html
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
+ <meta name="keywords" content="linux, software, embedded, C++, development" >
+ <meta name="GENERATOR" content="nano" >
+ <link rel ="stylesheet" type="text/css" href="styles.css" >
+ <title>uClibc++ C++ library</title>
+</head>
+<body>
+<H1>uClibc++</H1>
+<div style="float: left width: 150px;">
+ <br><a href="index.html">Main</a>
+ <br><a href="about.html">About</a>
+ <br><a href="faq.html">FAQ</a>
+ <br><a href="download.html">Download</a>
+ <br><a href="status.html">Status</a>
+ <br><a href="donate.html">Donate</a>
+ <br><a href="contact.html">Contact</a>
+</div>
+
+<div style="float: left;">
+ <H3>An embedded C++ library.</H3>
+ <P>This is the page for the uClibc++ C++ library. It is currently in development and might as well be called
+ alpha software. Nonetheless is it quite usable. More testing is needed, as always. For more
+ information, check out the About, FAQ or Status pages to the left.
+</div>
+
+
+
+</body>
+</html>
diff --git a/status.html b/status.html
new file mode 100644
index 0000000..8c35b48
--- /dev/null
+++ b/status.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
+ <meta name="keywords" content="linux, software, embedded, C++, development" >
+ <meta name="GENERATOR" content="nano" >
+ <link rel ="stylesheet" type="text/css" href="styles.css" >
+ <title>uClibc++ C++ library</title>
+</head>
+<body>
+<H1>uClibc++</H1>
+<div style="float: left">
+ <br><a href="index.html">Main</a>
+ <br><a href="about.html">About</a>
+ <br><a href="faq.html">FAQ</a>
+ <br><a href="download.html">Download</a>
+ <br><a href="status.html">Status</a>
+ <br><a href="donate.html">Donate</a>
+ <br><a href="contact.html">Contact</a>
+</div>
+
+<div>
+ <H3>Status</H3>
+ <P>There are a number of components in the C++ library which are continually being developed.
+ Here is status of these elements.
+
+ <table><tr><th>Component</th><th>Status</th></tr>
+ <tr><td>Exceptions</td><td>Done. Core code from the GNU library.</td></tr>
+ <tr><td>rtti</td><td>Done. Virtually all of the rtti code is from the GNU library</td></tr>
+ <tr><td>locales</td><td>Code ommited from project on purpose</td></tr>
+ <tr><td>streams</td><td>To my knowledge all core code is done. May be converted to unbuffered at some point.</td></tr>
+ <tr><td>STL containers</td><td>All core container code done, except for <valarray>.</td></tr>
+ <tr><td>STL algorithms</td><td>95% Complete. Only need to rewrite next and prev permutation from GNU Library.</td></tr>
+ <tr><td></td><td></td></tr>
+ <tr><td></td><td></td></tr>
+ <tr><td></td><td></td></tr>
+ <tr><td></td><td></td></tr>
+ <tr><td></td><td></td></tr>
+ <tr><td></td><td></td></tr>
+ <tr><td></td><td></td></tr>
+ <tr><td></td><td></td></tr>
+
+
+ </table>
+
+
+</div>
+
+
+
+</body>
+</html>
diff --git a/styles.css b/styles.css
new file mode 100644
index 0000000..9d997d3
--- /dev/null
+++ b/styles.css
@@ -0,0 +1,2 @@
+body { background-color: #EEFFEE; }
+div { margin-right: 1em; }