Skills

The Weekly Feast – Cheshire Pie from 1747

I went to the Fort last weekend and I made an amazing pie. Cheshire Pie is one of the recipes shared by Hannah Glasse in her cookbook The Art of Cookery Made Plain and Easy. The original recipe:

 

As you can see, it’s fairly sparse with its directions, which is a common theme among recipes prior to the early 1900s. One of the things I do is “redact” or recreate recipes from earlier times. I do this using my own skills as a cook, and it pleases me to no end when I find a great combination. This is one of those times, though I  can’t take the credit. I went to the class to learn how to make a good pie crust (and succeeded: that’s my actual pie in the header image), and learned the recipe along the way.

For the pastry, I don’t have an exact recipe. I was taught to measure by feel, because your crust turns out much nicer. As this was my first successful crust, I have to say I agree it works. 😉 Basically, you can either purchase a pie shell (you’ll need a top and bottom), or you can use your own recipe. Or you can try this one, which I’ll describe as best I can.

First, take about 3 cups of good flour. We used a mix of all purpose, white, and bread flour (and no, I didn’t get ratios, so I’ll have to try it on my own), and put it into a large bowl. A pinch of baking powder was added in, and then we added “a bit” of Crisco vegetable shortening (you can also use butter or lard, but I’ve never had success with either and had GREAT success with Crisco, so I’m sticking to it), about a cup or so. Just plop it into the flour. Then, slowly use your fingers to rub the flour and fat together. You don’t want to handle the fat too much or it will melt, so you kind of scoop up a handful of shortening and flour and then rub gently but briskly between your thumb and across all your other fingers. It helps if you keep your elbows tight to your body while doing this. You continue doing this until all the fat is mixed in evenly to the flour. It will start to make little “peas” or look like coarse cornmeal. Add a bit more Crisco and keep doing it until the bits of dough are about pea sized. It took me about 20 minutes to do this by hand. At home, I think I’ll use my pastry cutter to do the early part, and just switch to hand mixing at the very end, which should cut the time down quite a bit. Two knives may also work, but I’d say that handling it at the end is important.

Read More

Would It Hurt To Document The Device You Sent Me?

I am actually good at this computer stuff. It is what I do. So I get frustrated when I order hardware and it doesn’t work.

A month ago, I ordered a Mini-ITX board. It was cheap, and it wasn’t 17×17 cm, it was 17x19cm. Which didn’t fit in the case. The low profile CPU cooler/fan I ordered was too tall, so I needed to get a shorter unit. It just wasn’t worth the fight.

I ordered a new Mini-ITX board. This was supposed to be the right size. Not only was it the wrong size, it only had 3 SATA ports, not the 4 on the board I ordered.

That was taken care of with still another motherboard purchase. This time all was good. And amazingly, I didn’t have to wait 2 weeks for the board to get here from China.

Everything is installed, I install the PCI SFP+ NIC, it won’t power up. I don’t know if the card is bad but I replaced the card and that machine is now in production.

Switches are the next big issue. I gave up trying to find a cheap switch, I ordered a new switch, the same as the last I purchased. It should just work.

This switch is an 8 port SFP+ unit, similar to the one in the featured image. It is powered by a 12v DC wall wart.

What arrived was a plastic box with 8 RJ45 connectors. Similar switches can be found on Amazon for under $8. To make it pass the Amazon inspectors, they threw in a free USB-A to USB-C connector. That was returned and a refund was issued.

So I ordered another L3 switch. It arrived in short order. When I powered it up, the power light came on. Then the SYS light started blinking.

Read the manual. Green blinken SYS light means the unit is starting up. Figure that it might be that the unit isn’t fully configured. No problem, I connected it to the network.

Still the blinken light. I scan the network where the device is supposed to be. No response.

Well, the instructions don’t mention the “console” port on the unit (missing from the image because they used the wrong image on the Amazon listing). I ordered a generic console cable to watch the boot sequence, maybe I can spot what went wrong.

What went wrong? Nothing.

The unit is working exactly as it should. I’ve configured it, ready to go into production. The documentation is wrong about what the green blinken light means.

Frustration with hardware, yet this time it is working correctly.

Once this device is in place, every machine, but one, will have at least on 10Gbit fiber link to the main back plain network. Every machine will have a connection to the management network.

As a side effect, it means that each data closet will have at least two fibers into the closet for redundant backup links.

Oh, this also means I can consider using bonded links to get 20G bit transfer rates. That will be cool.

Prepping – Surviving in the Cold

I had the joy of staying at the Fort last weekend. Originally, the temperatures were supposed to be in the high 40s at night, and the 60s during the day. Perfect Fort weather! That didn’t turn out to be correct (go figure…). It was below freezing overnight Friday night into Saturday morning, and Saturday night into Sunday morning it was 33*F. Saturday was above freezing but very wet and raw. Sunday wasn’t bad, being in the mid 50s and overcast, but dry.

Staying at the Fort always gives me an appreciation for what our ancestors lived through. In one weekend (with albeit “white man fires” going full blast), we went through an entire bin of wood. Some of that was for cooking, because we ran into our usually spring thaw challenges with warming up the fireplaces. Some of it was because my cabin-mates were cold at night. The first was a necessary issue, but the second just left me flabbergasted. Regardless, if we went through that much wood in a weekend, how much wood would the entire fort community have gone through in an average month? It’s no wonder that the entirety of NH was essentially deforested during that period!

Here’s the deal: the Fort is made of logs and flagstones and local stone and brick, in a rather haphazard way. In the 1700s, that fire would never have gone out. Ever. During the night it would have been banked, and during the day they’d have been cooking over it. It’s much easier to keep a fire going than to get one started, and that’s exactly what they would have done. When we leave the Fort in November, and it doesn’t get opened up again until March, it’s been sitting almost five months with no fire. Over that time, the damp and cold get into the stones in a way that would never have happened historically. It takes at least two days of heavy fire burning to bring the entire hearth and wood oven up to heat, so that cooking can be done. This was something our ancestors would never have had to concern themselves with.

No matter how you look at it, when we arrive, it’s going to be COLD at the Fort, and we’re going to have to work hard to change that.

This is what I do when I’m going on an overnight trip to the Fort (or anywhere, quite honestly):

  • check the temperature for the time I’ll be there at least a week in advance
  • keep checking the temperature to catch any trends up or down as the week progresses
  • check the projected temperatures for my trip the day I’m leaving, and make appropriate choices for sleeping and clothing
  • pack extra warm stuff, just in case

Read More

The Weekly Feast – The 80s Want Their Spinach Dip Back

For whatever reason, every party I ever went to in the 1980s included at least one version of this dip, served in a bread bowl. I’m not sure why we stopped making it, because it’s iconic comfort food, tasty and with a healthy kick to it from the spinach. Therefore, I shall share it with you, dear readers. Because it’s yummy. 

Ingredients:

  • 10 oz frozen chopped spinach (cooked, cooled and squeezed dry)
  • 16 oz sour cream
  • 1 cup mayonnaise
  • 1 package Knorr ® Vegetable recipe mix
  • 8 oz water chestnuts, drained and chopped (optional)
  • 3 green onions, chopped (optional)

Combine all ingredients in a bowl and mix. Chill the spinach dip for about 2 hours.

In a good size round of bread with a chewy crust (in other words, one that won’t fall apart being used as a bowl), cut a circle out of the top. Using a knife or your fingers, pull out bits of bread to make the round into a bowl. Add the chilled spinach dip to your bread bowl.

Serve this classic spinach dip with the bread that you pulled out of your bread bowl, and a stack of fresh vegetables as well. Make a double batch, because you will need to refill the bowl before the night is over.

Notes:

You can make this vegetarian or vegan! Replace the sour cream with 16 oz of cashew yogurt. Replace the mayo with Nayonaise or another vegan mayo. That’s all you need to do! Another alternative is to use a cashew cream cheese in place of the mayo, for a thicker dip. Be prepared to thin it out with a bit of oat milk if it’s too thick.

Prepping – Annuals and Perennials

There are two main types of plants in the world: annuals, which you plant from seed (or cutting or slips or whatever) each year, and perennials, which come back every year.

Some examples of annuals are cucumbers, lettuce, potatoes, peppers, and zucchini. Each year, you need to plant new plants. Each year, they complete their life cycle entirely in the span of one season. You get seeds (or slips or cuttings or whatever) from them to plant again next year.

Some examples of common perennials are asparagus, rhubarb, many kitchen herbs (sage, thyme, and chives in particular), horseradish, and strangely enough, tomatoes. With all but the tomatoes, you plant them once and then harvest each year after they’re established. Tomatoes are technically perennials, in that they can be kept from year to year if you’re in a warm enough climate. Up here in the north where I am, we treat them as annuals, but if you have a hot house or you live in a warm area, you can keep them alive and producing without having to replant each year.

Annuals are important. They’re here for a brief season, they grow, and we harvest them. The majority of vegetables we eat are annuals. You can pick up pre-sprouted annuals like cucumbers and peppers at your local feed store each spring. For those of us with a yen for gardening, going to Agway is a dangerous thing right now. Somehow, these plants always end up in my dang trunk… You can also pick up seeds, both for indoor seeding and for planting right outside in your garden beds.

Perennials, though, are even more important (in my opinion, of course). With perennials, you plant once, harvest for years. As I get older, I look for more and more perennials so that I have less work to do in the garden each summer! An asparagus bed will keep giving for 20 to 40 years, with nothing more than an occasional fertilizing and weeding. Rhubarb, too, doesn’t require a lot. You do have to “split” it up into bits every five to eight years, to keep it healthy and growing, but that’s not too arduous. Some of my herbs have been in my garden for more than a decade, and are coming along very well. I recently had to get medieval on my oregano, because it was escaping its enclosure and getting into the lawn. While that smells nice during mowing time, it’s a waste.

Read More

The Weekly Feast – Turkish Yogurt Bread

I discovered this recipe by watching an older Turkish couple in Azerbaijan on YouTube. They don’t share amounts, but the woman cooks on screen, and I made educated guesses about how much of everything to put in. She uses this recipe both to make these flat breads, and as a crust for meat pies. I’ve done both. This is my take on her recipe.

Ingredients:

  • 2 cups all purpose flour, sifted
  • 1/4 cup water, luke warm
  • 3 tbsp melted butter
  • 1/2 cup plain yogurt
  • 1 tsp active dry yeast
  • 3 tsp sugar
  • 1 tsp salt
  • 1 tbsp olive oil
  • egg wash
  • sesame seeds

Garnish:

  • 1/4 cup olive oil extra virgin
  • 1 tbsp garlic paste
  • 1/3 cup Italian parsley, finely chopped

Whisk sugar, yeast and water in a medium-large size mixing bowl. Let it sit for 15 till the mixture froths and bubbles.

Add flour, butter, yogurt, and salt. Knead together using a wooden spoon or the bread hook of a stand mixer. When the dough starts to come together, drizzle in the olive oil, and continue kneading until the dough is combined with the oil and has come away from the sides. This will be a shaggy dough, rather than a soft and smooth one.

Pick up the dough and gently form into a ball shape. Rub some olive oil on the inside walls of the mixing bowl. Gently place the dough back into the the mixing bowl (do not knead anymore) and cover it with plastic wrap and towel or a lid. Place the the bowl in a warm place to rest for an hour or until it doubles in size.

Flour your working surface, and place the dough onto it. Divide it into several evenly sized pieces (two pieces for pie “crust” or four to six pieces for flatbreads), and make them into balls. Be very gentle, as you want all the little air pockets to stay inside the dough. Sprinkle each ball with dry flour lightly, and then cover them with plastic wrap or a moist, warm towel to keep the dough moist. Let them rest for 10 minutes before moving on to the next step.

For pie crust, take each ball and gently pat it down with your hands to flatten it. If you need, you can use a rolling pin to even it out into a circle. Add your filling in the center, and then lift up the sides and begin to pinch the edge together to make a side for your “pie.” This will be open topped, with a pretty crimp along the edge, sort of like the top of a fancy Asian dumpling. Don’t worry if it doesn’t look good. It will taste divine. Skip to the baking part below.

For flatbreads, pat each ball down with your hands to flatten it. You can use a rolling pin to make it even and either circular or oval, your choice. Leave the rest of the dough under the plastic towel while you work on each flatbread, so that the dough doesn’t dry out.

Preheat a cast iron pan or griddle on your stovetop, at medium heat. Place the flattened dough onto the heated pan for about 10 seconds, then flip it over. Cook the other side for about 20 seconds, then flip back to the original side for another 5 seconds. Flip one last time for 5 more seconds, and then set it aside.

Repeat the above pan frying for each of your dough balls. Let the bread cool for about 10 minutes, and then check to see if it’s properly cooked inside. If it isn’t, you can put it back onto the stove for a few more seconds.

Mix together the garnish ingredients above, and brush them over the still-warm flatbreads, and serve as soon as you can.

If you’re baking pies, preheat your oven to 375°F. While it’s preheating, glaze your pie dough with an egg wash (whisk an egg with a little water or olive oil and brush it gently over the exposed dough) or melted butter or warmed olive oil. Sprinkle with sesame seeds, if you like. Bake for 30 to 45 minutes, checking frequently after the 25 minute mark.

Notes:
When I use this as a pie crust, I use a finely minced meat, and all the other ingredients are also finely minced. This ensures the filling will cook properly by the time the crust is baked.

You don’t have to make big pie crusts. Most people like to have a pie to split, but if you want to make individual ones, flatten them out to a little larger than hand size, and then follow the recipe. This is a great recipe to play with!

HTML code close up

Document Object Model

A modern website is a complex system of inter related pieces. Each of which must work correctly and communicate correctly with the other parts of the system.

As website creators, we break the design into the Frontend and the Backend. The front end is anything the end user sees, while the back end is responsible for generating content to be displayed.

The backend is further subdivided into the Model, Controller, and View. The model is our term for the database and database access. The controller is the rules for the website. The view is the creation of content to be displayed.

Consider a website that allows you to purchase an item. The “model” would describe that item. SKU, size, weight, cost, price, images, description, name, and much more. The “controller” encodes the business rules. We can only ship to people that have paid us. And the view turns all the information into content for a browser to display.

The content is delivered as HTML. We can also supply JavaScript code and Cascading Style Sheets. The HTML can have the JavaScript and CSS embedded in the HTML or the HTML can link to other resources to be included with this page.

HyperText Markup Language

The US government wanted a standardized way of creating electronic documents for printing. This was the Standard Generalized Markup Language, ISO8879.

SGML has the advantage of being very application-specific. If you are writing a book, you use one set of tags, if you are creating the Message Of The Day, you use a different set of tags.

The power of markup is that you describe what you are marking up, rather than formatting whatever it might be.

Consider and address. Bilbo Baggins, 999 Bagshot Row, Hobbiton, The Shire. As written in this sentence, it is just a row of text. You could write it that way on a letter and it would be delivered, but the postman would be unhappy at the formatting

<b>Bilbo Baggins</b><br/>
999 Bagshot row<br/>
Hobbiton, The Shire<br/>

Is the address formatted, which looks like

Bilbo Baggins
999 Bagshot row
Hobbiton, The Shire

Using DocBook, a particular version of SGML, we would write that same address something like:

<address><surname>Baggins</surname><givenname>Bilbo</givenname>
<street>99 Bagshot row</street>
<city>Hobbiton</city><state>The Shire</state>
</address>

We do not know how to display the address, but we know that it is an address. If we are provided rules on how to display addresses, we can display this address per the rules.

Structure

HTML was designed to be simpler than SGML. There are fewer tags, and the fixed meaning of the tags made it easy to write HTML by hand.

Almost every post I create is written in raw HTML. That HTML is then styled and displayed in nearly pretty ways.

HTML defined the structure of the document. The structure was of a header section, describing the page, and a body section with the actual content.

Within the content section were the different displayable content. You had headers, levels 1 through 5, you had numbered lists, unnumbed lists, and definition lists (a word with an attached definition). There were paragraphs, links, tables, and finally, there were images.

This content was rendered however the browser wanted to.

There were formatting tags for bold, italics, blinking, and not much more.

If you wanted to “layout” your webpage, you used tables and fought to get things right.

Cascading Style Sheets

CSS allowed us to provide styling to an element. The paragraph above has margins, padding, and boarders applied to it. It has colors applied for the background and for the font. All are set via a style sheet. Your browser has a default style for each element.

The problem that arises is how to attach that styling to particular elements. The answer starts with the structure of the document.

p {
  color: red;
  background-color: green;
  margin-left: 50px;
  border: 2px;
}

This uses a CSS selector, ‘p’ to locate all paragraph elements. It then sets the background to green, the font to red, moves it to the right 50px, then draws a 2px solid border around the paragraph.

This is a basic selector. Selectors get very complex.

DOM

Every element in an HTML document is loaded into the DOM. From there, we can select elements and modify the style of the element with CSS and CSS Selectors.

The simplest method is to give important elements an ID. IDs are unique for a DOM. If there is more than one element with the same ID, this will generate an error, which most people will never see. The rules tell us which element will own that identifier.

To find a particular element with a particular ID you use the ‘#’ symbol. Thus, to find the header just above, we would write “#DOM”. While the header would look like <h3 id=”DOM”>DOM</h3>.

We can add a multiuse identifier, called a class, to multiple elements at the same time. <div class=”quote”> is the code I use to create a quote. The class “quote” has a CSS group attached. This causes all the divs of class quote to be rendered as a block quote.

We then have the tag selector. We used one above with the “p” element. This allows us to select all the elements of a particular type. The selector “li” would select all the list items in the DOM. We could use this to make every line italic.

We can combine selectors to limit which elements are selected. “ul>li” would select all line items of unordered(without numbers) list, while “ol>li” would select all line items which were part of an ordered (with numbers) list.

These selectors can even allow us to move through the DOM in a structured way. We can ask for the first paragraph after a header for special treatment.

DOM Manipulation

When we load JavaScript on a web page, that JavaScript can watch for events on elements. This is done by locating an element with a selector, then watching for a particular event to take place on that element.

The JavaScript can then modify the DOM. This can be by changing the structure of the DOM, or it can be modifying the style of elements in the DOM.

A recent example of this, I added a class to some table data items (td). I did it with a class. I then found all the elements with that class and watched for a mouse click on those elements.

When the click was detected, my JavaScript ran. The JavaScript grabbed the contents of the element, stripped out formatting, then put that content into a text input box, displayed the text input box for the user to edit.

When the user completed their edit, the value they entered was formatted, the input was removed from the DOM. The formatted value was then placed back in the element.

All with a bit of good selection to make it work.

Finally, Selenium uses different types of selectors to find elements for manipulation or testing.

Very powerful stuff.

Quality Assurance and Document Control with Checklist Icons. Businessman mark off items on digital checklist, representing quality assurance and document control processes, verification and compliance

Unit testing

This is boring geek babble.

Quality Assurance is not something computer nerds are good at. It is boring, repetitive, and difficult.

That doesn’t mean it shouldn’t be done. Instead, it means that you need somebody to do QA for you. You cannot do QA on your own. You won’t see your own errors.

Consider a simple unit test. You have just created a new model (database table). You know you have created it correctly. Some of that is because you trust the infrastructure you are using, but mostly it is because it has worked in the past.

To do a proper unit test, you would need to verify that you can read and write an object of that model. That each functional manipulation does what is should, and that all possible options into the functional unit works.

In the past, I would test student programs that did simple math. For example, they would write a simple four function calculator. I’m the ass that would get their calculator to attempt to divide by zero. They had to handle that case.

The thing that happens, is that as we are developing new code, we test that code, extensively. We know what we are adding and what it should do. We don’t “retest” what we know is already tested and working.

Last Tuesday, that nearly broke me. I had tested my code, was getting ready to deploy the code. Before deploying, I was doing some testing. It wasn’t until I clicked on a link that went to a page I was not going to be testing that I discovered a major error.

I wasn’t even planning on looking at that page.

Here is another example, you have a standardized header for your website. If you check it on one page, why should you test the header on every page? It should work the same. So you don’t test it on every page. Except that there is one page that doesn’t set a context variable, so it causes errors on the page. Because you didn’t test that particular page, the error is missed.

This is where unit tests are a win. In theory, you write a test for every part.

Currently, I’m working with Selinium, This is an API that interfaces to an actual browser. This allows you to control the browser via code.

The basics are you write code to find a page element, you can then verify different aspects of the page.

I’m currently writing code to test the left column. The left-hand column is on almost every page of the website. In the past, I’ve verified the parts of that column I’ve been working on. I haven’t verified the entire column since I first created the site.

Using Selenium, I am able to run the same set of tests against the left column on every page. I can also verify that every menu item opens and closes. I can exercise the entire website.

Because it is so easy to do this, I can just run the tests every time, giving me better results.

Of course there is a learning curve. Of course it takes a different mindset to do these tests. Regardless, it is worth it.

Prepping – Inside to Outside

We’re almost at the point in time when some of the seedlings you’ve planted should be going outside. Hardy greens like kale, cabbage, and chard will probably be able to weather the outside temperatures in the next week or two. This means there’s a lot of work to do!

The first thing you need to do is start hardening off your seedlings. This is a long but simple process that ensures your new plants will thrive once they’re in the great outdoors. Now that we’re getting a few days in the high 40s and low 50s (and sometimes warmer), you want to pick a day that’s slightly overcast and warm, with not too much wind. Take your flats or pots of seedlings and place them in a wind-free spot that isn’t in direct sunlight, and let them bask in the natural light for about an hour. Do this at the warmest point of the day, just after noon, if at all possible. Then bring them all back in. Repeat this every day, adding an hour or so a day to the time outside, until your plants have developed stronger stems and secondary leaves.

When the nights are all above freezing, you can leave your seedlings outside. Cover them up, though, because critters like raccoons and mice like to eat those yummy miniature plants. Once the plants are hardened off, you can wait for a nice, overcast day to plant your seedlings into the garden.

Before that, though, you have to prepare your garden. If you’re going to be using buckets and/or bins of any kind, they need to be readied for use. This means cleaning them out, bleaching them (to kill any bacteria that could harm your plants or transfer to them), and then rinsing them thoroughly. Drill, poke, or melt some holes into the bottom of each container. This allows excess water to drain. Some people do it in the bottom of the containers, but I find doing it about an inch above the bottom, along the sides, works best. That way, excess water can still escape, but there’s a “well” below the holes that continues to hold water for the plants on dry days.

Read More

Group Of People Writing On Sticky Notes Attached To Blackboard In Office

Project Management

Love it or hate it, project management is a thing. It has to be there. If you don’t think it is there, you are just doing it badly.

Project Managers are a different kettle of fish. Some need to be boiled alive. Others can just dance on hot rocks. And a very few can sit at the big boys’ table.

I’m coming off the end of a rush project that was big. I had to take a customized system and add tariffs to it with about 14 days from concept to deployed. More than a little to get done.

When I started programming, I had a choice of an 8080 with a 24×80 character display, or a 6502 with a 24×40 character display.

When I was introduced to JOVE, Jonathan’s Own Version of EMACS, I fell in love with it. Multiple views into the same file, the ability to copy and paste from different files or different places in the same file. And auto indentation.

Powerful stuff for the time.

My fingers worked will with vi and later vim because I played Nethack and before that, Hack. The programs had a particular key set for moving the cursor based on the key caps of a terminal type used at MIT.

The author had never seen a terminal without arrows over the J, K, H, and L keys. To give you an idea of how ingrained those are, I had to fire up vim and tell my fingers “down”, “up”, “right”, and “left” to record the keys for this sentence. My fingers know, I don’t.

Besides jove, I learned emacs. Emacs is my programming editor. It is what I use when I need to write a lot of code or text. With modern computers, it starts just as fast as jove ever did on a 68020 class CPU.

The problem we had was keeping track of what needed to be done or fixed. This might start off as a document, written with jove in troff. This could be fed to different processors to create PostScript files to be sent to our printers.

Later, some of us used LaTeX for the same thing. Your “design document” was a separate file that was “fixed” before you started coding. These documents never contained more than brief pseudocode and discussions of algorithms.

As you were coding, if you discovered something, you created a comment and marked it. The two most common marks were, XXX which meant that the code was broken in some way, but it didn’t need to be fixed now. All XXX marks had to be addressed before the code could be released.

The other mark was TODO. This was working code but needed some features or extensions added. These did not need to be fixed before release.

In general, we used grep to find all these markers in a list of files. It wasn’t difficult.

The small program I’m working with has some 250k lines of code. After 3 or 4 years of supporting this site, I would say I’ve looked at every line of code in the system.

Finding every marker in 4100 files across 1200 directories is a pain.

Enter Kanban

Kanban is a project management tool. The concept is easy enough to do with sticky notes and a white board or notes with push pins on a larger bulletin board.

Today, the normal Kanban has 4 columns to hold cards. The cards are labeled, “backlog”, “To Do”, “Doing” or “Working”, and “Done”.

When you create a card it goes into the “backlog” column. These are issues or tasks that have no resources assigned to them.

Once per week, there is a meeting of the workers and the project manager. In this meeting, the project manager evaluates the cards that are in the “Done” column. If they are truly done, then they are removed from the board and added to the QA project.

Cards that are in the working column stay in the working column. Cards that are in the working column can be moved into the backlog column if some other card blocks them.

For example, if you have a card that says, “Put new tire on left front wheel” it cannot be worked on until the card that says, “Purchase a new tire for the front left wheel.” Until the purchase card is completed, you can’t work on the installation card.

If there are any resources (workers/developers) that think they are going to need more tasks to work on, the project manager will take cards from the backlog column and move them to the To-Do column.

When a worker requires more work, they move the card from the To-Do column to the working column. When they complete the card, they move it to the Done column.

I’ve used Kanban in the past. It never really appealed to me as it didn’t feel any different from the old ways of doing things.

For this latest project, I used my Kanban board.

Instead of putting markers in the code, I opened a new issue. That issue just went into the “backlog” column. I could tag the issue as a bug or a feature. I could indicate that cards were blocked. It was faster to create the issues/cards than to make entries into the files and then try to locate them later.

Today, I’ll be looking through anything in the QA column and writing unit or web tests for them. I’ll also be doing a QA across the site, to add to the project board.

The biggest thing for me was the ability to visual see what still needed to be done.

Conclusion

Good tools make the work go faster.