<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
	<channel>
		<title>KnitML</title>
		<link>http://www.knitml.com/blog/index.php</link>
		<description><![CDATA[No Footer]]></description>
		<copyright>Copyright 2012, Jonathan</copyright>
		<managingEditor>Jonathan</managingEditor>
		<language>en-US</language>
		<generator>SPHPBLOG 0.5.1</generator>
		<item>
			<title>KnitML Core 0.7.1 Released</title>
			<link>http://www.knitml.com/blog/index.php?entry=entry120424-150358</link>
			<description><![CDATA[When I started developing the Pattern Editor a few years back and embedding Core Tools in that software, I thought that everyone would stop using the old standalone Core Tools projects. And I was mostly right. But I was surprised to discover that Core Tools 0.5.0 (from 2 years ago) was still being downloaded... as recently as last month! The specification and schemas from that are so old, I figured that I had better release a current update on that track.<br /><br />So for all you die-hard, command-line type people, I give you <a href="https://sourceforge.net/projects/knitml/files/knitml/0.7.1.RELEASE/" target="_blank" >KnitML 0.7.1.RELEASE</a>!]]></description>
			<category></category>
			<guid isPermaLink="true">http://www.knitml.com/blog/index.php?entry=entry120424-150358</guid>
			<author>Jonathan</author>
			<pubDate>Tue, 24 Apr 2012 21:03:58 GMT</pubDate>
			<comments>http://www.knitml.com/blog/comments.php?y=12&amp;m=04&amp;entry=entry120424-150358</comments>
		</item>
		<item>
			<title>KnitML Pattern Editor 0.4.0 released</title>
			<link>http://www.knitml.com/blog/index.php?entry=entry120416-055404</link>
			<description><![CDATA[In this release, the chart support is vastly improved. The editor now properly renders multi-cell operations (e.g., cables), supports group operations (e.g., yo 9 as one cell in a chart), and now supports the StitchMastery symbol set (as well as continuing to support Aire River and Knitters Symbols).<br /><br />I added a welcome screen with an overview and guides to creating patterns, as well as more examples and demonstrations using the new language. I moved some of the rendering menus around to make preference changes a little easier (I hope).<br /><br />I also added multi-decrease support as well as some internal stuff which will enable importing stitch libraries from external sources.]]></description>
			<category></category>
			<guid isPermaLink="true">http://www.knitml.com/blog/index.php?entry=entry120416-055404</guid>
			<author>Jonathan</author>
			<pubDate>Mon, 16 Apr 2012 11:54:04 GMT</pubDate>
			<comments>http://www.knitml.com/blog/comments.php?y=12&amp;m=04&amp;entry=entry120416-055404</comments>
		</item>
		<item>
			<title>New Pattern Editor Milestone Released</title>
			<link>http://www.knitml.com/blog/index.php?entry=entry120201-094543</link>
			<description><![CDATA[You can access the latest download <a href="https://sourceforge.net/projects/knitml/files/pattern-editor/0.3.0.M2/?" target="_blank" >here</a>. I fixed a couple of issues related to Java settings. If you were using Java 5 to run the editor (particularly on Mac OS X Tiger), you probably noticed that the editor wouldn&#039;t come up properly. Sorry about that! That&#039;s now been fixed.<br /><br />Important Note: I made two significant changes to the KnitML schemas in this release that might affect you.<br /><br />The first was that I broke up the two schema files (pattern-0.6.xsd and pattern-header-types-0.6.xsd) into three schema files with separate namespaces (pattern-0.6.xsd, operations-0.6.xsd, common-0.6.xsd). If you are using the KEL syntax (or the new KEL2 syntax in the 0.3.0 editor), you do not need to change anything. If you are using the raw XML syntax for development, take a look at the schema files to see what moved into which namespaces. Essentially, pattern structure elements moved into the pattern namespace (pattern, header and sub-elements, instruction-definitions, directions, section, instruction-group), needle yarn and stitch holder definitions moved into the common namespace, and everything else moved into the operations namespace. All this was done in preparation for imports of instruction libraries (i.e., for integration with other software which may only be producing charts, not full patterns).<br /><br />The second change was to how needles and yarns are defined in the header. If you are using the new KEL2 syntax in the 0.3.0 editor (your file name ends with .kel2), you do not need to change anything. If you are using the older KEL syntax (your file name ends with .kel), you now need to group yarns by yarn type and needles by needle type.<br /><br />Here is a sample of the KEL syntax you need to use:<br /><code><br /><pre>Supplies {<br />	YarnTypes {<br />		YarnType &#039;lornas-1&#039; [brand:&quot;Lorna&#039;s Laces&quot;,category:&quot;Shepherd Sock&quot;,weight:&quot;fingering&quot;] {<br />			BallWeight: 50 g<br />			Yarns {<br />				Yarn &#039;main-color&#039; withKey {<br />					TotalLength: 430 yd<br />					TotalWeight: 100 g<br />					Color &quot;Mixed Berries&quot; [number:38]<br />				}<br />			}<br />		}<br />	}<br />	NeedleTypes {<br />		NeedleType &#039;size1circ&#039; circ [brand:&quot;Knitpicks&quot;] {<br />			Length: 24 inches<br />			Size: US 1<br />			Needles {<br />				Needle &#039;needle1&#039; withKey<br />				Needle &#039;needle2&#039; withKey<br />			}<br />		}<br />	}<br />	Accessories<br />}</pre><br /></code>Notice how they&#039;re grouped together now under their type. You no longer need the typeref attribute as a result. Also note that YarnTypes and NeedleTypes are the new names for Yarns and Needles. Make sure you change the name of that, else the parser will get confused.]]></description>
			<category></category>
			<guid isPermaLink="true">http://www.knitml.com/blog/index.php?entry=entry120201-094543</guid>
			<author>Jonathan</author>
			<pubDate>Wed, 01 Feb 2012 16:45:43 GMT</pubDate>
			<comments>http://www.knitml.com/blog/comments.php?y=12&amp;m=02&amp;entry=entry120201-094543</comments>
		</item>
		<item>
			<title>Quick and dirty tutorial for the new editor</title>
			<link>http://www.knitml.com/blog/index.php?entry=entry120109-130439</link>
			<description><![CDATA[I&#039;ve created a very basic <a href="http://code.google.com/p/knitml-editor/wiki/EditorTutorial" target="_blank" >tutorial</a> for using the new editor and navigating around the new syntax.<br /><br />I&#039;d love help adding to this document. It&#039;s a Wiki page on Google Code, so all you need is a Google account and interest in helping out. Please let me know!]]></description>
			<category></category>
			<guid isPermaLink="true">http://www.knitml.com/blog/index.php?entry=entry120109-130439</guid>
			<author>Jonathan</author>
			<pubDate>Mon, 09 Jan 2012 20:04:39 GMT</pubDate>
			<comments>http://www.knitml.com/blog/comments.php?y=12&amp;m=01&amp;entry=entry120109-130439</comments>
		</item>
		<item>
			<title>Pattern Editor 0.3.0 (milestone 1) released</title>
			<link>http://www.knitml.com/blog/index.php?entry=entry120109-001127</link>
			<description><![CDATA[Download the newest editor <a href="https://sourceforge.net/projects/knitml/files/pattern-editor/0.3.0.M1/?" target="_blank" >here</a>. And let me know what you think!]]></description>
			<category></category>
			<guid isPermaLink="true">http://www.knitml.com/blog/index.php?entry=entry120109-001127</guid>
			<author>Jonathan</author>
			<pubDate>Mon, 09 Jan 2012 07:11:27 GMT</pubDate>
			<comments>http://www.knitml.com/blog/comments.php?y=12&amp;m=01&amp;entry=entry120109-001127</comments>
		</item>
		<item>
			<title>Here is the latest</title>
			<link>http://www.knitml.com/blog/index.php?entry=entry111111-111021</link>
			<description><![CDATA[So this code in KEL:<br /><pre><code>Pattern &#039;en&#039; {<br />  Directions {<br />    CastOn 24<br />    Instruction &#039;stockinette-st&#039; {<br />      Row: k to end<br />      Row: p to end<br />    }<br />    Repeat &#039;stockinette-st&#039; until measures 4 in<br />    NextRow: BindOff all sts<br />  }<br />}</code></pre><br /><br />becomes this in the new DSL:<br /><pre><code>Cast on 24 sts<br /><br />Instruction Stockinette:<br />Row 1: k to end <br />Row 2: p to end <br /><br />Repeat Stockinette for 4 in <br />Next Row: BO all sts</code></pre><br /><br />And, you get a nice editor that provides you with suggestions!<br /><br /><img src="images/new-dsl-demo.png" width="512" height="443" border="0" alt="" /><br /><br />What do you think?]]></description>
			<category></category>
			<guid isPermaLink="true">http://www.knitml.com/blog/index.php?entry=entry111111-111021</guid>
			<author>Jonathan</author>
			<pubDate>Fri, 11 Nov 2011 18:10:21 GMT</pubDate>
			<comments>http://www.knitml.com/blog/comments.php?y=11&amp;m=11&amp;entry=entry111111-111021</comments>
		</item>
		<item>
			<title>A New Approach</title>
			<link>http://www.knitml.com/blog/index.php?entry=entry111103-223224</link>
			<description><![CDATA[My interest in KnitML has come and gone over the years. (Has it really been years? Yikes!) Usually I give some attention to the project a couple times a year. This time was sparked by a talk I recently attended about Groovy&#039;s support for domain-specific languages (DSLs). It got me thinking about the appropriateness of Groovy as a platform for the Knitting Expression Language.<br /><br />Most DSLs written to be understood by a computer don&#039;t exist before they&#039;re implemented <i>for</i> the computer; they usually evolve organically as the language&#039;s requirements are iterated over. I&#039;ve known for awhile that knitting patterns are perhaps a somewhat unusual case for DSLs because the language already exists and is reasonably standard. Most pattern designers, for instance, can write:<br /><br /><code>Row 1: k to end</code><br /><br />and almost every English-speaking knitter who reads patterns will know exactly what to do. So subjecting an existing DSL to a general programming language which has an entirely different set of syntactic conventions was, in retrospect, not a great idea. Just to get that row syntax I mentioned above to work in Groovy, I had to do back flips both within the language and as a pre-processing step. Plus I essentially lost the ability to implement editor help when I did that.<br /><br />XText, however, is a far more flexible platform for creating new DSLs... because it was written solely for that purpose. I had looked into XText a couple of years back, but the project was in its infancy and I found it hard to wrap my head around. A couple of years really can give a guy some perspective, so I took another look, played around with it a bit, and now I&#039;m convinced it&#039;s the way to go. Not only will you get a knitting language that looks much, <i>much</i> more like a real pattern, but you will also get direct help from the editor <i>as you type</i> and suggestions for completion.<br /><br />I&#039;ll keep the Groovy-based DSL around for awhile, but I&#039;m not going to enhance it further. <br /><br />Interestingly, the knitting engine, validator, and pattern renderer don&#039;t need to change at all to support this new DSL. That&#039;s because I completely decoupled the DSL from the domain model used by those components. That&#039;s the architect in me coming out, I suppose. It really paid off, because my focus is going to be a lot less on the specification itself and a lot more on getting the editor to be usable and nice.<br /><br />So stayed tuned! There are big changes afoot!]]></description>
			<category></category>
			<guid isPermaLink="true">http://www.knitml.com/blog/index.php?entry=entry111103-223224</guid>
			<author>Jonathan</author>
			<pubDate>Fri, 04 Nov 2011 04:32:24 GMT</pubDate>
			<comments>http://www.knitml.com/blog/comments.php?y=11&amp;m=11&amp;entry=entry111103-223224</comments>
		</item>
		<item>
			<title>KnitML Editor 0.2.1 released</title>
			<link>http://www.knitml.com/blog/index.php?entry=entry110106-095439</link>
			<description><![CDATA[Changes include supporting the latest development builds of KnitML Core Tools 0.6.0 and some upgrades to third-party libraries.<br /><br />You can find the files for your platform <a href="https://sourceforge.net/projects/knitml/files/pattern-editor/0.2.1/" target="_blank" >here at SourceForge</a>.]]></description>
			<category></category>
			<guid isPermaLink="true">http://www.knitml.com/blog/index.php?entry=entry110106-095439</guid>
			<author>Jonathan</author>
			<pubDate>Thu, 06 Jan 2011 16:54:39 GMT</pubDate>
			<comments>http://www.knitml.com/blog/comments.php?y=11&amp;m=01&amp;entry=entry110106-095439</comments>
		</item>
		<item>
			<title>Hey! What&#039;s news?</title>
			<link>http://www.knitml.com/blog/index.php?entry=entry091102-081121</link>
			<description><![CDATA[I haven&#039;t posted since April, so you may be wondering what happened to me (and consequently the project). Well, after the last release, I decided to take a much-needed break and wait for some new people to take interest. That came in the form of <a href="http://blog.dictumsapienti.com/" target="_blank" >i0lanthe</a> last month.<br /><br />I know that there are a lot of people out there that want to help out but don&#039;t really know how to get started. Well, the <a href="http://www.ravelry.com/groups/knitml" target="_blank" >Ravelry KnitML Forum</a> has been abuzz in recent weeks, and the first-cut of a <a href="http://knitnuggets.com/tutorial" target="_blank" >first draft of a KEL tutorial</a> has emerged. I believe that this tutorial is a sorely needed stepping stone to boost involvement of the knitting community. Try it out and give us your feedback.<br /><br />In other news, now that both project source code repositories are being hosted at Google Code, I may try to move the bug tracker over there. It also appears that there is a Mylyn Connector for it (which, if it works, is the only thing that would be stopping me from migrating from Bugzilla.) I&#039;ll let you know.<br /><br />]]></description>
			<category></category>
			<guid isPermaLink="true">http://www.knitml.com/blog/index.php?entry=entry091102-081121</guid>
			<author>Jonathan</author>
			<pubDate>Mon, 02 Nov 2009 15:11:21 GMT</pubDate>
			<comments>http://www.knitml.com/blog/comments.php?y=09&amp;m=11&amp;entry=entry091102-081121</comments>
		</item>
		<item>
			<title>Using KnitML, Part Two: Customizing the Result</title>
			<link>http://www.knitml.com/blog/index.php?entry=entry090426-185525</link>
			<description><![CDATA[<a href="http://www.knitml.com/blog/index.php?entry=entry090324-130239" target="_blank" >Previously in this series</a>, I showed you how I converted Jenna Wilson&#039;s <a href="http://knitty.com/ISSUEwinter03/PATTbanff.html" target="_blank" >Banff sweater</a> to a KnitML pattern. In this post, I&#039;m going to show you how you can customize the pattern to your preferences.<br /><br />For those of you reading this post who are not involved with the KnitML Project, I&#039;m asking that you keep an open mind and not judge or dismiss this software based on its current limitations. Please remember that this is beta software, supported and nurtured by the knitting community. Your suggestions for improvement are most welcome (and, in fact, sought after). The software needs to be made better, and only you can make this possible. You can leave a comment on the blog, you can contact me privately (by clicking on the Contact Me link on the sidebar). or you can post a thread on the Ravelry KnitML group. Thanks!<br /><br />When I open up the KEL editor, notice that there are three different views of the KnitML pattern: Code, XML, and Pattern. <br /><a href="javascript:openpopup('http://www.knitml.com/banff-images/render01.png',1024,738,false);"><img src="http://www.knitml.com/banff-images/render01.png" width="512" height="369" border="0" alt="" /></a><br /><br />The Code View is where I get to work with and edit the pattern. The XML view shows the pattern in true KnitML format, derived directly from the Code View. If I were to publish this KnitML pattern online, this is the file I would share. The Pattern View shows how the pattern looks using my personal preferences.<br /><br />The pattern editor ships with a set of sensible defaults for the pattern view. Here is what Banff looks like out-of-the-box:<br /><a href="javascript:openpopup('http://www.knitml.com/banff-images/render02.png',763,738,false);"><img src="http://www.knitml.com/banff-images/render02.png" width="512" height="495" border="0" alt="" /></a><br /><br />While this is certainly fine, it&#039;s not entirely to my liking. I can open up the Preferences page and make a few changes.<br /><a href="javascript:openpopup('http://www.knitml.com/banff-images/render03.png',483,175,false);"><img src="http://www.knitml.com/banff-images/render03.png" width="483" height="175" border="0" alt="" /></a><br /><br />I&#039;m not a huge fan of Arial. Garamond would look much nicer.<br /><a href="javascript:openpopup('http://www.knitml.com/banff-images/render04.png',1021,733,false);"><img src="http://www.knitml.com/banff-images/render04.png" width="512" height="368" border="0" alt="" /></a><br /><br /><a href="javascript:openpopup('http://www.knitml.com/banff-images/render05.png',1023,735,false);"><img src="http://www.knitml.com/banff-images/render05.png" width="512" height="368" border="0" alt="" /></a><br /><br />To get the pattern to re-render, I must navigate away from the Pattern View (either to the Code or XML View) and then back to the Pattern View. (There will be an easier way to do this in a future release.)<br /><br />Notice the gauge is expressed as a 4-inch swatch in stockinette stitch.<br /><a href="javascript:openpopup('http://www.knitml.com/banff-images/render06.png',763,459,false);"><img src="http://www.knitml.com/banff-images/render06.png" width="512" height="308" border="0" alt="" /></a><br /><br />You may recall that I expressed the gauge like this:<br /><code>Gauge &#039;stockinette&#039; {<br />      StitchGauge: 3.5 stitchesPerInch<br />      RowGauge: 5.25 rowsPerInch<br />    }<br /></code>The Pattern View does the conversion to a square for me. If you don&#039;t care for gauges written this way, you can uncheck the &quot;Describe gauge as a square&quot; option in the Preferences page.<br /><a href="javascript:openpopup('http://www.knitml.com/banff-images/render07.png',1023,734,false);"><img src="http://www.knitml.com/banff-images/render07.png" width="512" height="367" border="0" alt="" /></a><br /><br /><a href="javascript:openpopup('http://www.knitml.com/banff-images/render08.png',766,284,false);"><img src="http://www.knitml.com/banff-images/render08.png" width="512" height="190" border="0" alt="" /></a><br />We intend to support non-stockinette-based gauges in the future.<br /><br />If you are familiar with the original pattern from Knitty, you probably know that it did not come with charts. You also may remember that I did not type in anything that looked like a chart when I created the pattern in the Code View.<br /><br />I can tell the renderer to construct charts from the KnitML pattern. To do this, go to the Preferences page, expand the Rendering option on the left, click on Charts and then check the box labelled &quot;Enable chart creation for instructions.&quot; The renderer will make a chart whenever it can.<br /><a href="javascript:openpopup('http://www.knitml.com/banff-images/render09.png',625,535,false);"><img src="http://www.knitml.com/banff-images/render09.png" width="512" height="438" border="0" alt="" /></a><br /><br />Here is a part of the pattern that shows charts well:<br /><a href="javascript:openpopup('http://www.knitml.com/banff-images/render10.png',765,565,false);"><img src="http://www.knitml.com/banff-images/render10.png" width="512" height="378" border="0" alt="" /></a><br />(The legend has some cleanup work slated for the next release.)<br /><br />By default, the renderer uses simple text art for its symbols (based on the Unicode character set). Since I have the Aire River Knitting Font installed on my machine, I could use those symbols instead.<br /><a href="javascript:openpopup('http://www.knitml.com/banff-images/render11.png',766,647,false);"><img src="http://www.knitml.com/banff-images/render11.png" width="512" height="432" border="0" alt="" /></a><br /><br />If I wanted to manipulate the chart further, I could copy and paste it directly into a spreadsheet.<br /><a href="javascript:openpopup('http://www.knitml.com/banff-images/render12.png',765,646,false);"><img src="http://www.knitml.com/banff-images/render12.png" width="512" height="432" border="0" alt="" /></a><br /><br /><a href="javascript:openpopup('http://www.knitml.com/banff-images/render13.png',518,279,false);"><img src="http://www.knitml.com/banff-images/render13.png" width="512" height="276" border="0" alt="" /></a><br />Note that if you don&#039;t use Windows and Excel, it may take a little more work to get it into this form. While the copy/paste with Firefox and OpenOffice does work, the font settings are not preserved. In order to get the Aire River font to look correct, you would have to re-apply that font to the cells of the chart.<br /><br />Notice that the charts are all right justified with respect to their &quot;no stitch&quot; elements. In a future release, the renderer will be able to infer whether to center, left, or right justify depending on conditions. This will help keep the chart looking more like the finished object. For more complex charts, however, auto-justification may not always be possible. A designer may choose to specify the placement of every &quot;no stitch&quot; element themselves to guarantee their own chart layout.<br /><br />So how do you write patterns in KnitML which were originally designed as a chart? Right now, the process to convert a chart to KnitML is manual (by writing out the appropriate KEL syntax). This is undeniably awkward. In the future, existing software (such as but not limited to Knit Visualizer) could make this a whole lot easier by creating the KnitML chart instead of you having to do it.<br /><br />I can also customize the instructions themselves. Here are the defaults for several common decreases:<br /><a href="javascript:openpopup('http://www.knitml.com/banff-images/render14.png',907,632,false);"><img src="http://www.knitml.com/banff-images/render14.png" width="512" height="357" border="0" alt="" /></a><br /><br />Suppose I knit in combined style (or left-handed) and prefer all decreases to indicate their lean. I can edit my preferences to display RLD or LLD (right-leaning decrease, left-leaning decrease):<br /><a href="javascript:openpopup('http://www.knitml.com/banff-images/render15.png',991,733,false);"><img src="http://www.knitml.com/banff-images/render15.png" width="512" height="379" border="0" alt="" /></a><br /><br />That will end up looking like this:<br /><a href="javascript:openpopup('http://www.knitml.com/banff-images/render16.png',730,360,false);"><img src="http://www.knitml.com/banff-images/render16.png" width="512" height="252" border="0" alt="" /></a><br /><br />Suppose French is my native language. I can have the pattern rendered in French using international units:<br /><a href="javascript:openpopup('http://www.knitml.com/banff-images/render17.png',623,537,false);"><img src="http://www.knitml.com/banff-images/render17.png" width="512" height="441" border="0" alt="" /></a><br /><br />It will render all of the non-custom instructions in French automatically.<br /><a href="javascript:openpopup('http://www.knitml.com/banff-images/render18.png',762,560,false);"><img src="http://www.knitml.com/banff-images/render18.png" width="512" height="376" border="0" alt="" /></a><br /><br />A pattern designer can provide translation files for their customized sections. The Nutkin2 sample demonstrates how to fully internationalize a pattern. Future releases may be able to provide an &quot;auto translate&quot; feature if no translation is found for the given language.<br /><br />I&#039;ve touched on the major points of the Pattern Editor. If you have any questions, ideas, or thoughts, please feel free to comment here on the blog, <a href="http://www.knitml.com/blog/contact.php" target="_blank" >contact me privately</a>, or ask a question <a href="http://www.ravelry.com/discuss/knitml/topics" target="_blank" >on the KnitML Ravelry group</a> or <a href="http://answers.launchpad.net/knitml" target="_blank" > the public Answers forum</a>.]]></description>
			<category></category>
			<guid isPermaLink="true">http://www.knitml.com/blog/index.php?entry=entry090426-185525</guid>
			<author>Jonathan</author>
			<pubDate>Mon, 27 Apr 2009 00:55:25 GMT</pubDate>
			<comments>http://www.knitml.com/blog/comments.php?y=09&amp;m=04&amp;entry=entry090426-185525</comments>
		</item>
	</channel>
</rss>

