<?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/"
	>

<channel>
	<title>Alp Toker</title>
	<atom:link href="http://www.atoker.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.atoker.com/blog</link>
	<description>There is a third way</description>
	<lastBuildDate>Thu, 12 Apr 2012 13:26:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>LLVM Europe 2012: A Portable C++/CLI Compiler</title>
		<link>http://www.atoker.com/blog/2012/04/12/llvm-europe-2012-cli-compiler/</link>
		<comments>http://www.atoker.com/blog/2012/04/12/llvm-europe-2012-cli-compiler/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 11:41:25 +0000</pubDate>
		<dc:creator>alp</dc:creator>
				<category><![CDATA[Mono]]></category>
		<category><![CDATA[Nuanti]]></category>

		<guid isPermaLink="false">http://www.atoker.com/blog/?p=228</guid>
		<description><![CDATA[This afternoon I&#8217;m giving a brief talk on the Nuanti C++/CLI compiler built on Clang at the LLVM European Conference, London. We started this project a couple of years ago to cover the language specification in ECMA-372, having found it a pain to integrate applications and SDK written in C and C++ with .NET. Since [...]]]></description>
			<content:encoded><![CDATA[<p>This afternoon I&#8217;m giving a brief talk on the Nuanti C++/CLI compiler built on Clang at the LLVM European Conference, London.</p>
<p>We started this project a couple of years ago to cover the language specification in ECMA-372, having found it a pain to integrate applications and SDK written in C and C++ with .NET. Since then, the compiler has developed into a self-hosting toolchain that&#8217;s been used to port entire applications to run on Mono, Silverlight, Mac OS X and Linux.</p>
<p>There are two codegen modes: (1) fully managed .NET bytecode, and (2) native optimized machine code with hooks into the Mono runtime for invocations. There&#8217;s some flexibility to mix and match the two. Sometimes it&#8217;s handy to call into an existing managed library from your C++ application and this use case is simple as adding an import header and calling the methods you need. No bindings or wrappers, and if using a runtime like Mono the stack is garbage collected behind the scenes.</p>
<p>The frontend has all the parser support you&#8217;d expect plus CLR metadata import. Meanwhile there&#8217;s a CIL backend using the LLVM codegen infrastructure. The two work together to generate native-looking SDK-quality assemblies out of all kinds of unmanaged code.</p>
<p>The implementation embraces and extends the ECMA spec with dynamic types from C# 4.0, LINQ for C++, expression trees and full-blown DLR syntax trees, going beyond the original specification in many ways. This is the real interesting part, since it&#8217;s what we use to bootstrap the compiler (so it can compile itself).</p>
<p>We were able to port User Mode Linux and WebKit to Silverlight using this with a certain amount of patching. There are other fascinating integration points like a pretty neat Objective-C++/CLI bridge.</p>
<p>Our main focus has been in-game &#8216;scripting&#8217; and IOS applications. Going forward we&#8217;re concentrating more on open web standards and JavaScript for the platform but this continues to be a fun R&amp;D project with often surprising uses, and it&#8217;ll be a fun story to tell.</p>
<p>See you there!</p>
<p>(Oh, and we&#8217;re looking for developers to <a href="http://www.nuanti.com/contact">join our compiler team</a> in London.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.atoker.com/blog/2012/04/12/llvm-europe-2012-cli-compiler/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>HTML5 Theora Video Codec for Silverlight</title>
		<link>http://www.atoker.com/blog/2010/02/04/html5-theora-video-codec-for-silverlight/</link>
		<comments>http://www.atoker.com/blog/2010/02/04/html5-theora-video-codec-for-silverlight/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 23:02:39 +0000</pubDate>
		<dc:creator>alp</dc:creator>
				<category><![CDATA[Mono]]></category>
		<category><![CDATA[Nuanti]]></category>

		<guid isPermaLink="false">http://www.atoker.com/blog/?p=140</guid>
		<description><![CDATA[I&#8217;m glad to announce the first release of our fully managed Theora audio / video decoder implementation for the Silverlight platform! The Highgate media suite will bring installation-free support for HTML5 streaming video to an additional ~40% of web users overnight. So, a few drinks will be in order to celebrate the release at the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m glad to announce the first release of our fully managed <a href="http://www.theora.org/">Theora</a> audio / video decoder implementation for the Silverlight platform! The <a href="http://www.nuanti.com/highgate/"><em>Highgate media suite</em></a> will bring installation-free support for HTML5 streaming video to an additional ~40% of web users overnight.</p>
<p><img src="http://www.atoker.com/blog/wp-content/uploads/2010/02/theora-fish.png" alt="Theora" title="theora-fish" width="88" height="64" class="alignright size-full wp-image-165" /></p>
<p>So, <em>a few drinks</em> will be in order to celebrate the release at the <a href="http://fosdem.org/2010/">FOSDEM</a> beer event, Friday &#8212; drop by! And of course, I&#8217;d like to invite anyone excited about making open codecs a first class citizen of the Silverlight / Moonlight ecosystem to visit the <a href="http://fosdem.org/2010/schedule/devrooms/mono">Mono dev room</a> over the weekend for source code and some frivolous demos between sessions.</p>
<p><img src="http://www.atoker.com/blog/wp-content/uploads/2010/02/highgate-theora-thumb.jpg" alt="" title="Silverlight Theora Player" width="447" height="421" class="aligncenter size-full wp-image-174" /></p>
<h3>Technology</h3>
<p>We&#8217;ll be releasing a <strong>high-performance decoder</strong> for Theora video / Ogg Vorbis audio streams that plugs into the Silverlight 3 streaming media abstraction, as well as a <strong>reference front-end player</strong> interface and JavaScript bridge layer providing basic <strong>compatibility with standard HTML5 media tags</strong>, adding support for the standard to Internet Explorer and extending the <a href="http://www.atoker.com/blog/2007/12/08/html5-media-support-with-gstreamer/">capabilities of WebKit-based browsers</a> like Safari and Epiphany. A cunning plan, one might say!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.atoker.com/blog/2010/02/04/html5-theora-video-codec-for-silverlight/feed/</wfw:commentRss>
		<slash:comments>50</slash:comments>
		</item>
		<item>
		<title>Skia graphics library in Chrome: First impressions</title>
		<link>http://www.atoker.com/blog/2008/09/06/skia-graphics-library-in-chrome-first-impressions/</link>
		<comments>http://www.atoker.com/blog/2008/09/06/skia-graphics-library-in-chrome-first-impressions/#comments</comments>
		<pubDate>Sat, 06 Sep 2008 00:11:52 +0000</pubDate>
		<dc:creator>alp</dc:creator>
				<category><![CDATA[WebKit]]></category>

		<guid isPermaLink="false">http://www.atoker.com/blog/?p=117</guid>
		<description><![CDATA[With the release of the WebKit-based Chrome browser, Google also introduced a handful of new backends for the browser engine including a new HTTP stack and the Skia graphics library. Google&#8217;s Android WebKit code drops have previously featured Skia for rendering, though this is the first time the sources have been made freely available. The [...]]]></description>
			<content:encoded><![CDATA[<p>With the release of the WebKit-based <a href="http://code.google.com/chromium/">Chrome browser</a>, Google also introduced a handful of new backends for the browser engine including a new HTTP stack and the <a href="http://src.chromium.org/viewvc/chrome/trunk/src/skia/">Skia graphics library</a>. Google&#8217;s <a href="http://code.google.com/p/android/downloads/list">Android WebKit code drops</a> have previously featured Skia for rendering, though this is the first time the sources have been made freely available. The code is apparently derived from Google&#8217;s <a href="http://www.dmwmedia.com/news/2007/01/04/google-owns-small-firm-in-north-carolina-could-expand-in-region">2005 acquisition</a> of North Carolina-based software firm Skia and is now provided under the Open Source <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</p>
<p>Weighing in at some 80,000 lines of code (to Cairo&#8217;s 90,000 as a ballpark reference) and written in C++, some of the differentiating features include:</p>
<ul>
<li>Optimised software-based rasteriser (module <a href="http://src.chromium.org/viewvc/chrome/trunk/src/skia/sgl/">sgl/</a>)</li>
<li>Optional GL-based acceleration of certain graphics operations including shader support and textures (module <a href="http://src.chromium.org/viewvc/chrome/trunk/src/skia/gl/">gl/</a>)</li>
<li>Animation capabilities (module <a href="http://src.chromium.org/viewvc/chrome/trunk/src/skia/animator/">animator/</a>)</li>
<li>Some built-in SVG support (module (<a href="http://src.chromium.org/viewvc/chrome/trunk/src/skia/svg/">svg/</a>)</li>
<li>Built-in image decoders: PNG, JPEG, GIF, BMP, WBMP, ICO (modules <a href="http://src.chromium.org/viewvc/chrome/trunk/src/skia/images/">images/</a>)</li>
<li>Text capabilities (no built-in support for complex scripts)</li>
<li>Some awareness of higher-level UI toolkit constructs (platform windows, platform events): Mac, Unix (sic. X11, incomplete), Windows, wxwidgets</li>
<li>Performace features
<ul>
<li>Copy-on-write for images and certain other data types</li>
<li>Extensive use of the stack, both internally and for <a href="http://src.chromium.org/viewvc/chrome/trunk/src/skia/include/">API</a> consumers to avoid needless allocations and memory fragmentation</li>
<li>Thread-safety to enable parallelisation</li>
</ul>
</li>
</ul>
<p>The library is portable and has (optional) <a href="http://src.chromium.org/viewvc/chrome/trunk/src/skia/ports/">platform-specific backends</a>:</p>
<ul>
<li>Fonts: Android / <a href="http://openhandsetmagazine.com/2007/11/android-got-new-fonts-from-ascender/">Ascender</a>, FreeType, Windows (GDI)</li>
<li>Threading: pthread, Windows</li>
<li>XML: expat, tinyxml</li>
<li>Android shared memory (ashmem) for inter-process image data references</li>
</ul>
<h3>Hello world</h3>
<p>In this simple example we draw a few rectangles to a memory-based image buffer. This also demonstrates how one might integrate with the platform graphics system to get something on screen, though in this case we&#8217;re using Cairo to save the resulting image to disk:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &quot;SkBitmap.h&quot;</span>
<span style="color: #339900;">#include &quot;SkDevice.h&quot;</span>
<span style="color: #339900;">#include &quot;SkPaint.h&quot;</span>
<span style="color: #339900;">#include &quot;SkRect.h&quot;</span>
<span style="color: #339900;">#include &lt;cairo.h&gt;</span>
&nbsp;
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
  SkBitmap bitmap<span style="color: #008080;">;</span>
  bitmap.<span style="color: #007788;">setConfig</span><span style="color: #008000;">&#40;</span>SkBitmap<span style="color: #008080;">::</span><span style="color: #007788;">kARGB_8888_Config</span>, <span style="color: #0000dd;">100</span>, <span style="color: #0000dd;">100</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  bitmap.<span style="color: #007788;">allocPixels</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  SkDevice device<span style="color: #008000;">&#40;</span>bitmap<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  SkCanvas canvas<span style="color: #008000;">&#40;</span><span style="color: #000040;">&amp;</span>device<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  SkPaint paint<span style="color: #008080;">;</span>
  SkRect r<span style="color: #008080;">;</span>
&nbsp;
  paint.<span style="color: #007788;">setARGB</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">255</span>, <span style="color: #0000dd;">255</span>, <span style="color: #0000dd;">255</span>, <span style="color: #0000dd;">255</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  r.<span style="color: #007788;">set</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">10</span>, <span style="color: #0000dd;">10</span>, <span style="color: #0000dd;">20</span>, <span style="color: #0000dd;">20</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  canvas.<span style="color: #007788;">drawRect</span><span style="color: #008000;">&#40;</span>r, paint<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
  paint.<span style="color: #007788;">setARGB</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">255</span>, <span style="color: #0000dd;">255</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  r.<span style="color: #007788;">offset</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">5</span>, <span style="color: #0000dd;">5</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  canvas.<span style="color: #007788;">drawRect</span><span style="color: #008000;">&#40;</span>r, paint<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
  paint.<span style="color: #007788;">setARGB</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">255</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">0</span>, <span style="color: #0000dd;">255</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  r.<span style="color: #007788;">offset</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">5</span>, <span style="color: #0000dd;">5</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  canvas.<span style="color: #007788;">drawRect</span><span style="color: #008000;">&#40;</span>r, paint<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
  <span style="color: #008000;">&#123;</span>
    SkAutoLockPixels image_lock<span style="color: #008000;">&#40;</span>bitmap<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    cairo_surface_t<span style="color: #000040;">*</span> surface <span style="color: #000080;">=</span> cairo_image_surface_create_for_data<span style="color: #008000;">&#40;</span>
        <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">char</span><span style="color: #000040;">*</span><span style="color: #008000;">&#41;</span>bitmap.<span style="color: #007788;">getPixels</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>, CAIRO_FORMAT_ARGB32,
        bitmap.<span style="color: #007788;">width</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>, bitmap.<span style="color: #007788;">height</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>, bitmap.<span style="color: #007788;">rowBytes</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    cairo_surface_write_to_png<span style="color: #008000;">&#40;</span>surface, <span style="color: #FF0000;">&quot;snapshot.png&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    cairo_surface_destroy<span style="color: #008000;">&#40;</span>surface<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #008000;">&#125;</span>
&nbsp;
  <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>You can build this example for yourself linking statically to the libskia.a object file generated during the Chrome build process on Linux.</p>
<h3>Not just for Chrome</h3>
<p>The <a href="http://src.chromium.org/viewvc/chrome/trunk/src/webkit/port/platform/graphics/">Skia backend in WebKit</a>, the first parts of which are already hitting SVN (<a href="http://trac.webkit.org/changeset/35852">r35852</a>, <a href="http://trac.webkit.org/changeset/36074">r36074</a>) isn&#8217;t limited to use in the Chrome/Windows configuration and some work has already been done to get it up and running on Linux/GTK+ as part of the ongoing porting effort.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.atoker.com/blog/2008/09/06/skia-graphics-library-in-chrome-first-impressions/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>WebKit Meta: A new standard for in-game web content</title>
		<link>http://www.atoker.com/blog/2008/06/12/webkit-meta-a-new-standard-for-in-game-web-content/</link>
		<comments>http://www.atoker.com/blog/2008/06/12/webkit-meta-a-new-standard-for-in-game-web-content/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 09:35:20 +0000</pubDate>
		<dc:creator>alp</dc:creator>
				<category><![CDATA[Nuanti]]></category>
		<category><![CDATA[WebKit]]></category>

		<guid isPermaLink="false">http://www.atoker.com/blog/?p=111</guid>
		<description><![CDATA[Over the last few months, our browser team at Nuanti Ltd. has been developing Meta, a brand new WebKit port suited to embedding in OpenGL and 3D applications. The work is being driven by Linden Lab, who are eagerly investigating WebKit for use in Second Life. While producing Meta we&#8217;ve paid great attention to resolving [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://meta.nuanti.com"><img class="alignnone size-full wp-image-113" title="meta" src="http://www.atoker.com/blog/wp-content/uploads/2008/06/meta.png" border="0" alt="" width="150" height="42" /></a></p>
<p>Over the last few months, our browser team at <a href="http://www.nuanti.com/">Nuanti Ltd.</a> has been developing <em>Meta</em>, a brand new <a href="http://webkit.org/">WebKit</a> port suited to embedding in OpenGL and 3D applications. The work is being driven by <a href="http://lindenlab.com/">Linden Lab</a>, who are eagerly investigating WebKit for use in <a href="http://secondlife.com/">Second Life</a>.</p>
<p>While producing <em>Meta</em> we&#8217;ve paid great attention to resolving the technical and practical limitations encountered with other web content engines.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-116" title="ubrowser-webkit" src="http://www.atoker.com/blog/wp-content/uploads/2008/06/ubrowser-webkit.jpg" alt="" width="450" height="304" /><br />
<small><a href="http://ubrowser.com/">uBrowser</a> running with the WebKit <em>Meta</em> engine</small></p>
<h3>High performance, low resource usage</h3>
<p><img class="size-full wp-image-114 alignright" style="float: right;" title="squirrelfish" src="http://www.atoker.com/blog/wp-content/uploads/2008/06/squirrelfish.png" alt="" width="108" height="68" /><em>Meta</em> is built around WebKit, the same engine used in web browsers like <a href="http://www.apple.com/safari/">Safari</a> and <a href="http://live.gnome.org/Epiphany/WebKit">Epiphany</a>, and features some of the fastest content rendering around as well as nippy JavaScript execution with the state of the art <a href="http://webkit.org/blog/189/announcing-squirrelfish/">SquirrelFish VM</a>. The JavaScript SDK is available independently of the web renderer for sandboxed client-side game scripting and automation.</p>
<p>It&#8217;s also highly scalable. Some applications may need only a single browser context but virtual worlds often need to support hundreds of web views or more, each with active content. To optimize for this use case, we&#8217;ve cut down resource usage to an absolute minimum and tuned performance across the board.</p>
<h3>Stable, easy to use cross-platform SDK</h3>
<p><em>Meta</em> features a single, rock-solid API that works identically on all supported platforms including Windows, OS X and Linux. The SDK is tailored specifically to embedding and allows tight integration (shared main loop or operation in a separate rendering thread, for example) and hooks to permit seamless visual integration and extension. There is no global setup or initialization and the number of views can be adjusted dynamically to meet resource constraints.</p>
<h3>Minimal dependencies</h3>
<p><em>Meta</em> doesn&#8217;t need to use a conventional UI toolkit and doesn&#8217;t need any access to the underlying windowing system or the user&#8217;s filesystem to do its job, so we&#8217;ve done away with these concepts almost entirely. It adds only a few megabytes to the overall redistributable application&#8217;s installed footprint and won&#8217;t interfere with any pre-installed web browsers on the user&#8217;s machine.</p>
<h3><span style="font-size: 13px; font-weight: normal;">Nuanti will be offering commercial and community support and is anticipating involvement from the gaming industry and homebrew programmers.</span></h3>
<p>In the mid term, we aim to submit components of <em>Meta</em> to the WebKit Open Source project, where our developers are already actively involved in maintaining various subsystems.</p>
<h3>Find out more</h3>
<p>Today we&#8217;re launching <a href="http://meta.nuanti.com">meta.nuanti.com</a> and two mailing lists to get developers talking. We&#8217;re looking to make this site a focal point for embedders, choc-full of technical details, code samples and other resources.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.atoker.com/blog/2008/06/12/webkit-meta-a-new-standard-for-in-game-web-content/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Acid3 final touches</title>
		<link>http://www.atoker.com/blog/2008/04/21/acid3-final-touches/</link>
		<comments>http://www.atoker.com/blog/2008/04/21/acid3-final-touches/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 02:38:37 +0000</pubDate>
		<dc:creator>alp</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[WebKit]]></category>

		<guid isPermaLink="false">http://www.atoker.com/blog/?p=109</guid>
		<description><![CDATA[Recently we&#8217;ve been working to finish off and land the last couple of fixes to get a perfect pixel-for-pixel match against the reference Acid3 rendering in WebKit/GTK+. I believe we&#8217;re the first project to achieve this on Linux &#8212; congratulations to everyone on the team! Epiphany using WebKit r32284 We also recently announced our plans [...]]]></description>
			<content:encoded><![CDATA[<p>Recently we&#8217;ve been working to finish off and land the <a href="http://www.atoker.com/blog/2008/03/27/webkit-gets-100-on-acid3/">last couple of fixes</a> to get a perfect pixel-for-pixel match against the reference <a href="http://acid3.acidtests.org/">Acid3</a> rendering in <a href="http://live.gnome.org/WebKitGtk">WebKit/GTK+</a>. I believe we&#8217;re the first project to achieve this on Linux &#8212; congratulations to everyone on the team!</p>
<p><a href="http://www.atoker.com/blog/wp-content/uploads/2008/04/acid3-shadow.png"><img class="alignnone size-medium wp-image-110" title="acid3-shadow" src="http://www.atoker.com/blog/wp-content/uploads/2008/04/acid3-shadow-300x266.png" border="0" alt="" width="300" height="266" /><br />
Epiphany using WebKit r32284</a></p>
<p>We also recently announced <a href="http://mail.gnome.org/archives/desktop-devel-list/2008-April/msg00134.html">our plans</a> to align more closely with the <a href="http://www.gnome.org/">GNOME desktop</a> and <a href="http://www.gnome.org/mobile/">mobile platform</a>. To this end we&#8217;re making a few technology and organisational changes that I hope to discuss in an upcoming post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.atoker.com/blog/2008/04/21/acid3-final-touches/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Summer of Code projects for browser hackers</title>
		<link>http://www.atoker.com/blog/2008/04/06/summer-of-code-projects-for-browser-hackers/</link>
		<comments>http://www.atoker.com/blog/2008/04/06/summer-of-code-projects-for-browser-hackers/#comments</comments>
		<pubDate>Sun, 06 Apr 2008 20:40:39 +0000</pubDate>
		<dc:creator>alp</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[WebKit]]></category>

		<guid isPermaLink="false">http://www.atoker.com/blog/2008/04/06/summer-of-code-projects-for-browser-hackers/</guid>
		<description><![CDATA[With the revised deadline for Google Summer of Code &#8217;08 student applications looming, we&#8217;ve been getting a lot of interest in browser-related student projects. I&#8217;ve put together a list of some of my favourite ideas. GNOME ideas Epiphany Desktop integration Bookmark and history integration JavaScript debugger based on Drosera / Web Inspector Evolution Bug tracking [...]]]></description>
			<content:encoded><![CDATA[<p>With the revised deadline for <a href="http://code.google.com/soc/2008/">Google Summer of Code &#8217;08</a> student applications looming, we&#8217;ve been getting a lot of interest in browser-related student projects. I&#8217;ve put together a list of some of my favourite ideas.</p>
<ul>
<li><a href="http://live.gnome.org/SummerOfCode2008/Ideas">GNOME ideas</a>
<ul>
<li>Epiphany
<ul>
<li>Desktop integration</li>
<li><a href="http://live.gnome.org/SummerOfCode2008/Ideas/CompleteBookmarkHistoryIntegration">Bookmark and history integration</a></li>
<li>JavaScript debugger based on Drosera / Web Inspector</li>
</ul>
</li>
<li>Evolution
<ul>
<li>Bug tracking aid</li>
</ul>
</li>
<li><a href="http://live.gnome.org/Empathy/SoC2008">Empathy</a>
<ul>
<li>WebKit Adium theme support</li>
</ul>
</li>
<li>Desktop widgets</li>
<li>Integrated web app launcher</li>
</ul>
</li>
<li><a href="http://trac.webkit.org/projects/webkit/wiki/Google%20Summer%20of%20Code%202008">WebKit ideas</a>
<ul>
<li>Cairo SVG backend completion</li>
<li>GTK+ port test suite completion</li>
</ul>
</li>
<li><a href="http://www.mono-project.com/StudentProjects">Mono ideas</a>
<ul>
<li>WebKit-based HTML editor</li>
</ul>
</li>
</ul>
<p>If in doubt, <em>now&#8217;s the time</em> to submit proposals. Already-listed ideas are the most likely to get mentored but students are free to propose their own ideas as well. Proposals for incremental improvements will tend to be favoured over ideas for completely new applications, but a proof of concept and/or roadmap can help when submitting plans for larger projects.</p>
<p><strong>Update:</strong> There&#8217;s no need to keep asking about the status of an application on IRC/private mail etc. It&#8217;s a busy time for the upstream developers but they&#8217;ll get back in touch as soon as possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.atoker.com/blog/2008/04/06/summer-of-code-projects-for-browser-hackers/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WebKit gets 100% on Acid3</title>
		<link>http://www.atoker.com/blog/2008/03/27/webkit-gets-100-on-acid3/</link>
		<comments>http://www.atoker.com/blog/2008/03/27/webkit-gets-100-on-acid3/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 21:06:56 +0000</pubDate>
		<dc:creator>alp</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[WebKit]]></category>

		<guid isPermaLink="false">http://www.atoker.com/blog/2008/03/27/webkit-gets-100-on-acid3/</guid>
		<description><![CDATA[Today we reached a milestone with WebKit/GTK+ as it became the first browser engine on Linux/X11 to get a full score on Acid3, shortly after the Acid3 pass by WebKit for Safari/Mac. Epiphany using WebKit r31371 There is actually still a little work to be done before we can claim a flawless Acid3 pass. Two [...]]]></description>
			<content:encoded><![CDATA[<p>Today we reached a milestone with <a href="http://live.gnome.org/WebKitGtk">WebKit/GTK+</a> as it became the first browser engine on Linux/X11 to get a full score on <a href="http://www.webstandards.org/action/acid3/">Acid3</a>, shortly after the <a href="http://webkit.org/blog/173/webkit-achieves-acid3-100100-in-public-build/">Acid3 pass by WebKit for Safari/Mac</a>.</p>
<p><a title="WebKit Acid3" href="http://www.atoker.com/blog/wp-content/uploads/2008/03/webkitacid3shad.png"><img src="http://www.atoker.com/blog/wp-content/uploads/2008/03/webkitacid3shadsmall.png" border="0" alt="Acid3" /></a><br />
<strong>Epiphany using WebKit r31371</strong></p>
<p>There is actually still a little work to be done before we can claim a flawless Acid3 pass. Two of the most visible remaining issues in the GTK+ port are <tt>:visited</tt> (causing the &#8220;LINKTEST FAILED&#8221; notice in the screenshot) and the lack of CSS text shadow support in the Cairo/text backend which is needed to match the reference rendering.</p>
<p>It&#8217;s amazing to see how far we&#8217;ve come in the last few months, and great to see the WebKit GTK+ team now playing an active role in the direction of WebCore as WebKit continues to build momentum amongst developers.</p>
<p><strong>Update:</strong> We now also <a href="http://www.atoker.com/blog/2008/04/21/acid3-final-touches/">match the reference rendering</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.atoker.com/blog/2008/03/27/webkit-gets-100-on-acid3/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Bossa Conf &#8217;08</title>
		<link>http://www.atoker.com/blog/2008/03/15/bossa-conf-08/</link>
		<comments>http://www.atoker.com/blog/2008/03/15/bossa-conf-08/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 03:29:08 +0000</pubDate>
		<dc:creator>alp</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[WebKit]]></category>

		<guid isPermaLink="false">http://www.atoker.com/blog/2008/03/15/bossa-conf-08/</guid>
		<description><![CDATA[Am here in the LHR lounge. In a couple of hours, we take off for the INdT Bossa Conference, Pernambuco, Brazil via Lisbon. Bumped in to Pippin who will be presenting Clutter. Also looking forward to Lennart&#8216;s PulseAudio talk amongst others. If you happen to be going, drop by on my WebKit Mobile presentation, 14:00 [...]]]></description>
			<content:encoded><![CDATA[<p>Am here in the <a href="http://www.heathrowairport.com/">LHR</a> lounge. In a couple of hours, we take off for the <a href="http://www.bossaconference.indt.org/">INdT Bossa Conference</a>, Pernambuco, Brazil via Lisbon. Bumped in to <a href="http://pippin.gimp.org/">Pippin</a> who will be presenting <a href="http://clutter-project.org/">Clutter</a>. Also looking forward to <a href="http://0pointer.de/lennart/">Lennart</a>&#8216;s PulseAudio talk amongst others.</p>
<p>If you happen to be going, drop by on my <em>WebKit Mobile</em> presentation, 14:00 Room 01 this Monday. We have a small surprise waiting for Maemo developers.</p>
<p><img src="http://www.atoker.com/blog/wp-content/uploads/2008/03/webkitmobile.png" alt="WebKit Mobile" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.atoker.com/blog/2008/03/15/bossa-conf-08/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Back from the GTK+ Berlin Hackfest 2008</title>
		<link>http://www.atoker.com/blog/2008/03/15/back-from-the-gtk-berlin-hackfest-2008/</link>
		<comments>http://www.atoker.com/blog/2008/03/15/back-from-the-gtk-berlin-hackfest-2008/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 03:27:12 +0000</pubDate>
		<dc:creator>alp</dc:creator>
				<category><![CDATA[GNOME]]></category>

		<guid isPermaLink="false">http://www.atoker.com/blog/2008/03/15/back-from-the-gtk-berlin-hackfest-2008/</guid>
		<description><![CDATA[There was an incredible amount of productive hacking and discussion at the hackfest, covering the lower parts of the stack like Cairo and Pango as well as the GTK+ core and related work like toolkit web integration. Until I get round to writing things up, I refer you to Emmannuele&#8216;s posts. He summarises some of [...]]]></description>
			<content:encoded><![CDATA[<p>There was an incredible amount of productive hacking and discussion at the <a href="http://live.gnome.org/GTK%2B/Hackfest2008">hackfest</a>, covering the lower parts of the stack like Cairo and Pango as well as the GTK+ core and related work like toolkit web integration.</p>
<p>Until I get round to writing things up, I refer you to <a href="http://log.emmanuelebassi.net/">Emmannuele</a>&#8216;s posts. He summarises some of the <a href="http://log.emmanuelebassi.net/archives/2008/03/berlin5/">graphics topics</a> that came up and I would echo <a href="http://log.emmanuelebassi.net/archives/2008/03/berlinfinal/">his sentiments</a> about what a well organised, fun and <em>dynamic</em> event this was.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.atoker.com/blog/2008/03/15/back-from-the-gtk-berlin-hackfest-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developing hybrid Web GTK+ applications</title>
		<link>http://www.atoker.com/blog/2008/02/26/developing-hybrid-web-gtk-applications/</link>
		<comments>http://www.atoker.com/blog/2008/02/26/developing-hybrid-web-gtk-applications/#comments</comments>
		<pubDate>Tue, 26 Feb 2008 18:07:56 +0000</pubDate>
		<dc:creator>alp</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[WebKit]]></category>

		<guid isPermaLink="false">http://www.atoker.com/blog/2008/02/26/developing-hybrid-web-gtk-applications/</guid>
		<description><![CDATA[I&#8217;ve put up the slides from my FOSDEM &#8217;08 talk on developing Web/GTK+ rich internet applications with WebKit and deploying them on the desktop and on mobile devices. If you were simply too hung over from the night before to get to the morning session or couldn&#8217;t make FOSDEM, be sure to check it out. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve put up the slides from my <a href="http://www.atoker.com/blog/2008/02/18/gtk-webkit-session-at-fosdem-2008/">FOSDEM &#8217;08 talk</a> on developing Web/GTK+ rich internet applications with WebKit and deploying them on the desktop and on mobile devices. If you were simply too hung over from the night before to get to the morning session or couldn&#8217;t make FOSDEM, be sure to check it out.</p>
<p><a href="http://www.atoker.com/webkit/webkitgtk-fosdem08.pdf"><img src="http://www.atoker.com/blog/wp-content/uploads/2008/02/webgtkcover.png" alt="WebKit GTK+ cover slide" border="0" /></a><br />
<a href="http://www.atoker.com/webkit/webkitgtk-fosdem08.pdf">View slides (PDF format) </a></p>
<h3>Demo sources</h3>
<ul>
<li><a href="http://www.ndesk.org/tmp/mc.c">Hosting a Dashboard widget</a>
<ul>
<li>Simple example without JS integration</li>
</ul>
</li>
</ul>
<p>(Will update this post with more demo code over the next few days.)</p>
<h3>Citations</h3>
<ul>
<li><strong>Slide 20:</strong>  <span class="subject"><em><a href="http://donscorgie.livejournal.com/12716.html">All the cool kids are doing it</a></em> (February 3rd, 2008) &#8212; donscorgie.livejournal.com<br />
</span></li>
<li><strong>Slide 30:</strong> <em><a href="http://www.j5live.com/2007/08/02/webkit-and-xulrunner-mozilla-side-by-side-on-the-xo/">WebKit and XULRunner (Mozilla) side by side on the XO</a></em> (<span class="subject">August 2nd, 2007) &#8212; </span>j5live.com</li>
<li><strong>Slide 32:</strong> <a href="http://trac.webkit.org/projects/webkit/wiki/OptimizingGtk">WebKit testing methodology</a> for reproducible mobile benchmark performance results</li>
<li>WebKit/GTK+ <a href="http://live.gnome.org/WebKitGtk">build instructions</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.atoker.com/blog/2008/02/26/developing-hybrid-web-gtk-applications/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
	</channel>
</rss>

