This is quite an interesting insight into how a pro builds a layout engine. I've been trying to think of ways of optimising performance of my IE7 script. The problems are essentially the same - I'm having to compute style rules for elements that are effectively clones. C-A-T and D-O-G have got me thinking. ;-)
Posted by Dean Edwards at May 2, 2005 4:33 PMIt's worth noting that Gecko also does complete sharing of frontend style data when possible for sibling elements, although at a slightly different level (which means we still do style matching for all elements). Rather than check the 10 conditions listed, we just run the rule matching process, and then check if we've matched the same set of rules as another child of the element we're inheriting from. If so, we just reuse the same object containing frontend style data rather than creating a new one. (This works for cousins, too, if the element being inherited from itself shared the data.) Thanks to the rule tree, this is just a pointer comparison, although this optimization has actually been implemented since before the rule tree.
Posted by David Baron at May 2, 2005 4:54 PMYes, but running the rule matching process takes time. Simply checking the conditions I listed (all of which are simple O(1) checks) is faster than having to determine which rules match.
random, i know...however...
lets see some full mathML support in safari ;) sure would be nice.
Posted by adam a at May 2, 2005 8:36 PMHow about posting a WebCore patch to support MathML? (Hey, Dave Hyatt, how about putting together something with the Darwin dudes to accept actual patch submissions to Apple's public source code? No one wants to post patches in Radar -- I do it when it's _really_ important, but I'd rather have my contributions public so they can be built on by others. It's supposed to be open source, you know.)
Posted by How bout at May 2, 2005 11:31 PMamusingly, I am reading this article in NNW (which uses WebCore) and your stylesheet has failed to render!
hehe - goor article tho.
Posted by Duncan Campbell at May 3, 2005 12:19 AMMan, can you imagine Microsoft letting their employees post a blog entry like this?
"Hey fellas: here's how we made our web browser run really fast."
Awesome, and fascinating.
Posted by Small Paul at May 3, 2005 12:23 AMHeh, so the moral of the story is:
"Don't use sibling selectors in your page if you want Safari to render it quickly."
Hearing you loud and clear, Mr. Hyatt. :)
Posted by iconmaster at May 3, 2005 9:41 AMA question regarding the comments by David Baron and hyatt:
I understand that the O(1) checks are certainly faster than completing the entire rule-matching process again, but is that the most time-consuming part of the process? It sounds like the Gecko system saves the time of reinstantiating an object containing the front-end style data (a savings that the Safari system is presumably also making) -- how does that time savings compare to the savings of avoiding rule-matching?
If the creation of the frontend style object is much more expensive than the rule-matching process, the Gecko engine might do almost as well as Safari. I was just curious if anyone knows which of these optimizations is more dramatic in practice.
Posted by npdoty at May 3, 2005 10:23 AM> Man, can you imagine Microsoft letting their employees post a blog entry like this?
> Awesome, and fascinating.
It really is interesting to read Dave's posts. I'm actually a little surprised the _Apple_ lets him post on current coding like this.
I'm guessing the collected posts won't be published in book form by Wiley any time soon, though... :)
Posted by David Oberst at May 3, 2005 10:45 AMWhy wouldn't they let him? They have to open WebCore's source anyway, so documenting things like this doesn't cost them anything extra. Either way, the information is available to anyone who wants it.
Posted by Millennium at May 3, 2005 10:51 AMone of the things that seem to have gone bad in the new safari, is the flush handling : I have a bunch of very heavy-duty PHP scripts that take up to 30 minutes to finish. I used to put some PHP flush statements in the while loops so that I could see in my browser how far the script has gone. In previous safari, the browser would timely update its window with that flushed info. The new safari doesnt : it sits there sinning its wheel until all is done, and only then will poop out the full resulting page as if there was only one flush at the end...
Posted by jeroen clarysse at May 3, 2005 3:05 PMTo be fair, why wouldn't Apple want all other browsers out there to render like Safari? It would just mean everyone is on the same page (pun NOT intended), and the web would be a better place to be.
Posted by Jer at May 3, 2005 9:50 PMMy name is Corey Lucier and I worked with Joe on Boxely before he left AOL and have been a lead in the effort for the past couple of years since he left. As you probably know Boxely is a toolkit specifically geared towards highly dynamic application interface (vs. content).
Wanted to bounce some random stuff off of you since you are so passionate about your style tree implementation. ;o)
I'm in the process of streamlining our cascading styles implementation. The resulting cascade representation is quite similar to that which you described for Mozilla. Our styles themselves support sibling, tag, attribute and id selectors as well as compound rules for "part" selection. This allows us to morph the cascade for a UI "component" based on the state of that component - and to style not only the gadget but also "parts" of that component as well. A very simple rule would suggest "style my cool button element's label as opacity="30%" when my button is disabled"...or "style my cool button element's fill with an animation="#throb" when my button is hovered".
A complex style node looks something like this in Boxely:
<style tag="columnHeader" fill="url(#columnOutlineGradient)" minWidth="30" inherits="#aolControl" >This basic example specifies a style with tag selector (columnHeader) - and has very specific rules for the background "part" of a columnHeader component - this sample node styles the columnHeader background with a vector gradient when pressed and hovered and another when not hovered.
<part name="bg" flex="1" minWidth="0" maxWidth="auto" margin="1" padding="4 10 4 10" fill="url(#headerButtonGradient)" stroke="#555555">
<state name="pressed">
<state name="hovered" fill="url(#headerButtonGradientPressed)"/>
</state>
</part>
</style>
A cascade for the element 'columnHeader' would include include this style node along with any other style nodes relevant for a particular instance of a column header, or any other style nodes that may be explicitly inherited - in this case the inherited style "aolControl".
Long story short, there are two fundamental items I'm digging into. Cascade sharing (potential for memory fragmentation) and override nodes.
The first is as you'd expect, cascade sharing. When a box is created, we first must construct a cascade (essentially a pipeline rule evaluator consisting of linked list nodes linking style nodes together in order of precedence)..the end result of using this rule tree is one or more buckets of common styles.
After we've created a relevant cascade for a particular element, we then must "expand" the cascade (morph it) if the tree contains "complex" rules..e.g. a node such as the one above could morph based on the value of the hovered attribute.
After we have a valid cascade we *then* use the appropriate hashing mechanism to find one just like it in the forest of cascades. Once we find one, we simply toss the cascade we just created (if none is found we keep and it is promoted to the forest).
If a box already has a cascade, but an attribute that may cause the cascade to morph (e.g. hovered in the above instance) - we morph the tree (essentially cloning the original and morphing the tree based on the new values), then run through the matching process again.
The process of constantly building up and tearing down these cascades however (and each node) has a tendency to cause memory fragmentation over time due to the small nodes being created and destroyed. Do you somehow avoid having to build up this "candidate" cascade before comparing with existing cascades? Do you utilized a pool or band allocator for your small datastructure nodes?
The other hot button issue is override nodes... e.g. 2000 elements for example, all locally specifying a few identical styles locally with the same values should of course, if possible, all share the same cascade and style node when possible. If the cascade for these elements contains a complex rule (attribute selector for example), of course we'd only attempt to share when 2 or more elements were in the same "state" attribute wise.
If elements are sharing their local override nodes when possible, the issue is then, not only do we have to look for other cascades when attributes change (for complex style cascades that morph based on states or attributes)...when then have to look for cascades to share each time we set an override style on the element. Has a potential to be very busy.
In a typical content document (HTML/CSS), once the document is loaded, things tend to remain constant so having to constantly morph and swirl the cascades is not as much an issue as with application interfaces (XUL/DHTML/Boxely) that are highly dynamic in nature - e.g. data is flowing and changing, user interaction causes ripples through the styles of elements during interaction much more often than in a static content situation. Finding and sharing style bundles is important for footprint reasons, but must be weighed carefully with runtime performance as well (especially in the case of animated attributes or animated styles that may change the value of an element property 30 to 60 times a second).
Any thoughts in either of these areas? (Fragmentation or aggressive sharing of override styles).
Does Gecko's rule tree consider the order of rules in the match set to be uniquely determined by CSS precedence rules at the selector level, or does it look further and notice that many rules can be applied in interchangable order despite precedence because none of the declarations conflict with eachother? If the latter, it seems like there would be a potentially interesting opportunity that isn't available in a traditional trie--reordering the rules for better caching. In a trie, CAT is constrained to be a prefix of CATERWAUL, but if in the analogous rule tree the T and E rule are interchangeable, the order they are placed in becomes important to the quality of the caching.
Do you have any conception of whether or not it's feasible to create heuristics (fixed heuristics based on domain knowledge, heuristics created on the fly per-page from something like occurance counting of matches for each rule, or some combination of the two) useful enough to outweigh the cost of deciding if rules conflict?
Posted by Stuart Morgan at May 5, 2005 10:48 AMGecko sorts the rules by precedence and so when matching rules you always consider them in precedence order.
Posted by hyatt at May 5, 2005 12:14 PMHello, I know I'm out of topic here but I noticed that Safari is really taking a huge amount of memory.
About 80 MB here on Tiger 10.4.0 (8A428) and Safari 2.0 (412), even when there is no window open in Safari !
I was wondering if this is a normal behavior or not...
Hi, first, thanks so much for the tomes of invaluable information in your blog! Just stubled accross it. Its great to have such an inside view. Personally I find Safari the most palatable and predicatable browsers to develop for, some great changes in 1.3 - getting contentEditable to work will save one of my clients having to buy a PC just for his CMS...
I think this is an old one, but just came across it for the first time properly today. Please please please can we have Animated GIFs work as background images. Then i can really banish Java/button rendering in a couple of my CMSs. CSS/AnimatedGIF rollovers seem to work well in MSIE6, but in nothing on the mac...
many thanks, Tom
Posted by Tom Cowland at May 7, 2005 4:04 PMThomas Clement.
it sounds to me you have either have allot of plug-ins or windows are open.
safari with all windows closed normally uses 45MB top
i have 1.5GB maybe the amount of ram also matters "i don't know"
it seems safari gets addressed a XX amount of ram when your using it.
there more ram you require for safari the more ram safari reserves.
open up 100+ windows and ram usage can go up to 256MB ;)
YEA I GOT IT UP TO 512MB.
with opening allot of windows.
here is the image ;)
http://www.spymac.com/gallery/show_photo.php?picid=400381&size=big
Most of the time I don't get over 45 MB, but sometimes it goes over than that even with all windows closed and no weird plug-ins...
I really don't know what is all this memory taken for...
I have 512 MB here, I will upgrade to 1,25 GB soon.
Anyway, Safari really is a great application :-)
And I'm sure it will keep getting better and better (on the memory side too I hope).
Thanks Dave for your great work !
Posted by Thomas Clement at May 8, 2005 7:21 AMIf high-precedence rules are considered first, wouldn't that mean that general rules are almost always calculated at or near many leaves, rather than being cached near the root of the tree? It seems like that would be costly in common cases where a stylesheet does something like set a font for all paragraphs, but also has various special paragraph stylings unrelated to font for some paragraphs. Or does the categorization mostly negate that cost?
Posted by Stuart Morgan at May 8, 2005 12:08 PMWhen building the rule tree, you walk from lowest precedence to highest precedence. This ensures that the more general rules are higher up in the tree (close to the root).
After walking from the low-to-high direction you end up at a final rule node in the rule tree. You then go backwards from high-to-low precedence through the rule tree (from the leaf back towards the root) to discover style data that you need (stopping once that data has been found).
Sorry to be off-topic, but I cannot see how to submit a question.
The site "www.myepisodes.com" doesn't work in Safari, and the guy who runs the site claims this is because Safari does not support "P3P", as defined at http://www.w3.org/P3P/. Here's a quote from him:
The problem with Safari is that it probably don't save session based cookies if they differ from the domain. So safari wants the cookies to come from www.myepisodes.com but infact it is receiving it from myepisodes.xtreme2000.dk. Many "new" browsers doesn't support this feature. If you want to learn about it then it is called "P3P" support. Read about it here: http://www.w3.org/P3P/
Can you confirm is this is accurate, and if so, please fix! Otherwise, please let me know and I'll pass it on.
Thanks a lot.
Posted by Chris Mason at May 8, 2005 5:00 PMurl=http://www.touchweb.com.cn/webpage/1.htm 触摸屏
url=http://www.feilun.com.cn/intr.html 离心机
url=http://www.casc44.com 衡器
url=http://www.sb1818.com 商标
url=http://www.sb1818.com 商标注册
url=http://www.sb1818.com 商标转让
url=http://www.sb1818.com 公司注册
The rule is placed into one of four hashtables depending on which category it falls into.
Posted by luxuryguider to luxurylifestyle at May 9, 2005 12:33 AMIn answer to Chris Mason's question: safari has options to accept cookies from all sites, no sites, or "only site that I navigate to". I think that third is the default state, good for avoiding ad cookies, but might also affect what you're talking about. Try setting to accept from all sites, that might do it.
Posted by Chris Renner at May 9, 2005 3:17 PMI'm not at all sure if I'm knocking on the right door, but Safari 2.0 (412) still doesn't support THEADERs properly, they're a bit too narrow (i.e. narrower than the table they are in).
Posted by Pies at May 10, 2005 6:19 AMOff topic, sorry, but why doesn't Safari like to Cut/Copy/Paste into JTextFields in applets, when it does in AWT TextFields?
Posted by KBailey at May 11, 2005 4:12 PMhttp://www.luxuryguider.com/
Luxury Links to Luxury Lifestyle
Luxury lifestyle Links top portal specializing in Luxury deals, high end product and services, and top of the range items. The Internet has changed the way that we buy online,
i am an idiot and i am lead by richard simmons
Posted by idiot at May 13, 2005 6:39 PM(Sorry about my ugly english)
Really interessing :D
Before a CSS interpretation, do you parse the css to know whitch complex thing (1) are into ?
If not, is that mean all think are reserved in memory before reading the CSS file ? (in the counter exemple, you have to store a variable and two functions at least).
(1) : like counters : http://www.w3.org/TR/CSS21/syndata.html#counter
Posted by Sky.X at May 15, 2005 12:27 AMCSS you say, eh...
Any chance of supporting multiple flowing columns?
http://www.w3.org/TR/2001/WD-css3-multicol-20010118/
I find it the best way to view long content:
http://amarsagoo.blogspot.com/
Cheers,
Ari
I know this is off topic, but there are a fair number of poeple with knowledge and influence regarding CSS here, So I think this is worth posting.
COuld someone explain why a % height is not within the CSS specification - as a designer, this is a pretty essential aspect of creating a layout - without this, many hacks, or work arounds are required for layouts.
Alternativly design styles must change to accomodate a programmers view of what a mark up language should achieve.
Is there a logic, or has this been defined by a buch of programmers rather than designers?
Additionally align top, bottom and middle etc is an interesting omission when layouting out box model items...
Posted by Finn at May 17, 2005 4:54 PMFound a bug in safari. If you have:
blah
Then assign an onmousedown event to that label - safari will crash when you click on the label every time (safari 1.2.4).
Cheers,
Ben
Bloody thing.
meant to write: [label for="blah"]blah[/label]
Posted by Ben at May 17, 2005 11:41 PMSafari 2.0 cannot display the tabs (search tabs) on the yahoo.com frontpage.
Posted by Chris Deeds at May 18, 2005 6:44 AMOne thing Safari 1.0-1.3 doesn't seem to support at all: line-height. I've tried specifying it numerically (1.25, 1.33), in pxin em - nothing changes.
Posted by Dan Knight at May 19, 2005 9:01 AMThanks for the great work on Safari. It generally works quite well. But do you have any idea when Safari's improper handling of motion JPEGs (a feed from an Axis webcam) is going to be fixed? It worked with the original version but was broken somewhere along the line. I turned in a bug report, but have never heard anything back and it is still broken in Safari 2.0. One difference with 2.0 is that it it doesn't keep downloading data, it gives an error of "unsupported URL". The same page works just fine in Internet Explorer, FireFox, etc. Actually, Safari is the only one I've tried that it doesn't work in.
One of the pages involved is: http://www.culver.org/WebCams/legion.asp.
Posted by Lewis Kopp at May 22, 2005 8:49 AMarthritis
rheumatoid arthritis
arthritis pain relief
arthritis pain
arthritis treatment
http://arthritis-relief.bargainfront.com
Dan: Re. line-height -- not sure why you're not seeing it work, but I use it all the time (and so do many others), and it works as expected in all recent versions of Safari.
Make sure you don't put a space between the value and the units -- I think that can cause it to fail. (i.e., line-height: 1.5em; *not* line-height: 1.5 em;)
Posted by John Weston at May 24, 2005 3:31 PMWhether you are looking for swinging couples or sexy singles as new swing partners, or just seeking someone to hang out with, you'll be able to find exactly who you are looking for, locally or around the world. Our users are looking for lasting friendships with those they can share their most "intimate secrets and fantasies".
Posted by Derik at May 27, 2005 9:31 AMaffiliate program
free affiliate program
affiliate
affiliate marketing
best affiliate program
http://affiliate-guide.bargainfront.com
abdominal workouts
abdominals
fitness workouts
abdominal exercises
ab exercises
back exercises
http://getinshape.sandhillaudio.com
learn to play guitar
guitar lesson
how to play guitar
learn guitar
beginner guitar
http://learn-guitar.bargainfront.com
Lewis Kopp,
In response to your Axis query...
IE doesn't support motion JPEG. Axis supports playback in IE by supplying an ActiveX plug-in to patch up Internet Explorer's inadequacy. I'm pretty sure that Quicktime can decode MJPEG so Axis could fix this problem quite simply by supplying a Safari page that uses Quicktime for playback in a similar manner to the IE thing they provide.
I too was under the impression that it worked with Safari but it's been a long time since I've tried it out. As soon as I figure out where in our lab our Axis video server has been moved to I'll have a play with it and see if I can get it working through Quicktime.
Posted by Senjaz at June 2, 2005 6:24 AMmarketing techniques
power words
business & money
increase sales
advertising
http://10kwords.pedronetwork.com
catering
catering business ideas
starting catering business
catering services
self catering
http://catering.pedronetwork.com
The algorithm to locate a shared style then goes something like this. You walk through your previous siblings and for each one see if the above 10 conditions are met. If you find a match, then simply share your style information with the other element. Such a system obviously assumes a reference counting model for your front end style information.
http://www.luxuryguider.com/
Luxury Lifestyle Links top portal
Hi Dave,
I'm fiddling around with canvas on 10.4.1 (Safari v412) and quickly encountered a couple of problems. I tried searching on the web for these things, but judging from the sheer lack of results it feels like I'm the only one on the planet working with Canvas in Safari...
First, context.quadraticCurveTo is not implemented. I read on a blog that another function quadraticCurveToPoint exists instead, but the spec doesn't mention this at all.
Second, I can't get gradients to work. I tried to create a linear gradient from 0,0 to 300,300 (the canvas' full size) and then calling addColorStop at 0.0 and 1.0, setting the gradient as the current fillStyle and calling fillRect, but I just get a black background everytime.
Also, passing in nonsense color values to addColorStop does not yield an exception, as specified by the WHAT-WG spec. And Apple's canvas class spec has an error in that it says that addColorStop is a function of the 2d context instead of the CanvasGradient interface.
More generally, the state of documentation of the Canvas interface is rather dismal. The extra info in the WHAT-WG spec help a bit more, but I since things just don't work, I am rather at a loss as to what to do now.
I think that the canvas element is one of the more exciting things to come from browsers in a while, especially now that Firefox 1.1 also supports it. Now that I mention it, FF treats canvas as an object tag with fallback content. Will Safari follow suit?
Will there be an update to Safari in 10.4.2 that fixes the outstanding canvas bugs? I'll file bugs with radar just in case. Sorry for adding to the spam in your post.
Best regards, Arthur Langereis
Posted by Arthur Langereis at June 5, 2005 5:13 AMkittens
cat health
kitten
cat care
kitten care
pet health care
http://cathealth.sandhillaudio.com
catering
catering business ideas
starting catering business
catering services
self catering
http://catering.pedronetwork.com
magazine
magazine subscriptions
discount magazines
discount magazine subscriptions
buy magazines online
http://magazines.dealfront.com
kittens
cat health
kitten
cat care
kitten care
pet health care
http://cathealth.sandhillaudio.com
ass cumshot asian [] ass cumshot black [] ass cumshot blondies [] ass cumshot british [] ass cumshot ebony [] ass cumshot french [] ass cumshot hungarian [] ass cumshot mexican [] ass cumshot movies [] ass cumshot pics [] ass cumshot pictures [] ass cumshot polish [] ass cumshot pornstars [] ass cumshot redhead [] ass cumshot white [] ass cumshots [] ass cunt [] ass cunts [] ass curly [] ass cute [] ass cutie [] ass cuties [] ass cynthia [] ass daily [] ass danni [] ass debbie [] ass debbie african [] ass debbie amateur [] ass debbie arab [] ass debbie arabian [] ass debbie black [] ass debbie blond [] ass debbie british [] ass debbie clips [] ass debbie french [] ass debbie german [] ass debbie mexican [] ass debbie movie [] ass debbie pics [] ass debbie picture [] ass debbie polish [] ass debbie pornstar [] ass debbie redhead [] ass debbie russian [] ass deep [] ass deepthroating [] ass delilah [] ass demand [] ass devon [] ass dick [] ass dildo [] ass dildo african [] ass dildo amateurs [] ass dildo arab [] ass dildo asian [] ass dildo black [] ass dildo blondies [] ass dildo british [] ass dildo ebony [] ass dildo french [] ass dildo hungarian [] ass dildo mexican [] ass dildo movies [] ass dildo pics [] ass dildo pictures [] ass dildo polish [] ass dildo pornstars [] ass dildo redhead [] ass dildo white [] ass doctor [] ass doggystyle [] ass doing [] ass dom [] ass domain [] ass domination [] ass dorm [] ass double [] ass download [] ass download african [] ass download amateurs [] ass download arab [] ass download asian [] ass download black [] ass download blondies [] ass download british [] ass download ebony [] ass download french [] ass download hungarian [] ass download mexican [] ass download movies [] ass download pics [] ass download pictures [] ass download polish [] ass download pornstars [] ass download redhead [] ass download white [] ass downloads [] ass dressed [] ass drew [] ass drunk
Posted by ez at June 7, 2005 2:14 AMdupa pizdy pierdolenie [] dupa pizdy posladek [] dupa pizdy puszyste [] dupa pizdy sylwia [] dupa pizdy zuzanna [] dupa pl alina [] dupa pl boguslawa [] dupa pl darmowe [] dupa pl erotyczne [] dupa pl halina [] dupa pl kamila [] dupa pl lidia [] dupa pl masturbuje [] dupa pl namietne [] dupa pl orgia [] dupa pl ponczochy [] dupa pl sianie [] dupa pl wanda [] dupa plaza [] dupa plaza azjatki [] dupa plaza cycata [] dupa plaza duze [] dupa plaza free [] dupa plaza janina [] dupa plaza krystyna [] dupa plaza malgorzata [] dupa plaza monika [] dupa plaza ogloszenia [] dupa plaza pijane [] dupa plaza renata [] dupa plaza szmaty [] dupa poczula wilgoc [] dupa pod prysznicem [] dupa podczas orgazmu [] dupa polki [] dupa polki barbara [] dupa polki cycate [] dupa polki dupcia [] dupa polki ewa [] dupa polki helena [] dupa polki karolina [] dupa polki lizanko [] dupa polki miroslawa [] dupa polki nastoletnie [] dupa polki ostra [] dupa polki porno [] dupa polki pupcie [] dupa polki soczyste [] dupa polki tyleczek [] dupa polki wielkie [] dupa polscy agata [] dupa polscy beata [] dupa polscy cyce [] dupa polscy dziwki [] dupa polscy gole [] dupa polscy jebanko [] dupa polscy kurwy [] dupa polscy marianna [] dupa polscy murzynki [] dupa polscy olga [] dupa polscy pizdy [] dupa polscy ruda [] dupa polscy teresa [] dupa polska [] dupa polska analny [] dupa polska cipka [] dupa polska dorota [] dupa polska flash [] dupa polska ilona [] dupa polska kinga [] dupa polska lolitki [] dupa polska mlodzi [] dupa polska natalia [] dupa polska panienki [] dupa polska pornosy [] dupa polska striptease [] dupa polska zdjecia [] dupa polskie akt [] dupa polskie biust [] dupa polskie cycuszki [] dupa polskie edyta [] dupa polskie gorace [] dupa polskie jolanta [] dupa polskie laska [] dupa polskie marta [] dupa polskie nagie [] dupa polskie opowiadania [] dupa polskie plaza [] dupa polskie pupcia [] dupa polskie striptiz [] dupa polskie tylek [] dupa polskie zdzicha [] dupa pomoc domowa nago [] dupa ponczochy aktorki [] dupa ponczochy blachara [] dupa ponczochy danuta [] dupa ponczochy eliza [] dupa ponczochy gosia [] dupa ponczochy julia [] dupa ponczochy laski
Posted by ez at June 7, 2005 2:14 AMasshole sunbathing bush [] asshole sunbathing hairs [] asshole sunbathing unshaved [] asshole super hair [] asshole super hairy [] asshole super unshaven [] asshole supermodels haired [] asshole supermodels shave [] asshole swallow bush [] asshole swallow hairs [] asshole swallow unshaved [] asshole swallowing hair [] asshole swallowing hairy [] asshole swallowing unshaven [] asshole swallows haired [] asshole swallows shave [] asshole swedish bush [] asshole swedish hairs [] asshole swedish unshaved [] asshole sweet hair [] asshole sweet hairy [] asshole sweet unshaven [] asshole swingers haired [] asshole swingers shave [] asshole swinging bush [] asshole swinging hairs [] asshole swinging unshaved [] asshole sydney hair [] asshole sydney hairy [] asshole sydney unshaven [] asshole sylvia haired [] asshole sylvia shave [] asshole tamil bush [] asshole tamil hairs [] asshole tamil unshaved [] asshole tanned hair [] asshole tanned hairy [] asshole tanned unshaven [] asshole teacher haired [] asshole teacher shave [] asshole tease bush [] asshole tease hairs [] asshole tease unshaved [] asshole teasing hair [] asshole teasing hairy [] asshole teasing unshaven [] asshole technique haired [] asshole technique shave [] asshole teen bush [] asshole teen hairs [] asshole teen unshaved [] asshole teenage hair [] asshole teenage hairy [] asshole teenage unshaven [] asshole teenagers haired [] asshole teenagers shave [] asshole teenhairy bush [] asshole teenhairy hairs [] asshole teenhairy unshaved [] asshole teenie hair [] asshole teenie hairy [] asshole teenie unshaven [] asshole teens haired [] asshole teens shave [] asshole tera bush [] asshole tera hairs [] asshole tera unshaved [] asshole tgp hair [] asshole tgp hairy [] asshole tgp unshaven [] asshole thai haired [] asshole thai shave [] asshole thailand bush [] asshole thailand hairs [] asshole thailand unshaved [] asshole that hair [] asshole that hairy [] asshole that unshaven [] asshole the haired [] asshole the shave [] asshole thick bush [] asshole thick hairs [] asshole thick unshaved [] asshole three hair [] asshole three hairy [] asshole three unshaven [] asshole threesome haired [] asshole threesome shave [] asshole threesomes bush [] asshole threesomes hairs [] asshole threesomes unshaved [] asshole throat hair [] asshole throat hairy [] asshole throat unshaven [] asshole thumb haired [] asshole thumb shave [] asshole thumbnail bush [] asshole thumbnail hairs [] asshole thumbnail unshaved [] asshole thumbnails hair
Posted by ezez at June 7, 2005 2:15 AMclip games strokejobs [] clip gangbang stroke jobs [] clip gangbanging handjobs [] clip garden hand jobs [] clip garden tugjobs [] clip gay strokejobs [] clip gemini stroke jobs [] clip genres handjobs [] clip german hand jobs [] clip german tugjobs [] clip gets strokejobs [] clip getting stroke jobs [] clip ghettohoochies handjobs [] clip gif hand jobs [] clip gif tugjobs [] clip gifford strokejobs [] clip giga stroke jobs [] clip giovanni handjobs [] clip girl hand jobs [] clip girl tugjobs [] clip girls strokejobs [] clip give stroke jobs [] clip gives handjobs [] clip giving hand jobs [] clip giving tugjobs [] clip glass strokejobs [] clip glasses stroke jobs [] clip glory handjobs [] clip gloryhole hand jobs [] clip gloryhole tugjobs [] clip gloves strokejobs [] clip golden stroke jobs [] clip good handjobs [] clip gothic hand jobs [] clip gothic tugjobs [] clip granny strokejobs [] clip great stroke jobs [] clip group handjobs [] clip groupsex hand jobs [] clip groupsex tugjobs [] clip guerra strokejobs [] clip gundam stroke jobs [] clip gushing handjobs [] clip guy hand jobs [] clip guy tugjobs [] clip guys strokejobs [] clip gym stroke jobs [] clip gymnast handjobs [] clip hair hand jobs [] clip hair tugjobs [] clip hairless strokejobs [] clip hairy stroke jobs [] clip hand handjobs [] clip hand job [] clip hand jobs [] clip handjob [] clip handjob hand jobs [] clip handjob tugjobs [] clip handjobs [] clip handjobs strokejobs [] clip hard stroke jobs [] clip hardcore handjobs [] clip health hand jobs [] clip health tugjobs [] clip heaven strokejobs [] clip heels stroke jobs [] clip hentai handjobs [] clip her hand jobs [] clip her tugjobs [] clip here strokejobs [] clip hersweethand stroke jobs [] clip hersweethands handjobs [] clip hetero hand jobs [] clip hetero tugjobs [] clip hetro strokejobs [] clip hidden stroke jobs [] clip hirsute handjobs [] clip hitcher hand jobs [] clip hitcher tugjobs [] clip hole strokejobs [] clip holes stroke jobs [] clip home handjobs [] clip home made strokejobs [] clip home tugjobs [] clip homemade strokejobs [] clip honey stroke jobs [] clip horny handjobs [] clip hose hand jobs [] clip hose tugjobs [] clip hot strokejobs [] clip hottie stroke jobs [] clip house handjobs [] clip housewife hand jobs [] clip housewife tugjobs [] clip housewives strokejobs [] clip houston stroke jobs [] clip how handjobs [] clip huge hand jobs [] clip huge tugjobs [] clip humor strokejobs
Posted by ez at June 7, 2005 2:15 AMcatering
catering business ideas
starting catering business
catering services
self catering
http://catering.pedronetwork.com
kittens
cat health
kitten
cat care
kitten care
pet health care
http://cathealth.sandhillaudio.com
kittens
cat health
kitten
cat care
kitten care
pet health care
http://cathealth.sandhillaudio.com
kittens
cat health
kitten
cat care
kitten care
pet health care
http://cathealth.sandhillaudio.com
Interesting and great informations on this website. Nice job! Get infos about all the pills on the market, about true or false effects. Try: http://www.pillsinfos.com
Penis enlargement
Interesting and great informations on this website. Nice job! Get infos about all the pills on the market, about true or false effects. Try: http://www.pillsinfos.com
Penis enlargement
kittens
cat health
kitten
cat care
kitten care
pet health care
http://cathealth.sandhillaudio.com
catering
catering business ideas
starting catering business
catering services
self catering
http://catering.pedronetwork.com
kittens
cat health
kitten
cat care
kitten care
pet health care
http://cathealth.sandhillaudio.com
quit smoking
stop smoking
smoking cessation programs
cigarette addiction information
nicotine addiction
nicotine patch
http://quitsmoking.crpublish.com
paris Hilton
carmen electra
angelina jolie
pamela Anderson
harry potter
lindsay lohan
star wars
russell crowe
movies
simpsons
http://movadvancejeff.pedronetwork.com
voip
voip phone
broadband phone service
broadband phone
voice over ip
voip service
http://voip.dealfront.com
voip
voip phone
broadband phone service
broadband phone
voice over ip
voip service
http://voip.dealfront.com
acne treatment
acne products
acne treatments
acne scars
acne skin care
acne skin care products
blackheads
best acne treatments
natural acne treatment
microdermabrasion acne
acne medication
acne control
acne scar removal
acne home remedy
http://acne.crpublish.com
catering
catering business ideas
starting catering business
catering services
self catering
http://catering.pedronetwork.com
acne treatment
acne products
acne treatments
acne scars
acne skin care
acne skin care products
blackheads
best acne treatments
natural acne treatment
microdermabrasion acne
acne medication
acne control
acne scar removal
acne home remedy
http://acne.crpublish.com
catering
catering business ideas
starting catering business
catering services
self catering
http://catering.pedronetwork.com
catering
catering business ideas
starting catering business
catering services
self catering
http://catering.pedronetwork.com
catering
catering business ideas
starting catering business
catering services
self catering
http://catering.pedronetwork.com
acne treatment
acne products
acne treatments
acne scars
acne skin care
acne skin care products
blackheads
best acne treatments
natural acne treatment
microdermabrasion acne
acne medication
acne control
acne scar removal
acne home remedy
http://acne.crpublish.com
bass guitar
bass lessons
bass guitar lessons
music lessons
bass guitar lessons
http://bassriffs.pedronetwork.com
phobias
phobia
phobia cures
fear
treating phobias
http://hypnow.pedronetwork.com
how to attract women
what women want
dating advice
dating tips for men
dating tips
http://fdw247.pedronetwork.com
anti aging
fitness nutrition
lose weight
natural health products
six pack
http://bevopub.pedronetwork.com
cellulite treatment
cellulite reduction
getting rid of cellulite
causes of cellulite
cellulite cream
http://callenbr2.pedronetwork.com
xango
xango mangosteen
xango juice
xango distributor
xango info
business opportunity xango
http://xango.mypedro.com
buy cds
cheap cds
bmg music
bmg music service
http://buy-cds.sweetbuyz.com
xango
xango mangosteen
xango juice
mangosteen
mangosteen juice
http://www.mangosteen-products.com
people search
people finder
free people search
free people finder
http://people-search.crpublish.com
government grants
small business grants
grant writing
http://www.grants-unlimited.com
Great site, was just reading and doing some work when I found this page
Posted by ebony ass at July 5, 2005 3:19 PMGreat blog, enjoyed browsing through the site
Posted by ebony at July 5, 2005 4:38 PMI saw this yesterday on Zeldman’s A list Apart: “If you’re using Safari 1.3 or 2.0, the subnavigation in our sidebar starts in the wrong place, and the diamond markers preceding each list item are superimposed over the crack between columns. Dave Hyatt, Apple’s Safari chief, fixed the bug the same day we reported it. Updated versions of Safari 1.3/2, free of said bug, will become available very soon.”
Is there a method we can use to report DOM issues that are causing the behavior of our products to change from one Safari version and OS to another? And to get souch good response time? We’d like to play by the rules but are confused as to how bugs and issues are both reported and prioritized.
And here is a test case: http://www.projectseven.com/csslab/testing/safari/alignbad.htm
On the first page (alignbad.htm), operate the menu. The first pass through all the levels, alignment of the sub-menus vis a vis the parent, is perfect. That is, it is offset both vertically and horizontally. The second pass through the levels, results in the sub-menus at the third level being misaligned relative to their parents. On page 2 (aligngood.htm) the alignment remains perfect. Embedded in that page are the CSS fixes, so just view source and look for the commented rules.
This anomaly did not occur when we developed and tested this product. Testing was done on Jaguar and early versions of Panther. Jaguar is still perfect, while Panther Safari has been updated somewhere along the line with a change that causes this problem. We have no idea what Tiger versions are doing.
Do you have a reason for this anomaly (all other browsers are fine and have been all along)?
Al Sparber
Posted by Al Sparber at July 9, 2005 10:28 AMfishing
fly fishing
bass fishing
lures
http://fishinglures.sweetbuyz.com
day care
child daycare
daycare center
starting a day care
home day care
http://daycare-business-guide.bargainfront.com
people finder
people search
background checks
search people
people finder free
http://people-finder.crpublish.com
american idol
american idol on fox
american idol auditions
american idol results
american idol auditions
paula abdul
simon cowell
kelly clarkson
clay aiken
carrie underwood
http://american-idol.pedronetwork.com
genealogy
history
family history
family
family tree
ancestry
geneology
death records
http://genealogy.pedronetwork.com
sprinkler
sprinkler system
lawn sprinklers
lawn sprinkler systems
lawn maintenance
http://autowater.pedronetwork.com
Shopping
online shopping
shop
paid to shop
shopping network
http://paidtoshop.sweetbuyz.com
golf
golf clubs
golf equipment
golf carts
golfing
golf tips
http://golf.sweetbuyz.com
people search
people finder
free people search
free people finder
http://people-search.crpublish.com
Music Lyrics
Music
Free Music Downloads
mp3 Downloads
http://mp3site.sweetbuyz.com
female orgasm
orgasm
woman orgasm
giving women orgasms
multiple orgasms
sexual pleasures
sexual dysfunction
g spot
sexual intercourse
masturbation
mutual masturbation
tips
techniques
ejaculation
female ejaculation
clitoris
G-spot
female ejaculate
vagina
stimulation
G-spot orgasm
orgasmic contractions
sex
sexuality
erotic
sex life
gspot
sex education
sexual pleasure
female ejaculation
G-Spot
Grafenberg
GrafenberG-Spot
counseling
sexuality
sensuality
sex counseling
intimacy
sex therapy
erection
sexual advice
sexual intimacy
therapy
marriage counseling
sex
couples counseling
couples therapy
bliss
human sexuality
sexual problems
marital problems
marital therapy
sexual arousal
intercourse
sexual pleasure
http://orgasm.ocsparkle.com
romance
relationships
relationship advice
matchmaking
find your match
http://108secrets.pedronetwork.com
funny jokes
jokes
funny
funny quotes
funny stuff
humor
http://jokeebook.sweetbuyz.com
golf swing
free golf tips
beginner golf
golf instruction guide
golf book
fix slice
http://golf-swing-guide.bargainfront.com
burnplus
burn plus
burn plus music
burnplus music
burnplus mp3
burn plus mp3
burn plus music downloads
burnplus music downloads
burnplus software
burn plus software
burnplus free
burn plus free
free burnplus
free burn plus
http://burn-plus.sweetbuyz.com
Golf tips
Golf swing
proper golf swing
free golf tips
perfect golf swing
golf swing mechanics
golf swings
Golf tips for beginners
improve golf swing
how to swing a golf club
basic golf swing
golf swing secret
golf tips lessons on the web
lengthen your drive
http://Golfswing.sweetbuyz.com
magic
magic tricks
do you believe in magic
card tricks
http://magic-tricks.sweetbuyz.com
find people
people finder
web detective
detective
best people finder
find anything
web detectives
web detective search
web detective criminal records online
find sex offenders
locate military records
complete criminlal records
background checks
http://onlinedetective.sweetbuyz.com
snoring
stop snoring
how to stop snoring
snoring remedies
http://snoring.swedenetwork.com
weight loss
obesity
overweight
weight
http://30dayweightloss.teddbot.com
fishing
bass fishing
largemouth bass
http://bassfishing.teddnetwork.com
baby sleep
baby sleep problem
baby to sleep through the night
infant sleep
baby sleep secrets
http://baby-sleep-secrets.bargainfront.com
atv
dirt bikes
used motorcycles
dirtbikes
atvs
http://www.midgetmotorsports.com
psychics
psychic reading
numerology
predictions
http://123num.teddbot.com
quit smoking
stop smoking
smoking
http://qutsmokingnow.teddbot.com
disney
Disney
walt disney
disney movies
disney films
http://disney.swedenetwork.com
sibu
sibu balance
seabuckthorn
seabuckthorn fruit
sibu opportunity
sebu
sibu distributor
http://sibu.crpublish.com
nutritional supplements
natural health products
omega 3
natural health supplements
natural health supplement
natural health remedies
omega oils
essential fatty acids
http://omega-3.crpublish.com
dog training
http://dog-training.mypedro.com
free music downloads
music downloads
http://www.myfreemp3s.com
napoleon dynamite tshirts
napoleon dynamite t-shirtss
napoleon dynamite quotes
napoleon dynamite
http://napoleon-dynamite.sweetbuyz.com
Thanks for posting this
Posted by ebony at July 18, 2005 1:43 AMHow old is this post?
Posted by ebony ass at July 18, 2005 2:09 AMmusic lyrics
song lyrics
free lyrics search
http://music-lyrics.mypedro.com
snowboarding
snowboarding tricks
snowboarding tips
snowboard
how to snowboard
http://amazingins.pedronetwork.com
depression test
clinical depression
symptoms of depression
cause of depression
depression symptoms
http://medagd.pedronetwork.com
adhd
add
attention deficit disorder
learning disabilities
attention deficit hyperactivity disorder
http://nicheprop.pedronetwork.com
music lyrics
song lyrics
lyrics
free lyrics search
http://music-lyrics.mypedro.com
packet8
phone service
local phone service
viop phone service
broadband phone service
VoIP
http://packet8.swedenet.com
basketball
baseball
football
shoes
nike
nike shoes
jordan shoes
eastbay
adidas
reebok
Volleyball
sports equipment
http://eastbay.swedenet.com
hoodia
hoodia gordonii
buy hoodia
hoodia diet
hoodia diet pills
hoodia weight loss
hoodia gordoni
http://hoodia.crpublish.com
hoodia
hoodia gordonii
hoodia
hoodia slim
pure hoodia gordonii
buy hoodia
hoodia plant
hoodia gordonii cactus
http://hoodia.belleity.com
fitness
bodybuilding
muscle
http://muscles.teddbot.com
people finder
people search
background checks
search people
people finder free
http://people-finder.sweetbuyz.com
free adds
post free adds
advertising
http://freeadds.teddbot.com
engagement rings
wedding rings
jewelry
diamonds
http://shaneco.swedenet.com
credit cards
citibank
college loans
citibank online payment
http://citibankconsumer.swedenet.com
Nice work and great ideas. Get infos about all the pills on the market, about true or false effects. Try: http://www.helpful-products.com
Penis enlargement products
download movies
free movie downloads
music video downloads
free music vidoes
http://movadvance.pedronetwork.com
psychics
psychic reading
numerology
predictions
http://123num.teddbot.com
people search
http://people-search.crpublish.com
movie downloads
internet movies
streaming movies
free moviez
internet movies
http://movie-downloads.bargainfront.com
anti virus
virus
antivirus
http://antivirus.teddnetwork.com
nail fungus
toe nail fungus
toenail fungus
foot fungus
nail fungus treatment
http://fixmy.pedronetwork.com
golf
golf clubs
golf equipment
golf carts
golfing
golf tips
http://golf.sweetbuyz.com
ipod
apple ipod
ipod mini
apple computers
computers
electronics
music
http://applestore.pedronetwork.com
Vertical jump
plyometric exercises
how to jump higher
slam dunk
vertical leap
Plyometric Drills
exercises to jump higher
learn to dunk
http://goupstrong.sweetbuyz.com
surveys
survey
online surveys
paid surveys
http://paidsurveys.sweetbuyz.com
divorce
marriage
marriage help
marital problems
http://savemymarriage.teddbot.com
fishing
bass fishing
largemouth bass
http://bassfishing.teddnetwork.com
breath
halitosis
bad breath
mouth
http://badbreath.teddnetwork.com
cheating
infidelity
cheaters
affair
http://cheatingspouse.teddnetwork.com
teeth whitening
white teeth
tooth whetening
tooth whitener
zoom teeth whiteing
teeth bleaching
http://free-teeth-whitening.swedenet.com
investment
real estate investment
fidelity investments
investment properties
http://investors-institute-seminar.swedenet.com
athletes foot
foot fungus
jock itch
nail fungus
toenail fungus
toe nail fungus
nail fungus treatment
athletes foot relief
toenail fungus cures
home remedies for toenail fungus
nail fungus - remedies
http://athjockfr.pedronetwork.com
tv show downloads
download tv show
download free tv show
online tv
watch tv online
tv show download
http://download-tv-shows.bargainfront.com
engagement rings
wedding rings
jewelry
diamonds
http://shaneco.swedenet.com
petsmart
dog breeds
cats
dogs for sale
horses
dog
http://petsmart.swedenet.com