<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Apkulkar</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Apkulkar"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Apkulkar"/>
	<updated>2026-05-13T03:12:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81878</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81878"/>
		<updated>2013-10-31T01:46:06Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* Goals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a&amp;lt;code&amp;gt; [http://en.wikipedia.org/wiki/Canvas_element CANVAS] &amp;lt;/code&amp;gt; for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo&lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Rust_(programming_language) Rust] &amp;lt;/code&amp;gt; is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Servo_(layout_engine) Servo ] &amp;lt;/code&amp;gt; is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the &amp;lt;code&amp;gt; [https://wiki.mozilla.org/DOM:Home_Page DOM] &amp;lt;/code&amp;gt; mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, &amp;lt;code&amp;gt; [http://en.wikipedia.org/wiki/SpiderMonkey_(JavaScript_engine) Spidermonkey.] &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Appendix==&lt;br /&gt;
&lt;br /&gt;
Steps to run the project&lt;br /&gt;
&lt;br /&gt;
1.	Install and Build Rust (follow the link) -  [https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust]&lt;br /&gt;
&lt;br /&gt;
2.	Build Servo            (follow the link) -  [https://github.com/mozilla/servo]&lt;br /&gt;
&lt;br /&gt;
3.	Write the code for canvasrenderingcontext2d.rs and htmlcanvaselement.rs&lt;br /&gt;
&lt;br /&gt;
4.	Generate a Binding for CanvasRenderingContext2D.webidl, HTMLCanvasElement.webidl&lt;br /&gt;
&lt;br /&gt;
5.	Run Servo&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
1.	https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust -Getting started with Rust&lt;br /&gt;
&lt;br /&gt;
2.	https://github.com/mozilla/servo - Getting started with servo&lt;br /&gt;
&lt;br /&gt;
3.	https://github.com/mozilla/servo/wiki/Adding-a-new-WebIDL-binding - Adding a new webidl binding.&lt;br /&gt;
&lt;br /&gt;
4.	https://github.com/Aalhad/CanvasRenderingContext2DMozilla - Our Project on github.&lt;br /&gt;
&lt;br /&gt;
5.	http://www.2ality.com/2012/02/servo.html - Future Scope&lt;br /&gt;
&lt;br /&gt;
6.      http://en.wikipedia.org/wiki/Rust_(programming_language) - Rust&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81871</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81871"/>
		<updated>2013-10-31T01:43:41Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* Servo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a&amp;lt;code&amp;gt; [http://en.wikipedia.org/wiki/Canvas_element CANVAS] &amp;lt;/code&amp;gt; for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo&lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Rust_(programming_language) Rust] &amp;lt;/code&amp;gt; is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Servo_(layout_engine) Servo ] &amp;lt;/code&amp;gt; is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Appendix==&lt;br /&gt;
&lt;br /&gt;
Steps to run the project&lt;br /&gt;
&lt;br /&gt;
1.	Install and Build Rust (follow the link) -  [https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust]&lt;br /&gt;
&lt;br /&gt;
2.	Build Servo            (follow the link) -  [https://github.com/mozilla/servo]&lt;br /&gt;
&lt;br /&gt;
3.	Write the code for canvasrenderingcontext2d.rs and htmlcanvaselement.rs&lt;br /&gt;
&lt;br /&gt;
4.	Generate a Binding for CanvasRenderingContext2D.webidl, HTMLCanvasElement.webidl&lt;br /&gt;
&lt;br /&gt;
5.	Run Servo&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
1.	https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust -Getting started with Rust&lt;br /&gt;
&lt;br /&gt;
2.	https://github.com/mozilla/servo - Getting started with servo&lt;br /&gt;
&lt;br /&gt;
3.	https://github.com/mozilla/servo/wiki/Adding-a-new-WebIDL-binding - Adding a new webidl binding.&lt;br /&gt;
&lt;br /&gt;
4.	https://github.com/Aalhad/CanvasRenderingContext2DMozilla - Our Project on github.&lt;br /&gt;
&lt;br /&gt;
5.	http://www.2ality.com/2012/02/servo.html - Future Scope&lt;br /&gt;
&lt;br /&gt;
6.      http://en.wikipedia.org/wiki/Rust_(programming_language) - Rust&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81868</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81868"/>
		<updated>2013-10-31T01:43:32Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* Servo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a&amp;lt;code&amp;gt; [http://en.wikipedia.org/wiki/Canvas_element CANVAS] &amp;lt;/code&amp;gt; for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo&lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Rust_(programming_language) Rust] &amp;lt;/code&amp;gt; is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Servo_(layout_engine)Servo ] &amp;lt;/code&amp;gt; is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Appendix==&lt;br /&gt;
&lt;br /&gt;
Steps to run the project&lt;br /&gt;
&lt;br /&gt;
1.	Install and Build Rust (follow the link) -  [https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust]&lt;br /&gt;
&lt;br /&gt;
2.	Build Servo            (follow the link) -  [https://github.com/mozilla/servo]&lt;br /&gt;
&lt;br /&gt;
3.	Write the code for canvasrenderingcontext2d.rs and htmlcanvaselement.rs&lt;br /&gt;
&lt;br /&gt;
4.	Generate a Binding for CanvasRenderingContext2D.webidl, HTMLCanvasElement.webidl&lt;br /&gt;
&lt;br /&gt;
5.	Run Servo&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
1.	https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust -Getting started with Rust&lt;br /&gt;
&lt;br /&gt;
2.	https://github.com/mozilla/servo - Getting started with servo&lt;br /&gt;
&lt;br /&gt;
3.	https://github.com/mozilla/servo/wiki/Adding-a-new-WebIDL-binding - Adding a new webidl binding.&lt;br /&gt;
&lt;br /&gt;
4.	https://github.com/Aalhad/CanvasRenderingContext2DMozilla - Our Project on github.&lt;br /&gt;
&lt;br /&gt;
5.	http://www.2ality.com/2012/02/servo.html - Future Scope&lt;br /&gt;
&lt;br /&gt;
6.      http://en.wikipedia.org/wiki/Rust_(programming_language) - Rust&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81867</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81867"/>
		<updated>2013-10-31T01:43:20Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* Servo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a&amp;lt;code&amp;gt; [http://en.wikipedia.org/wiki/Canvas_element CANVAS] &amp;lt;/code&amp;gt; for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo&lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Rust_(programming_language) Rust] &amp;lt;/code&amp;gt; is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Servo_(layout_engine) Servo ] &amp;lt;/code&amp;gt; is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Appendix==&lt;br /&gt;
&lt;br /&gt;
Steps to run the project&lt;br /&gt;
&lt;br /&gt;
1.	Install and Build Rust (follow the link) -  [https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust]&lt;br /&gt;
&lt;br /&gt;
2.	Build Servo            (follow the link) -  [https://github.com/mozilla/servo]&lt;br /&gt;
&lt;br /&gt;
3.	Write the code for canvasrenderingcontext2d.rs and htmlcanvaselement.rs&lt;br /&gt;
&lt;br /&gt;
4.	Generate a Binding for CanvasRenderingContext2D.webidl, HTMLCanvasElement.webidl&lt;br /&gt;
&lt;br /&gt;
5.	Run Servo&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
1.	https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust -Getting started with Rust&lt;br /&gt;
&lt;br /&gt;
2.	https://github.com/mozilla/servo - Getting started with servo&lt;br /&gt;
&lt;br /&gt;
3.	https://github.com/mozilla/servo/wiki/Adding-a-new-WebIDL-binding - Adding a new webidl binding.&lt;br /&gt;
&lt;br /&gt;
4.	https://github.com/Aalhad/CanvasRenderingContext2DMozilla - Our Project on github.&lt;br /&gt;
&lt;br /&gt;
5.	http://www.2ality.com/2012/02/servo.html - Future Scope&lt;br /&gt;
&lt;br /&gt;
6.      http://en.wikipedia.org/wiki/Rust_(programming_language) - Rust&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81857</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81857"/>
		<updated>2013-10-31T01:41:53Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* Rust */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a&amp;lt;code&amp;gt; [http://en.wikipedia.org/wiki/Canvas_element CANVAS] &amp;lt;/code&amp;gt; for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo&lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Rust_(programming_language) Rust] &amp;lt;/code&amp;gt; is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Appendix==&lt;br /&gt;
&lt;br /&gt;
Steps to run the project&lt;br /&gt;
&lt;br /&gt;
1.	Install and Build Rust (follow the link) -  [https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust]&lt;br /&gt;
&lt;br /&gt;
2.	Build Servo            (follow the link) -  [https://github.com/mozilla/servo]&lt;br /&gt;
&lt;br /&gt;
3.	Write the code for canvasrenderingcontext2d.rs and htmlcanvaselement.rs&lt;br /&gt;
&lt;br /&gt;
4.	Generate a Binding for CanvasRenderingContext2D.webidl, HTMLCanvasElement.webidl&lt;br /&gt;
&lt;br /&gt;
5.	Run Servo&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
1.	https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust -Getting started with Rust&lt;br /&gt;
&lt;br /&gt;
2.	https://github.com/mozilla/servo - Getting started with servo&lt;br /&gt;
&lt;br /&gt;
3.	https://github.com/mozilla/servo/wiki/Adding-a-new-WebIDL-binding - Adding a new webidl binding.&lt;br /&gt;
&lt;br /&gt;
4.	https://github.com/Aalhad/CanvasRenderingContext2DMozilla - Our Project on github.&lt;br /&gt;
&lt;br /&gt;
5.	http://www.2ality.com/2012/02/servo.html - Future Scope&lt;br /&gt;
&lt;br /&gt;
6.      http://en.wikipedia.org/wiki/Rust_(programming_language) - Rust&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81854</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81854"/>
		<updated>2013-10-31T01:40:16Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a&amp;lt;code&amp;gt; [http://en.wikipedia.org/wiki/Canvas_element CANVAS] &amp;lt;/code&amp;gt; for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo&lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Appendix==&lt;br /&gt;
&lt;br /&gt;
Steps to run the project&lt;br /&gt;
&lt;br /&gt;
1.	Install and Build Rust (follow the link) -  [https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust]&lt;br /&gt;
&lt;br /&gt;
2.	Build Servo            (follow the link) -  [https://github.com/mozilla/servo]&lt;br /&gt;
&lt;br /&gt;
3.	Write the code for canvasrenderingcontext2d.rs and htmlcanvaselement.rs&lt;br /&gt;
&lt;br /&gt;
4.	Generate a Binding for CanvasRenderingContext2D.webidl, HTMLCanvasElement.webidl&lt;br /&gt;
&lt;br /&gt;
5.	Run Servo&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
1.	https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust -Getting started with Rust&lt;br /&gt;
&lt;br /&gt;
2.	https://github.com/mozilla/servo - Getting started with servo&lt;br /&gt;
&lt;br /&gt;
3.	https://github.com/mozilla/servo/wiki/Adding-a-new-WebIDL-binding - Adding a new webidl binding.&lt;br /&gt;
&lt;br /&gt;
4.	https://github.com/Aalhad/CanvasRenderingContext2DMozilla - Our Project on github.&lt;br /&gt;
&lt;br /&gt;
5.	http://www.2ality.com/2012/02/servo.html - Future Scope&lt;br /&gt;
&lt;br /&gt;
6.      http://en.wikipedia.org/wiki/Rust_(programming_language) - Rust&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81847</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81847"/>
		<updated>2013-10-31T01:38:53Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a&amp;lt;code&amp;gt; [http://en.wikipedia.org/wiki/Canvas_element CANVAS] &amp;lt;/code&amp;gt; for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo[[References]] &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Appendix==&lt;br /&gt;
&lt;br /&gt;
Steps to run the project&lt;br /&gt;
&lt;br /&gt;
1.	Install and Build Rust (follow the link) -  [https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust]&lt;br /&gt;
&lt;br /&gt;
2.	Build Servo            (follow the link) -  [https://github.com/mozilla/servo]&lt;br /&gt;
&lt;br /&gt;
3.	Write the code for canvasrenderingcontext2d.rs and htmlcanvaselement.rs&lt;br /&gt;
&lt;br /&gt;
4.	Generate a Binding for CanvasRenderingContext2D.webidl, HTMLCanvasElement.webidl&lt;br /&gt;
&lt;br /&gt;
5.	Run Servo&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
1.	https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust -Getting started with Rust&lt;br /&gt;
&lt;br /&gt;
2.	https://github.com/mozilla/servo - Getting started with servo&lt;br /&gt;
&lt;br /&gt;
3.	https://github.com/mozilla/servo/wiki/Adding-a-new-WebIDL-binding - Adding a new webidl binding.&lt;br /&gt;
&lt;br /&gt;
4.	https://github.com/Aalhad/CanvasRenderingContext2DMozilla - Our Project on github.&lt;br /&gt;
&lt;br /&gt;
5.	http://www.2ality.com/2012/02/servo.html - Future Scope&lt;br /&gt;
&lt;br /&gt;
6.      http://en.wikipedia.org/wiki/Rust_(programming_language) - Rust&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81834</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81834"/>
		<updated>2013-10-31T01:36:08Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a&amp;lt;code&amp;gt; [http://en.wikipedia.org/wiki/Canvas_element CANVAS] &amp;lt;/code&amp;gt; for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo&amp;lt;ref name=&amp;quot;a&amp;quot;&amp;gt; https://github.com/mozilla/servo - Getting started with servo&lt;br /&gt;
  which is being implemented in the Rust programming language.&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Appendix==&lt;br /&gt;
&lt;br /&gt;
Steps to run the project&lt;br /&gt;
&lt;br /&gt;
1.	Install and Build Rust (follow the link) -  [https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust]&lt;br /&gt;
&lt;br /&gt;
2.	Build Servo            (follow the link) -  [https://github.com/mozilla/servo]&lt;br /&gt;
&lt;br /&gt;
3.	Write the code for canvasrenderingcontext2d.rs and htmlcanvaselement.rs&lt;br /&gt;
&lt;br /&gt;
4.	Generate a Binding for CanvasRenderingContext2D.webidl, HTMLCanvasElement.webidl&lt;br /&gt;
&lt;br /&gt;
5.	Run Servo&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
1.	https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust -Getting started with Rust&lt;br /&gt;
&lt;br /&gt;
2.	https://github.com/mozilla/servo - Getting started with servo&lt;br /&gt;
&lt;br /&gt;
3.	https://github.com/mozilla/servo/wiki/Adding-a-new-WebIDL-binding - Adding a new webidl binding.&lt;br /&gt;
&lt;br /&gt;
4.	https://github.com/Aalhad/CanvasRenderingContext2DMozilla - Our Project on github.&lt;br /&gt;
&lt;br /&gt;
5.	http://www.2ality.com/2012/02/servo.html - Future Scope&lt;br /&gt;
&lt;br /&gt;
6.      http://en.wikipedia.org/wiki/Rust_(programming_language) - Rust&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81822</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81822"/>
		<updated>2013-10-31T01:33:03Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a&amp;lt;code&amp;gt; [http://en.wikipedia.org/wiki/Canvas_element CANVAS] &amp;lt;/code&amp;gt; for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Appendix==&lt;br /&gt;
&lt;br /&gt;
Steps to run the project&lt;br /&gt;
&lt;br /&gt;
1.	Install and Build Rust (follow the link) -  [https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust]&lt;br /&gt;
&lt;br /&gt;
2.	Build Servo            (follow the link) -  [https://github.com/mozilla/servo]&lt;br /&gt;
&lt;br /&gt;
3.	Write the code for canvasrenderingcontext2d.rs and htmlcanvaselement.rs&lt;br /&gt;
&lt;br /&gt;
4.	Generate a Binding for CanvasRenderingContext2D.webidl, HTMLCanvasElement.webidl&lt;br /&gt;
&lt;br /&gt;
5.	Run Servo&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
1.	https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust -Getting started with Rust&lt;br /&gt;
&lt;br /&gt;
2.	https://github.com/mozilla/servo - Getting started with servo&lt;br /&gt;
&lt;br /&gt;
3.	https://github.com/mozilla/servo/wiki/Adding-a-new-WebIDL-binding - Adding a new webidl binding.&lt;br /&gt;
&lt;br /&gt;
4.	https://github.com/Aalhad/CanvasRenderingContext2DMozilla - Our Project on github.&lt;br /&gt;
&lt;br /&gt;
5.	http://www.2ality.com/2012/02/servo.html - Future Scope&lt;br /&gt;
&lt;br /&gt;
6.      http://en.wikipedia.org/wiki/Rust_(programming_language) - Rust&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81820</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81820"/>
		<updated>2013-10-31T01:32:30Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a&amp;lt;code&amp;gt; [http://en.wikipedia.org/wiki/Canvas_element] CANVAS &amp;lt;/code&amp;gt; for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Appendix==&lt;br /&gt;
&lt;br /&gt;
Steps to run the project&lt;br /&gt;
&lt;br /&gt;
1.	Install and Build Rust (follow the link) -  [https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust]&lt;br /&gt;
&lt;br /&gt;
2.	Build Servo            (follow the link) -  [https://github.com/mozilla/servo]&lt;br /&gt;
&lt;br /&gt;
3.	Write the code for canvasrenderingcontext2d.rs and htmlcanvaselement.rs&lt;br /&gt;
&lt;br /&gt;
4.	Generate a Binding for CanvasRenderingContext2D.webidl, HTMLCanvasElement.webidl&lt;br /&gt;
&lt;br /&gt;
5.	Run Servo&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
1.	https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust -Getting started with Rust&lt;br /&gt;
&lt;br /&gt;
2.	https://github.com/mozilla/servo - Getting started with servo&lt;br /&gt;
&lt;br /&gt;
3.	https://github.com/mozilla/servo/wiki/Adding-a-new-WebIDL-binding - Adding a new webidl binding.&lt;br /&gt;
&lt;br /&gt;
4.	https://github.com/Aalhad/CanvasRenderingContext2DMozilla - Our Project on github.&lt;br /&gt;
&lt;br /&gt;
5.	http://www.2ality.com/2012/02/servo.html - Future Scope&lt;br /&gt;
&lt;br /&gt;
6.      http://en.wikipedia.org/wiki/Rust_(programming_language) - Rust&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81818</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81818"/>
		<updated>2013-10-31T01:31:37Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS&amp;lt;code&amp;gt; http://en.wikipedia.org/wiki/Canvas_element &amp;lt;/code&amp;gt; for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Appendix==&lt;br /&gt;
&lt;br /&gt;
Steps to run the project&lt;br /&gt;
&lt;br /&gt;
1.	Install and Build Rust (follow the link) -  [https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust]&lt;br /&gt;
&lt;br /&gt;
2.	Build Servo            (follow the link) -  [https://github.com/mozilla/servo]&lt;br /&gt;
&lt;br /&gt;
3.	Write the code for canvasrenderingcontext2d.rs and htmlcanvaselement.rs&lt;br /&gt;
&lt;br /&gt;
4.	Generate a Binding for CanvasRenderingContext2D.webidl, HTMLCanvasElement.webidl&lt;br /&gt;
&lt;br /&gt;
5.	Run Servo&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
1.	https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust -Getting started with Rust&lt;br /&gt;
&lt;br /&gt;
2.	https://github.com/mozilla/servo - Getting started with servo&lt;br /&gt;
&lt;br /&gt;
3.	https://github.com/mozilla/servo/wiki/Adding-a-new-WebIDL-binding - Adding a new webidl binding.&lt;br /&gt;
&lt;br /&gt;
4.	https://github.com/Aalhad/CanvasRenderingContext2DMozilla - Our Project on github.&lt;br /&gt;
&lt;br /&gt;
5.	http://www.2ality.com/2012/02/servo.html - Future Scope&lt;br /&gt;
&lt;br /&gt;
6.      http://en.wikipedia.org/wiki/Rust_(programming_language) - Rust&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81812</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81812"/>
		<updated>2013-10-31T01:28:43Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Appendix==&lt;br /&gt;
&lt;br /&gt;
Steps to run the project&lt;br /&gt;
&lt;br /&gt;
1.	Install and Build Rust (follow the link) -  [https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust]&lt;br /&gt;
&lt;br /&gt;
2.	Build Servo            (follow the link) -  [https://github.com/mozilla/servo]&lt;br /&gt;
&lt;br /&gt;
3.	Write the code for canvasrenderingcontext2d.rs and htmlcanvaselement.rs&lt;br /&gt;
&lt;br /&gt;
4.	Generate a Binding for CanvasRenderingContext2D.webidl, HTMLCanvasElement.webidl&lt;br /&gt;
&lt;br /&gt;
5.	Run Servo&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
1.	https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust -Getting started with Rust&lt;br /&gt;
&lt;br /&gt;
2.	https://github.com/mozilla/servo - Getting started with servo&lt;br /&gt;
&lt;br /&gt;
3.	https://github.com/mozilla/servo/wiki/Adding-a-new-WebIDL-binding - Adding a new webidl binding.&lt;br /&gt;
&lt;br /&gt;
4.	https://github.com/Aalhad/CanvasRenderingContext2DMozilla - Our Project on github.&lt;br /&gt;
&lt;br /&gt;
5.	http://www.2ality.com/2012/02/servo.html - Future Scope&lt;br /&gt;
&lt;br /&gt;
6.      http://en.wikipedia.org/wiki/Rust_(programming_language) - Rust&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81808</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81808"/>
		<updated>2013-10-31T01:27:50Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Appendix==&lt;br /&gt;
&lt;br /&gt;
Steps to run the project&lt;br /&gt;
&lt;br /&gt;
1.	Install and Build Rust (follow the link) -  [https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust]&lt;br /&gt;
&lt;br /&gt;
2.	Build Servo            (follow the link) -  [https://github.com/mozilla/servo]&lt;br /&gt;
&lt;br /&gt;
3.	Write the code for canvasrenderingcontext2d.rs and htmlcanvaselement.rs&lt;br /&gt;
&lt;br /&gt;
4.	Generate a Binding for CanvasRenderingContext2D.webidl, HTMLCanvasElement.webidl&lt;br /&gt;
&lt;br /&gt;
5.	Run Servo&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
1.	https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust -Getting started with Rust&lt;br /&gt;
&lt;br /&gt;
2.	https://github.com/mozilla/servo - Getting started with servo&lt;br /&gt;
&lt;br /&gt;
3.	https://github.com/mozilla/servo/wiki/Adding-a-new-WebIDL-binding - Adding a new webidl binding.&lt;br /&gt;
&lt;br /&gt;
4.	https://github.com/Aalhad/CanvasRenderingContext2DMozilla - Our Project on github.&lt;br /&gt;
&lt;br /&gt;
5.	http://www.2ality.com/2012/02/servo.html - Future Scope&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81806</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81806"/>
		<updated>2013-10-31T01:27:06Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* Appendix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Appendix==&lt;br /&gt;
&lt;br /&gt;
Steps to run the project&lt;br /&gt;
&lt;br /&gt;
1.	Install and Build Rust (follow the link) -  [https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust]&lt;br /&gt;
&lt;br /&gt;
2.	Build Servo            (follow the link) -  [https://github.com/mozilla/servo]&lt;br /&gt;
&lt;br /&gt;
3.	Write the code for canvasrenderingcontext2d.rs and htmlcanvaselement.rs&lt;br /&gt;
&lt;br /&gt;
4.	Generate a Binding for CanvasRenderingContext2D.webidl, HTMLCanvasElement.webidl&lt;br /&gt;
&lt;br /&gt;
5.	Run Servo&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
1.	[https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust] -Getting started with Rust&lt;br /&gt;
&lt;br /&gt;
2.	[https://github.com/mozilla/servo] - Getting started with servo&lt;br /&gt;
&lt;br /&gt;
3.	[https://github.com/mozilla/servo/wiki/Adding-a-new-WebIDL-binding] - Adding a new webidl binding.&lt;br /&gt;
&lt;br /&gt;
4.	[https://github.com/Aalhad/CanvasRenderingContext2DMozilla] - Our Project on github.&lt;br /&gt;
&lt;br /&gt;
5.	[http://www.2ality.com/2012/02/servo.html] - Future Scope&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81802</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81802"/>
		<updated>2013-10-31T01:25:43Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* Appendix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Appendix==&lt;br /&gt;
&lt;br /&gt;
Steps to run the project&lt;br /&gt;
&lt;br /&gt;
1.	Install and Build Rust   https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust&lt;br /&gt;
&lt;br /&gt;
2.	Build Servo                  (follow the link)&lt;br /&gt;
&lt;br /&gt;
3.	Write the code for canvasrenderingcontext2d.rs and htmlcanvaselement.rs&lt;br /&gt;
&lt;br /&gt;
4.	Generate a Binding for CanvasRenderingContext2D.webidl, HTMLCanvasElement.webidl&lt;br /&gt;
&lt;br /&gt;
5.	Run Servo&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
1.	[https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust] -Getting started with Rust&lt;br /&gt;
&lt;br /&gt;
2.	[https://github.com/mozilla/servo] - Getting started with servo&lt;br /&gt;
&lt;br /&gt;
3.	[https://github.com/mozilla/servo/wiki/Adding-a-new-WebIDL-binding] - Adding a new webidl binding.&lt;br /&gt;
&lt;br /&gt;
4.	[https://github.com/Aalhad/CanvasRenderingContext2DMozilla] - Our Project on github.&lt;br /&gt;
&lt;br /&gt;
5.	[http://www.2ality.com/2012/02/servo.html] - Future Scope&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81788</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81788"/>
		<updated>2013-10-31T01:20:04Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Appendix==&lt;br /&gt;
&lt;br /&gt;
Steps to run the project&lt;br /&gt;
&lt;br /&gt;
1.	Install and Build Rust   &amp;lt;a href=&amp;quot;https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust&amp;quot;&amp;gt;follow the link&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.	Build Servo                  (follow the link)&lt;br /&gt;
&lt;br /&gt;
3.	Write the code for canvasrenderingcontext2d.rs and htmlcanvaselement.rs&lt;br /&gt;
&lt;br /&gt;
4.	Generate a Binding for CanvasRenderingContext2D.webidl, HTMLCanvasElement.webidl&lt;br /&gt;
&lt;br /&gt;
5.	Run Servo &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
1.	[https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust] -Getting started with Rust&lt;br /&gt;
&lt;br /&gt;
2.	[https://github.com/mozilla/servo] - Getting started with servo&lt;br /&gt;
&lt;br /&gt;
3.	[https://github.com/mozilla/servo/wiki/Adding-a-new-WebIDL-binding] - Adding a new webidl binding.&lt;br /&gt;
&lt;br /&gt;
4.	[https://github.com/Aalhad/CanvasRenderingContext2DMozilla] - Our Project on github.&lt;br /&gt;
&lt;br /&gt;
5.	[http://www.2ality.com/2012/02/servo.html] - Future Scope&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81777</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81777"/>
		<updated>2013-10-31T01:14:28Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* Screenshots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81776</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81776"/>
		<updated>2013-10-31T01:14:09Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* Screenshots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81774</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81774"/>
		<updated>2013-10-31T01:13:41Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* Screenshots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81772</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81772"/>
		<updated>2013-10-31T01:13:00Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* Screenshots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
'''Make and Build Servo'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Make Check Successful'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Run Servo Engine'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81769</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81769"/>
		<updated>2013-10-31T01:12:24Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* Screenshots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
Make and Build Servo&lt;br /&gt;
&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Make Check Successful&lt;br /&gt;
&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Run Servo Engine&lt;br /&gt;
&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Sc3.png&amp;diff=81768</id>
		<title>File:Sc3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Sc3.png&amp;diff=81768"/>
		<updated>2013-10-31T01:11:45Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: uploaded a new version of &amp;amp;quot;File:Sc3.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Sc2.jpg&amp;diff=81767</id>
		<title>File:Sc2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Sc2.jpg&amp;diff=81767"/>
		<updated>2013-10-31T01:11:31Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: uploaded a new version of &amp;amp;quot;File:Sc2.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Sc1.jpg&amp;diff=81765</id>
		<title>File:Sc1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Sc1.jpg&amp;diff=81765"/>
		<updated>2013-10-31T01:11:15Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: uploaded a new version of &amp;amp;quot;File:Sc1.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81764</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81764"/>
		<updated>2013-10-31T01:08:55Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
===Screenshots===&lt;br /&gt;
Make and Build Servo&lt;br /&gt;
[[File:Sc1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Make Check Successful&lt;br /&gt;
[[File:Sc2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Run Servo Engine&lt;br /&gt;
[[File:Sc3.png]]&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Sc3.png&amp;diff=81762</id>
		<title>File:Sc3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Sc3.png&amp;diff=81762"/>
		<updated>2013-10-31T01:07:04Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Sc2.jpg&amp;diff=81761</id>
		<title>File:Sc2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Sc2.jpg&amp;diff=81761"/>
		<updated>2013-10-31T01:06:50Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Sc1.jpg&amp;diff=81760</id>
		<title>File:Sc1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Sc1.jpg&amp;diff=81760"/>
		<updated>2013-10-31T01:06:27Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81756</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81756"/>
		<updated>2013-10-31T01:01:12Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* Project Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81755</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81755"/>
		<updated>2013-10-31T01:00:47Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Future Scope==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Servo is predicted to be – the next Firefox&lt;br /&gt;
&lt;br /&gt;
Note that Servo is a research project, it may or may not become an actual product. Firefox is evolved in parallel and making great progress. In other words, Mozilla does not make the mistake of betting the farm on Servo. A complete rewrite of parts of the Navigator web browser (the flagship product) for version 4 brought Mozilla’s ancestor Netscape much trouble.&lt;br /&gt;
&lt;br /&gt;
===Goals===&lt;br /&gt;
•	The Servo project is about building a parallel browser:&lt;br /&gt;
&lt;br /&gt;
•	Use Rust instead of C++ which is safer and better equipped for parallelism.&lt;br /&gt;
&lt;br /&gt;
•	Try to parallelize as many stages of the rendering process as possible (ongoing research).&lt;br /&gt;
&lt;br /&gt;
•	Implement the DOM mostly in JavaScript (which makes it faster, because there are less context switches).&lt;br /&gt;
&lt;br /&gt;
•	Browser innovation only: For the foreseeable future, Servo will use Firefox’s JavaScript engine, Spidermonkey.&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81751</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81751"/>
		<updated>2013-10-31T00:58:34Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* Project Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81750</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81750"/>
		<updated>2013-10-31T00:58:18Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* Project Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81749</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81749"/>
		<updated>2013-10-31T00:57:19Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* Project Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
•	The project requirement stated us to develop a ''Binding'' for a '''CanvasRenderingContext2D.webidl''' and the '''HTMLCanvasElement.webidl'''  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a '''canvasrenderingcontext2d.rs''' file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an '''htmlcanvaselement.rs''' file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate ''Binding Files'' named '''CanvasRenderingContext2DBinding.rs''' and '''HTMLCanvasELementBinding.rs'''&lt;br /&gt;
&lt;br /&gt;
•	We then added '''&amp;lt;canvas&amp;gt;''' element support to the ''HTML parser'' using the '''hubbub_html_parser.rs''' file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing '''Canvas API''' for Mozilla using the '''CanvasRenderingContext2D''' and the '''HTMLCanvasElement''' interfaces.&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81745</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81745"/>
		<updated>2013-10-31T00:54:44Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: /* Project Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
•	The project requirement stated us to develop a Binding for a CanvasRenderingContext2D.webidl and the HTMLCanvasElement.webidl  interface.&lt;br /&gt;
&lt;br /&gt;
•	We had to write a canvasrenderingcontext2d.rs file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
&lt;br /&gt;
•	We also had to write an htmlcanvaselement.rs file which is also written in the Rust Language.&lt;br /&gt;
&lt;br /&gt;
•	The above files get compiled to generate Binding Files named CanvasRenderingContext2DBinding.rs and HTMLCanvasELementBinding.rs&lt;br /&gt;
&lt;br /&gt;
•	We then added &amp;lt;canvas&amp;gt; element support to the HTML parser using the hubbub_html_parser.rs file.&lt;br /&gt;
&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing Canvas API for Mozilla using the CanvasRenderingContext2D and the HTMLCanvasElement interfaces.&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81742</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81742"/>
		<updated>2013-10-31T00:54:03Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
•	The project requirement stated us to develop a Binding for a CanvasRenderingContext2D.webidl and the HTMLCanvasElement.webidl  interface.&lt;br /&gt;
•	We had to write a canvasrenderingcontext2d.rs file, which is written in the Rust programming language. We needed a struct containing a Reflector at minimum, as well as implementation of the Reflectable and BindingObject traits.&lt;br /&gt;
•	We also had to write an htmlcanvaselement.rs file which is also written in the Rust Language.&lt;br /&gt;
•	The above files get compiled to generate Binding Files named CanvasRenderingContext2DBinding.rs and HTMLCanvasELementBinding.rs&lt;br /&gt;
•	We then added &amp;lt;canvas&amp;gt; element support to the HTML parser using the hubbub_html_parser.rs file.&lt;br /&gt;
•	Then we successfully built and compiled our project on the Servo Engine.&lt;br /&gt;
•	This was Part one of our Mozilla project.&lt;br /&gt;
•	Our Final Project of OOLS will consist of Part two of the Mozilla project which includes implementing Canvas API for Mozilla using the CanvasRenderingContext2D and the HTMLCanvasElement interfaces.&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81739</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81739"/>
		<updated>2013-10-31T00:52:26Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;br /&gt;
&lt;br /&gt;
•	''Each box'' represents a Rust task.&lt;br /&gt;
&lt;br /&gt;
•	''Blue boxes'' represent the primary tasks in the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''Gray boxes'' represent tasks auxiliary to the browser pipeline.&lt;br /&gt;
&lt;br /&gt;
•	''White boxes'' represent worker tasks. Each such box represents several tasks, the precise number of which will vary with the workload.&lt;br /&gt;
&lt;br /&gt;
•	''Dashed lines'' indicate supervisor relationships.&lt;br /&gt;
&lt;br /&gt;
•	''Solid lines'' indicate communication channels.&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81736</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81736"/>
		<updated>2013-10-31T00:50:31Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
'''Task Supervision Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
'''Task Communication Diagram'''&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81733</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81733"/>
		<updated>2013-10-31T00:49:40Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
Task Supervision Diagram&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Task Communication Diagram&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Diagram2.jpg&amp;diff=81730</id>
		<title>File:Diagram2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Diagram2.jpg&amp;diff=81730"/>
		<updated>2013-10-31T00:48:15Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: uploaded a new version of &amp;amp;quot;File:Diagram2.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Diagram1.jpg&amp;diff=81729</id>
		<title>File:Diagram1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Diagram1.jpg&amp;diff=81729"/>
		<updated>2013-10-31T00:47:46Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: uploaded a new version of &amp;amp;quot;File:Diagram1.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81714</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81714"/>
		<updated>2013-10-31T00:35:18Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
Task Supervision Diagram&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
Task Communication Diagram&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81711</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81711"/>
		<updated>2013-10-31T00:33:20Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language. {{break}}&lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details. {{break}}&lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency. {{break}}&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles. {{break}}&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla. {{break}}&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. {{break}}&lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. {{break}}&lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users. {{break}}&lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
Task Supervision Diagram&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
Task Communication Diagram&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81705</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81705"/>
		<updated>2013-10-31T00:30:10Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
Rust is a curly-brace, block-structured expression language. &lt;br /&gt;
It visually resembles the C language family, but differs significantly in syntactic and semantic details. &lt;br /&gt;
Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles.&lt;br /&gt;
	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
Servo is an experimental web browser layout engine being developed by Mozilla.&lt;br /&gt;
The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users.&lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
Task Supervision Diagram&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
Task Communication Diagram&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81700</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81700"/>
		<updated>2013-10-31T00:29:23Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
-Rust is a curly-brace, block-structured expression language. &lt;br /&gt;
-It visually resembles the C language family, but differs significantly in syntactic and semantic details. &lt;br /&gt;
-Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
-It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles.&lt;br /&gt;
-	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
-Servo is an experimental web browser layout engine being developed by Mozilla.&lt;br /&gt;
-The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
-The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
-Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users.&lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ====&lt;br /&gt;
&lt;br /&gt;
Task Supervision Diagram&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Task Communication Diagram&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81696</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81696"/>
		<updated>2013-10-31T00:28:50Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
-Rust is a curly-brace, block-structured expression language. &lt;br /&gt;
-It visually resembles the C language family, but differs significantly in syntactic and semantic details. &lt;br /&gt;
-Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and  operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
-It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles.&lt;br /&gt;
-	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
-Servo is an experimental web browser layout engine being developed by Mozilla.&lt;br /&gt;
-The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
-The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
-Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users.&lt;br /&gt;
&lt;br /&gt;
==== Design Diagrams ===&lt;br /&gt;
&lt;br /&gt;
Task Supervision Diagram&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Task Communication Diagram&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram2.jpg]]&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Diagram2.jpg&amp;diff=81692</id>
		<title>File:Diagram2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Diagram2.jpg&amp;diff=81692"/>
		<updated>2013-10-31T00:28:11Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: uploaded a new version of &amp;amp;quot;File:Diagram2.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Diagram2.jpg&amp;diff=81691</id>
		<title>File:Diagram2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Diagram2.jpg&amp;diff=81691"/>
		<updated>2013-10-31T00:28:10Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Diagram1.jpg&amp;diff=81688</id>
		<title>File:Diagram1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Diagram1.jpg&amp;diff=81688"/>
		<updated>2013-10-31T00:27:21Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81671</id>
		<title>CSC/ECE 517 Fall 2013/oss M803 ana</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013/oss_M803_ana&amp;diff=81671"/>
		<updated>2013-10-31T00:16:52Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: Created page with &amp;quot;''' CANVAS 2D with RUST and MOZILLA SERVO '''  This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.  == Introduc...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''' CANVAS 2D with RUST and MOZILLA SERVO '''&lt;br /&gt;
&lt;br /&gt;
This wiki deals with our implementation of a CANVAS for the Mozilla Servo Project using the Rust Programming Language.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Mozilla are working on a project called Servo which is being implemented in the Rust programming language. &lt;br /&gt;
&lt;br /&gt;
== Design == &lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
•	Rust is a curly-brace, block-structured expression language. &lt;br /&gt;
•	It visually resembles the C language family, but differs significantly in syntactic and semantic details. &lt;br /&gt;
•	Its design is oriented toward concerns of “programming in the large”, that is, of creating and maintaining boundaries – both abstract and operational – that preserve large-system integrity, availability and concurrency.&lt;br /&gt;
•	It supports a mixture of imperative procedural, concurrent actor, object-oriented and pure functional styles. Rust also supports generic programming and metaprogramming, in both static and dynamic styles.&lt;br /&gt;
•	Example:&lt;br /&gt;
                  fn main() {&lt;br /&gt;
   			 println(&amp;quot;hello, world&amp;quot;);&lt;br /&gt;
                        }&lt;br /&gt;
&lt;br /&gt;
=== Servo === &lt;br /&gt;
&lt;br /&gt;
•	Servo is an experimental web browser layout engine being developed by Mozilla.&lt;br /&gt;
•	The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. &lt;br /&gt;
•	The project has a symbiotic relationship with the Rust programming language, in which it is being developed. &lt;br /&gt;
•	Servo is explicitly not aiming to create a full Web browser (except for demonstration and experimentation purposes). Rather it is focused on creating a solid, embeddable engine. Although Servo is a research project, it is designed to be &amp;quot;productizable&amp;quot;—the code that we write should be of high enough quality that it could eventually be shipped to users.&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013&amp;diff=81663</id>
		<title>CSC/ECE 517 Fall 2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2013&amp;diff=81663"/>
		<updated>2013-10-31T00:09:59Z</updated>

		<summary type="html">&lt;p&gt;Apkulkar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[ CSC/ECE 517 Fall 2012/ch1 1w23 ph ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w30 nn]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w21 w]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w01 aj]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w24 nv]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w29 rkld]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w25 aras]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w30 ps]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w19 rj]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w18 bs]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w17 pk]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w22 ss]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w12 vn]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w14 st]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w08 cc]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w10 ga ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w26 as ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w27 ma ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w13 aa ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w11 sv ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w07 d ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w20 gq ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w03 ss ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w28 nm ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w02 pp ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1  1w6 zs ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1  1w04 y ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w05 st ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w09 hs ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w32 av ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w48 x ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w43 av]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w46 ka]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w33 aa]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w35 sa ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w39 as ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w31 vm ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w43 sm ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w44 s ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w47 ka ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w34 fs ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch1 1w40 ao ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss fmv ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss vna ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss paa ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss mapFeeds ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss ssp ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/ch2 0e808 nsv ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss aoa ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss cmh ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss ans ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss ssv]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss E818 mra ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss SocialMediaFeeds ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss E811 syn ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss E804 spb ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss E812 amp ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss S805 ahs ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss E820 gzs ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss E816 cyy ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss M801 as ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss E814 vd ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss E815 saa]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss E810 aas ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss E805 kkn ]]&lt;br /&gt;
* [[ CSC/ECE 517 Fall 2013/oss M803 ana ]]&lt;/div&gt;</summary>
		<author><name>Apkulkar</name></author>
	</entry>
</feed>