<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Are You Kidding Me?</title>
	<atom:link href="http://blog.vlad1.com/2008/02/15/are-you-kidding-me/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.vlad1.com/2008/02/15/are-you-kidding-me/</link>
	<description>Look, it's a tagline!</description>
	<pubDate>Fri, 04 Jul 2008 00:57:09 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Boris</title>
		<link>http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-449</link>
		<dc:creator>Boris</dc:creator>
		<pubDate>Tue, 19 Feb 2008 09:21:14 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-449</guid>
		<description>It looks like the "don't block on flushes" thing that went in today reduced the chrome overhead a good bit....</description>
		<content:encoded><![CDATA[<p>It looks like the &#8220;don&#8217;t block on flushes&#8221; thing that went in today reduced the chrome overhead a good bit&#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: vladimir</title>
		<link>http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-425</link>
		<dc:creator>vladimir</dc:creator>
		<pubDate>Sun, 17 Feb 2008 21:41:33 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-425</guid>
		<description>So, using NSScroller can be done, but there doesn't seem to be any way to programatically set the state of the various buttons.  NSScroller has the nice advantage of being able to render into transformed contexts, which HITheme can't seem to do, but the buttons thing is a showstopper.  Anyway, it also does the syscalls, so no real gain there.

However, to be clear, the syscalls aren't the performance issue here.  They're just ridiculously unnecessary.</description>
		<content:encoded><![CDATA[<p>So, using NSScroller can be done, but there doesn&#8217;t seem to be any way to programatically set the state of the various buttons.  NSScroller has the nice advantage of being able to render into transformed contexts, which HITheme can&#8217;t seem to do, but the buttons thing is a showstopper.  Anyway, it also does the syscalls, so no real gain there.</p>
<p>However, to be clear, the syscalls aren&#8217;t the performance issue here.  They&#8217;re just ridiculously unnecessary.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Boris</title>
		<link>http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-423</link>
		<dc:creator>Boris</dc:creator>
		<pubDate>Sun, 17 Feb 2008 21:02:42 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-423</guid>
		<description>JB, the Cocoa thing here is NSScroller.  See Colin's comments on why it's not being used.</description>
		<content:encoded><![CDATA[<p>JB, the Cocoa thing here is NSScroller.  See Colin&#8217;s comments on why it&#8217;s not being used.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Xin Zhang</title>
		<link>http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-422</link>
		<dc:creator>Xin Zhang</dc:creator>
		<pubDate>Sun, 17 Feb 2008 20:39:36 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-422</guid>
		<description>So in OS X, under what condition, a process can change its EUID?</description>
		<content:encoded><![CDATA[<p>So in OS X, under what condition, a process can change its EUID?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: JB</title>
		<link>http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-421</link>
		<dc:creator>JB</dc:creator>
		<pubDate>Sun, 17 Feb 2008 18:55:50 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-421</guid>
		<description>Well looking in /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/HITheme.h

 *  HIThemeDrawTrack()
 *  
 *  Summary:
 *    Draw a themed track item.
 *  
 *  Discussion:
 *    Used to draw any tracked element including sliders and scroll
 *    bars.
 *  
 *  Mac OS X threading:
 *    Not thread safe

I think threads are "where it's at" -- why use old Carbon calls? Does Firefox not want to be Cocoa for any particular reason?</description>
		<content:encoded><![CDATA[<p>Well looking in /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/HITheme.h</p>
<p> *  HIThemeDrawTrack()<br />
 *<br />
 *  Summary:<br />
 *    Draw a themed track item.<br />
 *<br />
 *  Discussion:<br />
 *    Used to draw any tracked element including sliders and scroll<br />
 *    bars.<br />
 *<br />
 *  Mac OS X threading:<br />
 *    Not thread safe</p>
<p>I think threads are &#8220;where it&#8217;s at&#8221; &#8212; why use old Carbon calls? Does Firefox not want to be Cocoa for any particular reason?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fred</title>
		<link>http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-411</link>
		<dc:creator>Fred</dc:creator>
		<pubDate>Sat, 16 Feb 2008 13:34:36 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-411</guid>
		<description>Wow, that's a whole bunch of context switches it's doing there. No wonder it's so slow: IIRC, OSX isn't exactly known for its high performance on that task.</description>
		<content:encoded><![CDATA[<p>Wow, that&#8217;s a whole bunch of context switches it&#8217;s doing there. No wonder it&#8217;s so slow: IIRC, OSX isn&#8217;t exactly known for its high performance on that task.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: An interested party</title>
		<link>http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-406</link>
		<dc:creator>An interested party</dc:creator>
		<pubDate>Sat, 16 Feb 2008 06:57:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-406</guid>
		<description>While this doesn't fix your immediate issue with the call being slow, you should still file a bug with Apple on what you're seeing.

http://developer.apple.com/bugreporter/</description>
		<content:encoded><![CDATA[<p>While this doesn&#8217;t fix your immediate issue with the call being slow, you should still file a bug with Apple on what you&#8217;re seeing.</p>
<p><a href="http://developer.apple.com/bugreporter/" rel="nofollow" onclick="javascript:pageTracker._trackPageview('/outbound/comment/developer.apple.com');">http://developer.apple.com/bugreporter/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Colin Barrett</title>
		<link>http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-405</link>
		<dc:creator>Colin Barrett</dc:creator>
		<pubDate>Sat, 16 Feb 2008 06:30:13 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-405</guid>
		<description>It gets worse! There *is no NSCell for NSScroller*. There's a way to direct the rendering of NSScroller into an offscreen buffer (NSView's displayRectIgnoringOpacity:inContext:), which I looked into, but NSScroller itself is a bit busted. Getting proper metrics out of it was just as bad as HIThemeDrawTrack, and of course broken in different ways.

For a 300% performance hit and getting rid of ridiculous syscalls, it might be worth figuring NSScroller's mysteries. It also might be worth filing a radar. Perhaps it's actually a bug in Apple's code, ha ha?</description>
		<content:encoded><![CDATA[<p>It gets worse! There *is no NSCell for NSScroller*. There&#8217;s a way to direct the rendering of NSScroller into an offscreen buffer (NSView&#8217;s displayRectIgnoringOpacity:inContext:), which I looked into, but NSScroller itself is a bit busted. Getting proper metrics out of it was just as bad as HIThemeDrawTrack, and of course broken in different ways.</p>
<p>For a 300% performance hit and getting rid of ridiculous syscalls, it might be worth figuring NSScroller&#8217;s mysteries. It also might be worth filing a radar. Perhaps it&#8217;s actually a bug in Apple&#8217;s code, ha ha?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Smokey Ardisson</title>
		<link>http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-404</link>
		<dc:creator>Smokey Ardisson</dc:creator>
		<pubDate>Sat, 16 Feb 2008 05:56:53 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-404</guid>
		<description>I can't say the whole thing is sane, but calling into preferences to check for changes is "reasonable," since the scrollbar should change style and behavior when the user changes either the "next page vs. jump-to-here" pref or the arrow-position (which native scrollbars do, but which our themed scrollbars do not do at all--bug 389775--or properly--bug 377439) and the theme and highlight/selection colors (bug 122000).

That said, it seems like a saner API design would have been to make all of HITheme APIs listen for change notifications and only react then instead of calling to see what's going on every single call :-P</description>
		<content:encoded><![CDATA[<p>I can&#8217;t say the whole thing is sane, but calling into preferences to check for changes is &#8220;reasonable,&#8221; since the scrollbar should change style and behavior when the user changes either the &#8220;next page vs. jump-to-here&#8221; pref or the arrow-position (which native scrollbars do, but which our themed scrollbars do not do at all&#8211;bug 389775&#8211;or properly&#8211;bug 377439) and the theme and highlight/selection colors (bug 122000).</p>
<p>That said, it seems like a saner API design would have been to make all of HITheme APIs listen for change notifications and only react then instead of calling to see what&#8217;s going on every single call :-P</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rob</title>
		<link>http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-403</link>
		<dc:creator>Rob</dc:creator>
		<pubDate>Sat, 16 Feb 2008 05:24:34 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/15/are-you-kidding-me/#comment-403</guid>
		<description>This is the classic bad news, good news story with Shark.  The bad news is the bug or overhead you found, the good news is how fast you were able to characterize it.</description>
		<content:encoded><![CDATA[<p>This is the classic bad news, good news story with Shark.  The bad news is the bug or overhead you found, the good news is how fast you were able to characterize it.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
