Monday, December 30, 2013

Microsoft Dynamics CRM: Correcting Multiple Default Public Views

I'm not sure how this happened. It's probably a side effect caused by importing a 2011 solution into 2013. For whatever reason, I have multiple default public views for the same entity.


To fix this, follow these steps.

Step 1: Create a new view called something like "TEST". You'll be deleting it later so it doesn't really make any difference what you call it. Just call it something obviously superfluous.



Step 2: Select the "TEST" view and make it the default public view. One of the duplicate "Default Public View" settings will revert back to "Public View". At this point you'll still have two "Default Public View" views. Wait, it'll get better.

Step 3: Double click the "TEST" view to open it. Now delete it. Don't bother trying the shortcut to delete it from the list view, it doesn't work. For some reason deleting it from the view edit window works.


Step 4: Now you have a view list with only one "Default Public View". Check to make sure it's the correct one. If not, select the correct view and set it as the default.


This beats having to edit the XML as suggested here. If this doesn't work, you can try to follow these instructions. I wasn't required to save the solution between steps to get it to work.

Monday, October 14, 2013

Kilts and Such: Balmoral Bonnet #2

Note: This is actually a pretty old blog post. I'm on bonnet #6 now with a diced border. For some reason, Blogger goofed up this post and I had to delete and recreate it from scratch.

Balmoral bonnet #2 is finished. The yarn is Cascade 220. By far, Cascade 220 is the best yarn I've worked with. I understand why Anne recommends it in the Classic Highlander's Balmoral Bonnet pattern.

As with bonnet #1, the cockade design is from "So You're Going To Wear The Kilt" by J.Charles Thompson.

I used petersham cotton/rayon ribbon from Judith M Millinery Supply House for the head band and tails. Much softer look and feel. I really like it.

I used the medium size pattern instead of the large. My head is right on edge between the medium and large patterns. Unfortunately, felting the head band to the correct size resulted in a too small top. The slouch wasn't large enough.

Correcting this was fairly easy, just wet the bonnet and stretch it out.

Had to frog bonnet #3. The inexpensive black yarn proved to be very fuzzy after felting. It was also difficult to knit with. Maybe I can use it as a pouch or felted bowl?

The bonnet #4 is dark blue again in Cascade 220. I am extending the middle knit even rounds section from 4" to 5" or maybe half an inch more to add to the slouch width.

Before fulling/felting
After fulling/felting
After stretching the top to fit


Head band and ribbon

Cockade



Saturday, June 29, 2013

Kilts and Such: Knitting a Balmoral Bonnet

By SMcCandlish (Own work)
http://www.gnu.org/copyleft/fdl.html
I'm slowly building my kilt accessories both for casual wear as well as the Renaissance festival. One of the items I would like to add is a bonnet. From the several options available, I really like the look of a Balmoral bonnet.

If you google it, you'll find many places to purchase one. However, they are not inexpensive. I'm sure they are worth every penny, but I'm trying to keep within my budget which includes attending festivals.

My wife knits, and I casually mentioned my desire for a bonnet. To which she said, "Um...." To be fair, she has many knitting projects going on, several for other people, and I don't really want to ask her to take on another project. Besides, it's something I'm interested in, and the Saline Celtic festival is in a few weeks...

Learning to Knit
I decided to learn to knit. Stacey helped me look for a pattern, provided links to online training videos and resources, and best of all - she took time to show me the ropes (or yarn). This is significant since I'm the poster child for a difficult student. We both survived :-)

I started with a worsted weight yarn since this will be used for the balmoral pattern. Casted on using the long tail method, and practiced working flat with knit and purl stitches. I then made a simple toque using circular needles that ended up way too small. My stitches were way too tight and the gauge was at least 30% smaller than needed. As she feared, I was "man handling" the yarn. A second attempt produced a better toque, that was still 20% off but it was wearable.

Balmoral Bonnet Pattern
The Classic Highlander's Balmoral Bonnet pattern by Anne Carroll Gilmour was suggested by several members of X Marks The Scot forum.

Translating Knit-ish into English has been challenging. Once I approached it as if it were a computer programming language and graphed out as a series of nodes with decision paths and repetitive loops, it started to make sense.

After several false starts, I just finished the band and have started to increase the number of stitches to shape the bottom of the balmoral.

I'll post more as I complete it.

Finished Balmoral Bonnet #1
I used Lion Brand Yarn Fisherman's Wool. It's a very nice inexpensive yarn. My daughter picked out the ribbon colors.

The cockade design is from "So You're Going To Wear The Kilt" by J.Charles Thompson.

I have bonnet #2 in green (Cascade 220) felted and started knitting bonnet #3 in black. By far, I like the Cascade 220 yarn. You really do get what you pay for.  


Balmoral Bonnet #1

Traditional Bow

Cockade

Balmoral Bonnet #2




Monday, May 20, 2013

Things From My Desk: Montgomery "Scotty" Scott

Scotty encounters an over fed Tribble
Yes, it might look like a Ken doll. But it's got a phaser and knows how to use it. Er... that is if it were actually Scotty, and Star Trek were for realz, and...

I went to Motor City Comic Con last weekend. Other than the ridiculous wait to get in (1 1/2 hours with advanced tickets) and the dearth of real food or replicators, it was a lot of fun.

I've never been to a Con before. My daughter and friends wanted to go. I tossed together an Engineering shirt to go with my kilt... so I could be a Scottish engineer of course. For a quick sewing job it turned out ok.

Once her friends showed up, she was off, and I was on my own. Picked up my first Barbie doll Star Trek Action Figure and some other cool stuff. Lydia was able to get her Legend of Zelda sword - she went as Dark Link, also known as Link's Shadow.

I was asked for a photograph more often than I expected. I think the Think Geek Tribble may have had something to do with it. Or perhaps it was the kilt. We'll never know, but Tribbles do seem to attract attention.

Trills like Tribbles
The best encounter of the day was with Uhura. She's actually pretty shy. Her father asked if she could take a look at the Tribble and get a photograph.

Awesome Uhura being Awesome!

There was a lot more Star Wars than Star Trek, but it's all good!

The 501st Legion takes on an enemy of the Empire



Monday, April 15, 2013

Kilts and Such: Sporran #2

Whether to Leather
There are a lot of leather sporrans out there. Not that there's anything wrong with that. I'm not a vegetarian and I enjoy venison although I'm not a hunter. My first purchased sporran is made from leather. Aside from the PETA argument, there are many who desire non-leather sporrans, either for the look or just to wear something different.

Leather Alternatives
I started searching the Internet for different sporran construction materials and examples. There a quite a few leather hybrid sporrans with different materials to cover the front panel or the flap. These still are primarily constructed from leather. Sporran Nation has many that are made from a vegan leather called Lorica. Some of the best examples I found were of sporrans either made entirely from tweed or faced with tweed. I've seen humorous and slightly disturbing versions using un-stuffed animals or other toys. Elmo never looked so good!

Tweed
According to Wikipedia, "Tweed is a rough, unfinished woollen fabric, of a soft, open, flexible texture, resembling cheviot or homespun, but more closely woven." It's a twill that is becoming a popular alternative to tartan for kilts. Harris Tweed is, in my opinion, tweed at it's best. Someday I'd love to have a Harris Tweed jacket or three, but it's pretty expensive stuff.

Just $3.00 from the Salvation Army!
I've found an awesome alternative source for tweed - recovered material from used tweed jackets. I can usually find several in excellent shape at the Salvation Army. There's quite a bit of material to be recovered, although the pieces are not large. The sleeves and back provide the most useful material. You do need to check the label to make sure it's 100% wool. Many are a wool blend or polyester.

I haven't run into any Harris Tweed jackets yet. If I did I'd probably put it up on Ebay rather than harvest cloth from it. It'd be a shame to disassemble on.


Sporran #2
My first sporran was a simple Rob Roy style made with pleather. It was okay for my renaissance fair outfit, but isn't going to last very long. For my second sporran, I'm using duck canvas as a foundation for the inner lining, with a plastic canvas interfacing, a tweed outer lining, all sewn together with upholstery thread. The gusset will be a single layer of duck canvas.

Since this is a construction experiment, I'm going to copy the pattern from my cheap stiff leather sporran. It's provided great service for the price, but it's less than a year old and I've already had to re-stitch sections of it.

Interfacing
I traced a pattern from the cheap sporran onto stiff card, cut them out, and used them and an x-acto knife to cut out plastic canvas for the front and back panels. The back panel also includes the top flap.

Pattern and plastic canvas inner lining.
Inner Lining
As with my doublet construction, the same pattern is used to measure the black canvas inner lining adding an extra three quarters of an inch around the pattern to wrap around the plastic canvas.

Duck canvas with pattern traced in chalk. Cut 3/4 inch around markings.
Using barrettes to hold the layers together didn't work as well as with the doublet, due to the inflexibility of the plastic canvas. Later, I brushed a think layer of tacky glue onto the plastic canvas to hold the tweed in place so that it wouldn't distort. If I use this material again, I'll do the same with the duck canvas. However, I may switch to a heavy fusible interfacing.

Sewing the inner layer of duck canvas to the inner lining.
Normally, I'd sew the outer lining to the interfacing with a stitch that's hidden from view. Unfortunately, the plastic canvas doesn't lend itself to this. At least the black duck canvas hides the stitches well. Another reason to use fusible interfacing.

Outer Lining
After stitching the duck canvas, I once again attempted using barrettes on the tweed out lining. With three layers, the barrettes failed to stay closed. The tweed also proved to be so flexible, it distorted while holding it. I removed the barrettes, brushed a thin layer of tacky glue to the plastic canvas, and pressed the tweed down into the correct position. A few minutes later, it was ready to trim and sew.

Tacky Glue to the rescue!

Turn the tweed edge under facing the interfacing layer and stitch the tweed to the duck canvas along the edge. This was much easier than the duck and plastic canvas layer. Instead of the upholstery thread, I used a thinner polyester. A tight whip stitch along the edge took no time at all and is virtually invisible.

Whip stitching the tweed and canvas together.

The finished panel looks pretty good. As I said earlier, I'd rather not show any stitches at all. If I had used thick fusible interfacing or a heavy hair canvas instead of plastic canvas, I could have avoided the stitches in on the inner lining. At least the outer lining hasn't any exposed stitches.


Inner lining in duck canvas. Please ignore the stitching ;-(


Outer lining in tweed

Belt Loop
I considered several options for the belt holder on the back of the sporran. For example, sewing a pair of "D" rings to the back. Since I want to compare the performance of this sporran with my cheap leather one, I decided to construct a belt loop.

I used the same construction as the front and back panels, and attached the loop with the duck canvas facing toward the front of the sporran, assuming it would get the most wear. A double row of upholstery thread sewn through to the six layers of belt loop and back panel should hold. I found sewing through the plastic canvas a bit of a challenge. I tried to follow the curve of the belt loop and kept running into plastic. I was able to reposition the needle most of the time, but with two layers of plastic canvas, the holes sometimes just don't line up where I need them. Yet another reason to use fusible interfacing.

Belt loop attached
Gusset
I've decided to use a button and loop as a latch. I should probably sew them on before sewing the gusset to the back and front. Since my gusset is pretty wide, I'm going to wait so I can optimize their placement.

The gusset is a double layer of duck canvas, sewn together and turned inside out to hide the seam. Although I could have used the sewing machine to do this, the rest of the sporran is hand sewn so I took the time to hand sew it. Didn't take long.

To give me some room for adjustment, I left one end of the gusset unfinished. The gusset is sewn to the front panel so that it can be reversed, giving the front a smooth roll of cloth and a hidden seam. When sewn to the back panel, the gusset forms an "S" shape encouraging it to fold inward when compressed.

Sew the gusset to the outside of the panel

More sewing o' the gusset
After sewing the gusset to the front panel and reversing, I noticed that the rolled edge doesn't stay in place as well as the leather. Normally, when attaching a leather gusset, the leather is dampened to encourage it to stretch and form a nice rolled edge. Which, of course, I cannot do with the duck canvas. I thought it was going to stay once it was sewn to the back panel. I ended up stitching the top portion of the roll to the inside edge of the front panel about half inch an inch down to encourage it to stay rolled. Now would be a good time to do this.

Gusset rolled toward inside of front panel
View of rolled gusset from the front panel
Before sewing the gusset to the back panel you will want to line up the two panels so that they are parallel to each other and not rotated, then mark the top edge of the gussets to the back panel with chalk. I also pinned the gusset to the back panel to keep it from rotating while sewing. It still was off a bit and I had to make some adjustments to the top edge of the gusset to keep it from looking higher on one side relative to the other.

I think it would have been better to have found the exact bottom of the gusset relative to the front panel and started sewing it to the back from their. Using two needles and thread, progressing from the bottom toward the top edge. This would have probably helped keep the finishing position from sliding higher. At least it wasn't too far off.

Finishing the edge of gusset off


Tacking the roll to the panel to encourage it to stay rolled
Wide and deep
Closure
With such a wide gusset I was concerned with latch placement. Sporran #1, the Rob Roy style, has a loop and knot closure that is a bit annoying. To keep it closed, you have to tie the loop, otherwise it cannot be adjusted for the volume of stuff you're carrying around. I was afraid this would be an issue. If you collapse this sporran flat, the top flap extends a good two inches farther down the front panel than when fully extended.

As a compromise, I attached two buttons, one to the flap and one to the front panel just far enough that it won't get in the way when the sporran is fully collapsed. To allow for adjustment, I'll tie a cord to the top button, and loop a cord around both buttons in a figure eight pattern. The friction looks like it will be enough to hold it without a knot. I'll give it a try for a while and see how it works out. I can always change it later.

Two button with cord closure

Friday, April 12, 2013

Microsoft Dynamics CRM: Not Quite Multi-Tenancy

Multi-Tenancy or Bust
One of my challenges with the current project I'm working on is to make our solution behave for each franchise owner as if they are in a system of their own, completely separate from each other. Yet, allow the home office to easily roll-up data from each franchise, push leads and other commonly shared data to each franchise, and run scheduled and manually initiated workflows for every franchise.

By far the easiest and most effective way to keep franchise owners separate is to use a multi-tenant solution. If each franchise were in their own CRM Organization, they cannot see the other franchise data. This also lends itself to developing a common core solution, applied to all organizations, yet allow each franchise to make modifications above and beyond the core solution.

However, a multi-tenant solution complicates the home office solution. You can easily end up with disparate and incompatible solutions that are impossible to merge or roll-up.

We've decided to use the built in business unit structure in Microsoft Dynamics CRM 2011 to keep each franchise separate. Each user role has been duplicated to give the franchisees roles that limit their data access to their respective business unit. For the most part this appears to solve our problem. We can easily roll-up data to the home office root business unit level and enforce a common core solution for each franchise. Business rules can be easily deployed and enforced across the network. The rate situation where a franchisee needs to create additional entities, forms, and workflows can be handled and controlled with business unit specific modifications.

Um, now what?
We ran into a situation that, at first, looked like we weren't going to get around. In a multi-tenant environment, this would have been somewhat simpler to implement, but would have involved denormalization of the data. We have hierarchical accounts where the topmost account represents a national service provider, an NSP. The home office would like to track the business each franchise conducts with the local NSP accounts. At the same time, each franchise wants easy access to common NSP account information and contacts without maintaining their own version.

Altered Access
This sounded like a pretty simple problem, I just need to create a commonly accessible NSP account at the home office level and allow each franchise business unit read-only access to it. They can pick it as the parent for their local NSP account.

In order for the franchise business units to see the home office NSP account, I altered their security role giving them Organization level "Read" and "Append To" access to the Account entity. This wasn't quite what I wanted. Each franchise business unit now had read-only access to each other's accounts.

Let's Share
After undoing this, I changed the sharing permissions on the home office NSP account, allowing each franchise business unit "Read" and "Append" access to the account. It's not quite as easy to maintain, I'll have to write a workflow activity to automate sharing NSP accounts, but it's not bad.


... but not this much!
At first, this looked like it was going to work. However, once you select the home office NSP account as the parent account, any franchise business unit could read the local NSP account. The read permissions on the home office NSP account were applied to the franchisee's local account. Not what I was expecting at all.

It's all about Relationships
After further digging, I ran across Cascading Team Permissions in Microsoft Dynamics CRM, a blog post by    Benjamin Whitestone, a CRM Analyst at Armanino McKenna. In it, he explains how the default Parental Account to Account relationship behavior causes the user rights of the parent record to be applied to the child record. Fortunately, Microsoft allows you to customize this behavior.

Change the Type of Behavior from Parental to Configurable Cascading. Then change Assign and Reparent from Cascade All to Cascade None. This prevents selecting the home office NSP account as parent from cascading the organization level read privileges to the franchisee child account. 


Now, when the home office NSP account is selected as the parent of a franchisee's local NSP account, only the home office business unit and the owning franchise business unit can see it. On to the next challenge.

Thursday, March 14, 2013

Microsoft Dynamics CRM: Oh The Pain - Dialogs

Don't get me wrong. Microsoft Dynamics CRM is an awesome framework. But like any framework, it's a ... framework. If you're given a hammer, everything better be a nail or you're in for trouble.

I'll periodically update this post with whatever I happen to be ranting about at the moment. It's meant to be a cathartic, but not entirely.

The Process/Dialog Editor
I once had a job in the early 90's working for a company that sold bar code printers and developed data collection software. I primarily wrote payroll processing software in C that ran in conjunction with a "user friendly" application. The application was constructed using a 4GL so our clients could make changes.

4GLs R US
A 4GL is supposed to allow humans an easy and friendly way to develop code without writing code. It attempts to solve the same problem COBOL was designed for. How can we let non-geeks develop software solutions to problems without hiring expensive geeks? You usually "programmed" a solution by selecting statement types from a drop down box, and then filling in placeholders with missing values or selecting variables, constants, or operators from other drop down boxes. As long as you could stay within the bounds of the 4GL, it could actually accomplish something.

However, for a computer programmer, working in a table driven 4GL can be frustrating at best and damn near impossible most of the time.

We Cheated
The programmers unfortunate enough to work in it cheated and edited the underlying text file rather than use the 4GL editor. It did nothing about the 4GL limitations, but at least we didn't have to use the crappy editor.

Back to the Future
The MS CRM process/dialog editor makes me feel like I'm reverting back to my earlier experience and I'm not diggin' it. Not at all.

Clicking my way through a gazillion dialog boxes to write a simple expression is painfully slow. Actually, everything is painfully slow.

Substituting variables in a dynamic query is a convoluted painful dead-end process. 
Once you've done it, you cannot edit the dynamic query. The FetchXML is locked in a read-only text box that you cannot edit. All you can do is alter the value parameters or delete it and start over. So close, yet so far away.

The limited logical expression syntax forces excessive statement nesting.
There is no mechanism for re-arranging nested statements. If you need to wrap a condition statement within a condition, you cannot. Don't invest a lot of time and effort within the condition statement blocks because you're going to have to delete them and write click them all over again.

Linking to another dialog is a one way proposition.
Once you leave, the calling dialog is finished. To use a more advanced parlance, think GO TO not GO SUB. Yes, BASIC is more advanced. Sure, you can link to the same dialog. Although this is billed as a recursive dialog, it is not. True recursion would return to the calling dialog and continue execution at the point it was called, not leave and never return.

Option Sets are not query-able. 
Who designs a database system without representing look up values in a table? Hello, every heard of third normal form? You could at least provide a query wrapper around them Now I have to manage a hard coded list in two or more places.

A possible work around?
Or maybe I can add a table that parallels the option set with an automated process to keep them in sync. That didn't work. You cannot use values from a custom entity. You can't substitute an integer or text variable for the value either. At first glance, this makes sense from a referential integrity perspective. There isn't a relationship defined between the custom entity and the field using an option set. However, since the actual option set that does define the valid values for the field cannot be used, and you are forced to define your own "option set", what's the point of preventing this? Referential integrity isn't protected if I have to hard wire up the valid values.

Let's try a custom workflow activity that converts an integer into an option set value. 

It's a convoluted solution, but it worked.

This post by @devkeydet gave me the clue I needed. He wrote a simple workflow activity to convert an integer into a two option type. 


What you need to do is write, compile, and register a custom workflow activity. In the activity, you create a class that takes an int as input and outputs an OptionSetValue.


    public sealed class IntToLeadSourceCode : CodeActivity
    {
        [Input("Integer Value")]
        public InArgument<int> InputValue { get; set; }

        [Output("Option Set Value")]
        [AttributeTarget("lead", "leadsourcecode")]
        public OutArgument<OptionSetValue> OutputValue { get; set; }

        protected override void Execute(CodeActivityContext executionContext)
        {
            var integerValue = InputValue.Get<int>(executionContext);
            OutputValue.Set(executionContext, new OptionSetValue(integerValue));
        }
    }


After you compile and register the assembly in CRM, you can call the activity to convert the integer value from the selected user value from a query which is based on a custom entity that substitutes for the option set (e.g. Lead Source Code).

Now all I have to do is write a workflow activity that executes when changes are made to the custom entity so I can synchronize it with the option set. It should also be easier to maintain the option set this way.

Got it? I'll break it down into the details in a separate blog post.

Is there a way out of this mess?  
What's this? The MS CRM SDK has sample code to create, retrieve, update, and delete a dialog programmatically? Cool! Editing workflow XAML by hand isn't going to be fun, but at least I can use a text editor. If I'm feeling ambitious, I could write a DSL and compiler. Add a little intelli-sense and we'd have something akin to a modern IDE.

A moment of silence please...

According to this, creating and updating a dialog outside of MS CRM is unsupported. I'm not sure what "unsupported" actually means in this case given the sample code from the SDK. Most likely, I'm probably stuck with the "user friendly" GUI editor. Sigh...

Monday, March 4, 2013

Things From My Desk: Here be Tribbles

My wife pretends to understand my obsession with all things Star Trek. Especially, when it comes to the original series. She enjoys the next generation episodes but not TOS. However, she does occasionally supports my TOS addiction.

One of my gifts for Christmas was a pair of Tribbles from Think Geek. I was supposed to receive one tribble, but Think Geek "accidentally" shipped two. When she called them about returning the spare, they said "Merry Christmas" and told her to keep it. Then again, maybe they only shipped one?

They aren't quite as advanced as my tribble design (see my post Nerd Craft: Star Trek Tribble - Initial Plans). But, a tribble in hand is better than two... Actually, counting tribbles is rather pointless unless you are Spock.

If you bump the Think Geek tribble it screams and vibrates, but it does not purr.

Tribble!

Sunday, January 27, 2013

Renaissance Doublet/Jerkin - Part III: Buttons


This is part of a series following my progress making a doublet. 
Renaissance Doublet/Jerkin - Part I: Getting Started
Renaissance Doublet/Jerkin - Part II: Problems
Renaissance Doublet/Jerkin - Part III: Buttons


Buttoned Up
After solving the problem with the back and collar, I finally started considering my fastening options. Doublets are form fitting, so you need something that will hold up to the stress (especially with my girth.) Historically, you have hooks hidden from sight, laces, or buttons.

I've decided to use buttons. Laces would be easily adjusted and easy to make. Hooks are pretty simple, but my rough highlander outfit probably wouldn't have them. Buttons are more work than laces or hooks, but I like the look.

There are a few websites that suggest several types of buttons. The two most common are a bead covered with thread or gathered fabric. Metal buttons were expensive.

Scott Perkins's blog, Garb for Guys, has several post on making and attaching bead and fabric buttons.

Stitch demo: Handsewn Button Holes
Buttoning Up - Part One
Buttoning Up - Part Two

Marc Carlson's web site has a section called Jennifer's Stuff with Medeval stitches, basic fabric buttons, buttonholes, and attaching buttons.

Sewing Stitches Used in Medieval Clothing
Basic Fabric Buttons
Buttonholes
Attaching Buttons

After considering my options, the fabric buttons looked pretty easy to make. I made a couple of test buttons using three different diameters of circles made from the same fabric as the outer panel material. I practiced making a buttonhole with some scrap farbic.

Buttonholes
My buttonholes are a little rough, but they'll do the job. I should have practiced more. To protect the buttonholes, I used a buttonhole stitch around the slit using three strands of Six Strand Pearl Cotton Size 5 DMC Floss #938. Not knowing how much I'd need for the eleven buttonholes, I purchased ten skeins, but only needed half of them.

I used a bit of scotch tape to help mark the borders for the buttonhole stitching. Unfortunately, they turned out inconsistent and pretty sloppy. I also made a major mistake and put the slits too far away from the edge of the doublet. I re-slit the buttonholes closer to the edge, which made them to wide. After attempting to stitch the excess slit, which looked pretty ugly, I covered them with some floss. It's not pretty, but I didn't have much choice. Lesson learned.

Failed first attempt - too far from the doublet edge for my girth!
Next time I'll make a template I can fix in place to the edge of the doublet, stitch the buttonhole, and move down the edge to the next slit. I might also try using some waste canvas to help guide my stitches. My wife has used it to cross stitching on linen. I don't see why it shouldn't work for guiding buttonhole stitches.
"Rustic" buttonhole and button

Buttons
The process of making buttons is pretty interesting. You need to cut out circles of fabric roughly the diameter of a spool of thread. I had to make a couple of buttons before I had the correct diameter for my buttonholes.


From fabric circle to finished button


  1. Thread a needle with a doubled length of thread (so you end up with four strands), run a gather stitch along the edge of the disk.
  2. Pull the ends of the gather stitch thread to make a little purse. Tie off the threads.
  3. Flatten the purse to form a disk pulling on the edges to get the largest diameter possible.
  4. Re-thread your needle and gather stitch a second time along the edge of the disk. Pull the ends of the gather stitch together, keeping the purse top inside the pocket. You'll end up with something that looks like a mushroom cap. You won't be able to close the gap completely, just get it as close as you can and tie off the thread.
  5. Re-thread your needle a third time. Work around the edge of the mushroom cap, pulling the puckered edges together until you form a ball. Knot your thread and you'll have a finished button.
You'll end up with buttons that have a "tail" of threads. I left the tails on just to make it easy to keep track of the button. Remember to remove the tail before attaching the button.


Button fabric circles



Gather stitch the fabric circle

Make a purse



Flatten the purse into a disk

Gather the purse into a mushroom cap

Finished buttons with tails!

Attach the Buttons
Once you have the button made, it's time to attach them to the doublet. I lined up the buttonhole side of the doublet over the button side and used the buttonhole to mark the correct location for the button with some chalk.

Thread your needle with three strands of floss and tie the end. Run the needle through the bottom edge of the button where the edges of the mushroom cap are sewn together. Now run the needle through the doublet edge, just shy of a quarter inch from the edge. Leaving about half an inch of thread between the button and the doublet edge, run the needle back through the bottom of the button making a loop. Continue to stitch loops between the button and the doublet about six times.

Now, loop the floss around the loops of thread occasionally running the needle though the strands of the loops, until you have formed a smooth neck. This will shorten the length of the neck between the doublet edge and the button. Knot the floss next to the edge of the doublet and cut.

I'm sorry, but I didn't take any photographs of attaching the buttons to the doublet. The links above have some great photographs if you need a visual reference. 

Buttons attached to doublet edge with a "neck" of floss.

Buttoned Up!