YarnSub Newsletter

August 2020


Newly-published books

[Book: 'Crochet Café' by Lauren Espy] [Book: 'Traditional Dutch Ganseys for Children' by Stella Ruhe] [Book: 'Felted Animal Knits' by Catherine Arnfield]

There are a lot of amigurumi books available already, but Crochet Café stands out for me. Lauren Espy seems to have considered every place where you might go wrong and included a photo tutorial showing how to get it right. I feel like she really cares that her readers become successful amigurumists!

Stella Ruhe has already written two books about ganseys—a kind of sweater with elaborate knit and purl motifs, traditionally worn by fishermen. As she researched those books, she noticed that in some of the old photographs that children were wearing ganseys too. She became interested in what life was like for those children, and Traditional Dutch Ganseys for Children is the result. Apparently boys used to go out on fishing boats with their fathers from as young as the age of seven. I hope they found some comfort in their hand-knitted ganseys.

Needle felting (i.e. jabbing a sharp needle into wool until it felts) can produce works of art. I never considered trying it until I saw Felted Animal Knits. Catherine Arnfield had the idea of combining knitting and needle felting. She starts by knitting the body of an animal and then felts it in a washing machine. After stuffing, she uses needle felting to add fine details. In this way, it's possible to make larger toys than you can easily make with needle felting alone, and you can get much more detail than is possible if you're just knitting. Brilliant.

See all newly published books >

New and discontinued yarns

New yarn: King Cole Forest Aran

New yarn: King Cole Forest Aran – Image © The Knitting Network

New

FreeMarker template error (DEBUG mode; use RETHROW in production!): Java method "com.yarnsub.model.Yarn.newWhen()" threw an exception when invoked on com.yarnsub.model.Yarn object "com.yarnsub.model.Yarn@9f0f8472"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #if yarn.newWhen()?? [in template "yarn-changes.template" at line 163, column 1] ~ Reached through: #nested [in template "shared.macro" in macro "standardPage" at line 166, column 1] ~ Reached through: @m.standardPage title=title extraHead... [in template "yarn-changes.template" at line 14, column 1] ---- Java stack trace (for programmers): ---- freemarker.core._TemplateModelException: [... Exception message was already printed; see it above ...] at freemarker.ext.beans._MethodUtil.newInvocationTemplateModelException(_MethodUtil.java:289) at freemarker.ext.beans._MethodUtil.newInvocationTemplateModelException(_MethodUtil.java:252) at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:77) at freemarker.core.MethodCall._eval(MethodCall.java:65) at freemarker.core.Expression.eval(Expression.java:83) at freemarker.core.ExistsExpression._eval(ExistsExpression.java:49) at freemarker.core.Expression.eval(Expression.java:83) at freemarker.core.Expression.evalToBoolean(Expression.java:161) at freemarker.core.Expression.evalToBoolean(Expression.java:147) at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48) at freemarker.core.Environment.visit(Environment.java:366) at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:317) at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271) at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:242) at freemarker.core.Environment.visitIteratorBlock(Environment.java:642) at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:107) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:93) at freemarker.core.Environment.visit(Environment.java:366) at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:317) at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271) at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:242) at freemarker.core.Environment.visitIteratorBlock(Environment.java:642) at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:107) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:93) at freemarker.core.Environment.visit(Environment.java:366) at freemarker.core.Environment.invokeNestedContent(Environment.java:618) at freemarker.core.BodyInstruction.accept(BodyInstruction.java:60) at freemarker.core.Environment.visit(Environment.java:366) at freemarker.core.Environment.invoke(Environment.java:775) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:83) at freemarker.core.Environment.visit(Environment.java:330) at freemarker.core.Environment.visit(Environment.java:336) at freemarker.core.Environment.process(Environment.java:309) at freemarker.template.Template.process(Template.java:384) at com.yarnsub.util.template.FreemarkerTemplateProvider$1.render(FreemarkerTemplateProvider.java:77) at com.yarnsub.server.pages.AbstractPage.handle(AbstractPage.java:31) at com.yarnsub.http.Dispatcher$PathMatchingHandler.handle(Dispatcher.java:60) at com.yarnsub.http.Dispatcher$InternalDispatcher.handle(Dispatcher.java:81) at com.yarnsub.server.pages.YarnsubWebsite$PageNotFoundFilter.handle(YarnsubWebsite.java:227) at com.yarnsub.http.Filters$ComposedFilter$1.handle(Filters.java:102) at com.yarnsub.http.ExceptionFilter.handle(ExceptionFilter.java:11) at com.yarnsub.http.Filters$ComposedFilter.handle(Filters.java:98) at com.yarnsub.http.Filters$FilterableHandler.handle(Filters.java:71) at com.yarnsub.http.Dispatcher.handle(Dispatcher.java:20) at com.yarnsub.http.jetty.JettyServer$1.handle(JettyServer.java:29) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.Server.handle(Server.java:503) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) at java.base/java.lang.Thread.run(Thread.java:832) Caused by: java.lang.NumberFormatException: For input string: "Sometimes branded as 'Virtual Yarns'." at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) at java.base/java.lang.Integer.parseInt(Integer.java:652) at java.base/java.lang.Integer.parseInt(Integer.java:770) at com.yarnsub.model.AbstractModel.getDate(AbstractModel.java:30) at com.yarnsub.model.Yarn.newWhen(Yarn.java:40) at jdk.internal.reflect.GeneratedMethodAccessor54.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:1505) at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:72) ... 57 more

If you'd like to get in touch, please send a mail to hello@yarnsub.com (you can simply reply to this mail) or find me on Ravelry and Instagram.

Take care, and see you in September.

Wendy


Disclaimer: YarnSub provides information for guidance only and doesn't guarantee its accuracy. We try hard to get it right though—please let us know if you see any issues, via email to hello@yarnsub.com.

Affiliate links: YarnSub is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to amazon.com.

Click if you would like to unsubscribe.

If this article was your cup of tea...

Subscribe to our Yarn Geeks newsletter!

Subscribe
We will never share your e-mail address and you can unsubscribe at any time.

About YarnSub

Search for a yarn on YarnSub

YarnSub lets you find substitutes for yarns you can't get hold of.

Explore >