<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>class-dump &#8211; Wade Tregaskis</title>
	<atom:link href="https://wadetregaskis.com/tags/class-dump/feed/" rel="self" type="application/rss+xml" />
	<link>https://wadetregaskis.com</link>
	<description></description>
	<lastBuildDate>Wed, 13 Dec 2023 19:48:05 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://wadetregaskis.com/wp-content/uploads/2016/03/Stitch-512x512-1-256x256.png</url>
	<title>class-dump &#8211; Wade Tregaskis</title>
	<link>https://wadetregaskis.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">226351702</site>	<item>
		<title>Rotated Windows</title>
		<link>https://wadetregaskis.com/rotated-windows/</link>
					<comments>https://wadetregaskis.com/rotated-windows/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Sun, 26 Feb 2017 08:08:13 +0000</pubDate>
				<category><![CDATA[Ancient History]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Creative]]></category>
		<category><![CDATA[BOMGAR]]></category>
		<category><![CDATA[class-dump]]></category>
		<category><![CDATA[Claus Atzenbeck]]></category>
		<category><![CDATA[CoreGraphicsServices]]></category>
		<category><![CDATA[Growl]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[reverse engineering]]></category>
		<category><![CDATA[Rotated Windows]]></category>
		<category><![CDATA[sitx]]></category>
		<category><![CDATA[Slashdot]]></category>
		<category><![CDATA[StuffIt]]></category>
		<category><![CDATA[Tiger]]></category>
		<category><![CDATA[Undocumented]]></category>
		<guid isPermaLink="false">https://blog.wadetregaskis.com/?p=3863</guid>

					<description><![CDATA[I&#8217;d forgotten about this until I stumbled across a reference to it again recently. This was a little hack I worked on back in 2004, with Mac OS X Tiger (10.4). &#160;Yes, kids, macOS was called Mac OS X back in ye Olden Times. Wow, Slashdot looked even uglier than I remember, back then. &#160;Though&#8230; <a class="read-more-link" href="https://wadetregaskis.com/rotated-windows/" data-wpel-link="internal">Read more</a>]]></description>
										<content:encoded><![CDATA[
<p>I&#8217;d forgotten about this until I stumbled across a reference to it again recently.</p>



<p>This was a little hack I worked on back in 2004, with Mac OS X Tiger (10.4). &nbsp;Yes, kids, macOS was called Mac OS X back in ye Olden Times.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://wadetregaskis.com/wp-content/uploads/2017/02/Rotated-Windows-example.webp" data-wpel-link="internal"><img fetchpriority="high" decoding="async" width="1024" height="768" src="https://wadetregaskis.com/wp-content/uploads/2017/02/Rotated-Windows-example.webp" alt="Rotated Windows example screenshot" class="wp-image-3886" srcset="https://wadetregaskis.com/wp-content/uploads/2017/02/Rotated-Windows-example-512x384@2x.webp 1024w, https://wadetregaskis.com/wp-content/uploads/2017/02/Rotated-Windows-example-256x192.webp 256w, https://wadetregaskis.com/wp-content/uploads/2017/02/Rotated-Windows-example-512x384.webp 512w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>


<p>Wow, Slashdot looked even uglier than I remember, back then. &nbsp;Though amusingly my daily reading list hasn&#8217;t changed substantially &#8211; it still features Slashdot and MacSurfer&#8217;s Headline News.</p>



<p>Also… 1024 x 768. &nbsp;That&#8217;s just over 5% of the resolution of my current display (27&#8243; Retina iMac). &nbsp;It&#8217;s nearly as big as my iPhone 6s&#8217;s screen.</p>



<p>Man, do I <em>not</em> miss those shitty old monitors.</p>



<p>I don&#8217;t recall what the exact impetus was for the project. &nbsp;I do recall that I was spurred on by Claus Atzenbeck, who was doing some kind of academic work into graphical user interfaces and, IIRC, wanted a way to explore window rotation and general manipulation in a real OS.</p>



<p><a href="https://web.archive.org/web/20170421081203/https://www.atzenbeck.de/" data-wpel-link="external" target="_blank" rel="external noopener">Claus&#8217;s personal website</a> still exists, all these years later, though alas <a href="https://web.archive.org/web/20100225222207/http://www.atzenbeck.de/research/wildWindows/" data-wpel-link="external" target="_blank" rel="external noopener">the link</a> to his relevant research is now broken.</p>



<p>What reminded me of this was finding an attribution to me in a header file that was associated with the project &#8211; CoreGraphicsServices.h. &nbsp;This was something I generated (presumably with the help of <a href="http://stevenygard.com/projects/class-dump/" data-wpel-link="external" target="_blank" rel="external noopener">class-dump</a> or similar) from the CoreGraphicsServices framework, and then partially reverse-engineered (in the sense of figuring out parameter types, function prerequisites, etc). &nbsp;It&#8217;s what was necessary to find &amp; use the private APIs for doing window geometry manipulation.</p>



<p>And the only reason my name is on it is because I splatted a 3-clause BSD license into the header file I made, which in hindsight seems highly dubious since the APIs themselves are owned by Apple (insofar as one can &#8216;own&#8217; APIs, I guess…).</p>



<p>A quick web search reveals a few more mentions:</p>



<ul class="wp-block-list">
<li>The aforementioned header is apparently <a href="https://github.com/growl/growl/blob/a8c142ffc90a326a77cbe05962e537b58a91d225/Core/Source/CoreGraphicsServices.h" data-wpel-link="external" target="_blank" rel="external noopener">used by Growl</a>.</li>



<li>&#8220;BOMGAR&#8221;, some kind of remote computer support software, <a href="https://web.archive.org/web/20150115034157/https://www.bomgar.com/open-source-statement" data-wpel-link="external" target="_blank" rel="external noopener">apparently uses the header too</a>.</li>



<li>As does <a href="https://www.marsthemes.com/crystalclear/documentation/index.html" data-wpel-link="external" target="_blank" rel="external noopener">something on marsthemes.com</a>, though at time of writing that website has been largely destroyed for some reason.</li>



<li>This one particularly amuses me &#8211; a <a href="https://www.cocoabuilder.com/archive/cocoa/112898-expose-api.html" data-wpel-link="external" target="_blank" rel="external noopener">brief thread on cocoa-dev@</a> about the header, in which John C. Randolph categorically takes no particular position on the hack. :)</li>
</ul>



<p>The source &amp; other paraphernalia were <a href="https://web.archive.org/web/20051119180659/https://homepage.cs.latrobe.edu.au/wjtregaskis/Rotated%20Windows.sitx" data-wpel-link="external" target="_blank" rel="external noopener">originally posted on my La Trobe University student web hosting account</a>, though of course that&#8217;s long gone. &nbsp;<a href="https://wadetregaskis.com/MobileMe/Public/Rotated%20Windows.sitx" data-wpel-link="internal">Here&#8217;s the original StuffIt archive</a>, if you&#8217;re interested. &nbsp;I don&#8217;t actually know if it&#8217;s the very latest version &#8211; I do still have the project in full &#8211; but it&#8217;s the latest version I ever published, AFAIR.</p>



<p>I leave it as an exercise to the reader on how to decompress StuffIt files in this day and age. :)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wadetregaskis.com/rotated-windows/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			<media:content url="https://wadetregaskis.com/wp-content/uploads/2017/02/Rotated-Windows-example.webp" medium="image" />
<post-id xmlns="com-wordpress:feed-additions:1">3863</post-id>	</item>
	</channel>
</rss>
