remaining stuff for R5 ============= test formatted text demo for bad images missing, FNFE! css bug on line 28? ================== notes ===================== remaining issues for R5 //check for any debugging output that's not part of the log //add forms and table to the demo pages //remove extra html files from the browser demo //check three col layout ===================== distributed people work: We've all seen plenty of toolkits, platforms, and APIs for doing distributed computing. It's all variations on a theme. Divide the work to be done into small encapsulated chunks then send it out to everyone and get back the results. The key to really widespread distributed computing to create a standard chunk format that lets the client do work for any project, and perhaps more than one project at a time. Now what if we could flip this around? Instead of harnessing the work of many processors to do the work humans, what if we could get millions of humans to do the work of computers? Right now there is a project called the Distributed Proofreaders. It's a group of people who proofread the Gutenberg texts by hand, comparing the existing OCRed text to a scan of the original book. Some tasks are much better suited for humans than computers, even if the human doing the work isn't personally involved. In this case, the computer has done basic Optical Character Recognition to generate the text, but even at 99% accuracy that's still about 5 errors per page. What makes this work so well is that the task can be broken up into chunks and distributed to different workers who know nothing about each other and very little about the task at hand. It doesn't matter which book you are working on as long as you can see the text, the scan, and maybe the title and author. My suggestion is that we make a platform for Distributed People. A standard way of breaking up tasks into small chunks and supplying any information the person doing the work will need. Then volunteers could download a client that presents them with a small piece of work, selected at random from the collection of projects they want to work on. The key here is creating a standard platform. This opens the doors to other distributed people tasks. I'd love to have a great collection of public domain stock images, but most of the datasets out there have really bad meta data. Just entering the keywords would be a huge boon to these projects, and Distributed People could make it work. Here are some more examples: Reviewing a list of sites. Confirming whether an email is really spam. Proofreading the Wikipedia ==================== for next build 0.04 //implement relative loading of images properly //support multi-context floats //reduce number of refreshes on startup //demo of a lot of text (shakespeare) //do horizontal scrolling //fix link bug //implement row spanning support columns on tables build new demo w/ css techniques for pretty helpfile support clear on inline floats fix fixed positioning support (when canvas > body size) ==================== redocument layout algorithm fix 0 space breaking issue (inf loop problem) ?? make layout be an interface move block and inline to separate classes move more inset calculations to the box classes move rendering logic into separate classes. all painting should be in painters design code for canvas vs body vs viewport sizing document the actual recursive bounds algorithm move bounds and translate code to the context. add mouse over, in, out, drag, etc support. adjust mouse wheel and scrolling constants add hover support to link add hover support to any attribute row spanning implement the other (auto?) table layout algorithm refactor, refactor, refactor. split inline layout into multiple classes (line breaker class?) design new tests for fixed, relative, static, absolute, and inline layout plan name and homepage for the project (1950's flying saucer?) launch it on java.net implement selection implement letter, word, and line spacing proper fixed width and horizontal scrolling ============= old ---- done ----- //implement multiple adjacent spans and subspans //implement box width growing instead of shrinking //support p tag a box w/ inline spans. (normal boxlayout will do it, i think) //convert ox,ox to an origin point //convert width,height to a dimension point //support h1 tag //a span which always starts on a new line and has a large bold font (by //default. maybe we should assume that the style was set by previous CSS and //just use the font-size and font-weight in the tag to do style). it can wrap //but anything after it must be on it's own line too. //create pure text demo with just p,b,i and h1s //support background color on any object //create non-nested div demo with just div boxes w/ colored borders and //different sized margins //implement box width shrinking based on contents if we draw the border after the contents then we can draw the contents first, use the last.y to determine the height of the contents and then draw the border of the box and set a new last.y for the next object to use. //implement box height growing based on contents //reimplement backgrounds to work with box growing //skip comment nodes //put demos into demo directory //css parser //css cascading //line breaking algorithm (take 3!) //test same lineheights. //test different lineheights. //test an inline box too long for the line box //test horizontal alignment //test pre formatting // create fontutil ============== for the 0.02 release //integrate the inline and box layouts again so that p is just a styled //version of div. //pre is styled version of div //make margins and padding work on boxes again //support images in inline layout as replaced elements w/ intrinsic extents //fix line spacing on headers //add u.start() and u.stop() //patch bug where bounds of body are too swmall //fix new bug w/ box sizing and drawing borders when non-standard box width //fix bug that is crashing paragraph demo //test all of the demos again //joshy:maybe fixed? //patch bug where normal line break goes into infinite loop //fix bug where size of html pane is always one refresh behind. //underline,strikethrough,overline //capitalize,lowercase,uppercase //,, //super and subscript //fixed line height/ baseline calcs //implement table w/o cell spanning //move some of the util code out of inline layout // like captialize, lowercase, uppercase, // like super,sub // like underline,strikethrough,overline ============== for the 0.03 release //implement width via css (px & %) //implement height via css (px) //turn on anti-aliasing //background image for body //fixed background image for body //partial background image for divs //create double clickable jar //create menu to run the demos //trim whitespace when doing breaking //add inlinebox.getText() //add inlinebox.setText() //merge bounds and origin into rect //support indent on paragraph/div //fix image test //fix table text //add other demos to menu //fix bug where text after subspan isn't on the next line down // but on the same line (only where the break between subspans is // right at the end) //fixed bug where width of transformed text is wrong //look up whitespace rules //redesign tiling for fixed image for body //util class w/ function to draw a rect in a color (draw a box too) // tag (underlined) //create matrix of supported properties and features // redesign vertical align code // vertical-align: top, bottom, baseline // make inline image set appropriate baseline for text around it. // if element has a class it should look for attributes w/ that class, // but fall back to the classless rules if it can't find them. // integrate default css into jar file // fix cell/vs/table width bug // named color support for the color property // test nested boxes // shorthand for margin, padding, border-width //debug menu // draw boxes, lines, and inlines //rewrote inset/outset/ridge rendering //refactor CSS code into it's own package //em sizing on fonts //new testcases for text alignment (vert and horiz) //fixed bug that caused tables to always be at the origin //added support for fixed width columns specified by style on the //columns in the first row. distribute rest of width to other cells //plan for implementing floated elements w/ testcase // left floating // right floating // relative positioning (just offset from normal) // basic fixed positioning // move painting and boxes to their own packages // move border info to the boxes //implement break (
) //fix text alignment (breaking test w/ right and centered text) //create file menu w/ quit //create new demo from existing good looking xhtml+css on the web //clean up accessor code in CSSBank and move to new class //create dom inspector // float blocks // move CSS getProperty code into it's own class // make a c.css.getPointProperty() to return two float values // make the body paint the whole canvas // make painting code use boxes //handle BR //anonymous text block support ==================== next features before a new release make itunes email demo work table //clean up code //spanning of cells column support //slew of unit tests title header footer support clear on inline context make base url for loading images update supported features list ============== for the 0.04 release new features: positioning: multiple floats in each direction multiple floats w/ different sizes floats that span their containing blocks support for clear static positioning (just codify and add defaults to css) absolute positioning fixed in nested w/ offset starting position relative w/ px relative w/ 'auto' relative w/ 'inherit' fixed w/ % fixed w/ auto and inherit do horizontal fixed calcs background image do full % position for horiz and vert finish keyword substitution finish % replication finish rendering support for horiz do % position w/ fixed support acenders/descenders/baseline for vertical-align tables: implement cell spanning implement column widths implement headers and titles proper css cascading (ie, sort the rules properly) design scaling system to convert other measurements into px design percentage system to calc % w & h new testcases for table borders, margins, padding, on inline block handle empty nodes new code features move layout code into it's own package testing & docs why don't class names with _ in them work? banned by spec? test sub spans

asdfasdfasdfasdfasdf

create outstanding bug list for the 0.05 release investigate advanced font metrics line spacing word spacing letter spacing sub pixel spacing fractional metrics review the box layout algorithm again. maybe need to redefine way to click on a node (future rollover support) margin collapsing relative url for the doc for loading images media cacher major speedups needed. needs more caching, redfine the layout order contents as innerbounds and orig/bnds as outerbounds (take 3) implement anchor w/ rollover and mouse cursor and :hover universal scaling (like +/- buttons in safari)