It’s the afternoon of Saturday, August 19th. I’m sitting near the back of an airplane wondering how I’m going to keep from going stir crazy on this almost 6 hour flight back to California. As the plane takes off, I’m thinking about the last week at FOSS4G 2017 and images are flashing through my brain. Ok, I think, once I can take some stuff out of my bag (neatly stowed under the seat in front of me), I’ll doodle for a while. That should keep me busy for an hour or so. 5 hours later, I’ve almost finished this whole page and it’s just about time to land.
What struck me at the conference was how important the giving and sharing culture of our community is. The news from Charlottesville and the US President’s response seemed impossible. I caught up with people I hadn’t seen in a year, met people in person that I’d only known on Twitter, and found potential collaborators for a pet project that needs more people. I also found inspiration in many of the talks and came home wanting to get started on a thousand new things (except that this cold someone shared with me is preventing me from getting too much done yet). The best experience though was when I got to share my skills with the community. I taught a workshop (at Harvard!!!) to 20 incredibly skilled people and gave a talk to about 80 – both about cartography. I hope that what I shared will help them with some aspect of their work.
While I think it’s clear to everyone how the coders contribute, I think we need to do a better job acknowledging the contributions of users. After hearing a few presenters say they didn’t feel like they belonged because they were “just users”, I started speaking up during the question time telling the speaker how important their role in the community is. Making every member of our community feel welcome and values is key to our continued success.
We also need to do a better job with diversity. The breakdown of attendees neatly avoided discussing race and gender. A look around the room, probably told you everything you needed to know about those topics though. How do we fix it? I’m not sure, but if we keep the discussion going rather than igoring it, we’ll find the solution faster.
So, thank you to everyone who made FOSS4G 2017 possible
My art process:
(pencil: Mirado Black Warrior HB 2) sketch in an image
(pen: Pilot Rolling Ball Precise V7 fine or Pentel Sign Pen ST150 felt tip) ink in the sketch
(pen: Pentel Sign Pen SES15N brush tip) fill in the spaces between the images
Recently I started a new job and with each new job comes a new work space and new equipment. At my new (to me… 1960s standard university issues Steelcase) desk, I’ve got a sleek new laptop and a heap of cords plugged into a hub that they tell me is called a docking station, which just looks like a heap of cords to me. It not only looks cluttered, it’s taking up space. So here’s my solution…
1. Get yourself a serving tray. Make sure you like the look of the sides and bottom because you’re going to turn it over. Also, make sure there are handle holes and that the whole edge of the tray is even. Some have handles that stick up and you’re not going to want that. Finally, make sure it’s deep enough to accommodate the height of your cord mess (I mean docking station). Mine’s less than an inch tall, so this 2 inch deep tray is great.
2. Stick your “docking station” (or cord mess) in the middle of that tray and run the wires out of the holes. I’ve got the mouse and keyboard cords running into the hub from the handle that’s near the center of the desk and the power cords through the handle on the edge of the desk. The cords that plug into each side of the laptop come out on their respective sides.
3. Now, turn that tray over and hide that mess underneath the tray. So much better. Now I only see small lengths of cords and the computer can sit over the cord jumble.
Ok, I need to bring more decorations, but now I can put a potted plant on the corner of the tray with the computer and it won’t be in the way.
I finally finished this next block in my Charley Harper needle turn quilt. This one took a long time – about 4 months – to finish. Not only are there a lot of details to sew on, like lots of leaves with embroidery and about 50 sunflower seeds, I was working on this one in the fall months. Fall’s generally a pretty busy time of year with holidays and then there’s those colds that get passed around and I was in the process of changing jobs, so this block took a back seat to everything. This one marks the halfway point in terms of the number of blocks, but in terms of area, I’m more than half way because I’ve finished two of the biggest blocks.
As I’m working, I’m constantly reminding myself that the goal of this project is not exact replication of the original art but to capture it’s essence, it’s playful, delightful shapes. I had to let go of a lot of details. If you compare this block to the original work by Charley Harper, you’ll notice that I left out the holes on the leaves. I may go back at some point and add those, but really, this block has so much detail (and I find small pieces to be really difficult to applique) that I decided for now that I can leave them off. Another important lesson that I’m still learning is that precision is pretty difficult with needle turn. In spite of my best efforts, some things don’t line up the way Harper’s did. That’s ok. I’m pretty sure most people that see this quilt aren’t going to notice. I only see it because I’ve been working so close to it and having to deal with the implications of some pieces not quite lining up.
The next block in my Charley Harper quilt is my rendition of the artist’s “The Last Aphid” which features four ladybugs staring down an aphid that they’ve cornered between them. This block was a challenge because of the symmetry. Everything has to be lined up or it looks wrong (accepting some error of course because it’s applique and it’s never going to be perfect).
Like the other blocks and quilt plan, I used Inkscape to design the pattern.
One tool that has helped me immensely through this block and the last was masking tape. Yup. Good ol’ masking tape. It’s not to hold anything down, but rather to lift something up, namely cat hair. My guy cat loves to get in the middle of anything I’m doing (case-in-point he’s currently sitting next to me and pushing the arrow keys as I try to type) and he’s a real big shedder. I guess I should be glad he’s a short-hair. Aside from just not looking that great, cat hair is a problem because it gets into the thread as I sew and causes it to snarl up into a knot more than it normally would. To get rid of the cat hair, I stick the masking tape down on the fabric and pull it off; the cat hair comes with it. It’s pretty much a cheap version of a lint roller.
What is the deal with the data type “Factor” in R? It has a purpose and I know that a number of packages use this format, however, I often find that (1) my data somehow ends up in the format and (2) it’s not what I want.
My goal for this post: to write down what I’ve learned (this time, again!) before I forget and have to learn it all over again next time (just like all the other times). If you found this, I hope it’s helpful and that you came here before you started tearing your hair out, yelling at the computer, or banging your head on the desk.
So here we go. Add your ways to deal with factors in the comments and I’ll update the page as needed.
Avoid Creating Factors
Number 1 best way to deal with factors (when you don’t need them) is to not create them in the first place! When you import a csv or other similar data, use the option stringsAsFactors = FALSE (or similar… read the docs for find the options for the command you’re using) to make sure your string data isn’t converted automatically to a factor. R will sometimes also convert what seems to clearly be numerical data to a factor as well, so even if you only have numbers, you may still need this option.
MyData<-read.csv(file="SomeData.csv", header=TRUE, stringsAsFactors = FALSE)
Ok, but what if creating a factor is unavoidable? You can convert it. It’s not intuitive so I keep forgetting. Wrap your factor in an as.character() to just get the data. It’s now in string format, so if you need numbers, wrap all of that in as.numeric().
#Convert from a factor to a list
#Convert from a factor to numerical data
Do you have any other tricks to working with data that ends up as a Factor? Let me know in the comments!
Inkscape is a vector illustration program so most people think of it as an art program for producing slick graphics. But it’s a really useful tool for planning an preparing for other art forms. For example, I’ve been using it for sewing. What? Yes, sewing. It’s incredibly useful for drawing patterns. Recently I’ve been working on a needle turn applique quilt based on the work of Charley Harper, but for the past few years I’ve made felt Christmas ornaments for friends and family, for all of which I used Inkscape to draw the patterns.
If you’re familiar with Inkscape already, making applique patterns will be pretty straight forward. If you’re new to the program, I highly recommend working through a couple of tutorials. Here’s my general workflow (yours may differ):
- Start with an image. On Pinterest, great projects abound, but sometimes the post links to costly instructions, or no pattern at all. I’ve also found things that I like the look of, but are a different scale – too big or too small. Or, as with my latest project, I’m creating my own pattern pieces from an image. Look for images with distinct polygons of colors. Blended or faded areas are going to be harder to duplicate with applique unless you can find fabric with the right fade or you dye your own.
- Put the image into an Inkscape file and resize it to the size you want your final project to be.
- Draw polygons around each of the colors you see in your image. You’ll want to think about how you’ll put the whole thing together as you trace, so think about how the layers will work together. For example, if you have polka-dots, you’ll want to place the circles on top of a larger background color, not have a section of background color with holes cut out like Swiss cheese.
Start by tracing out all of the sections you’ll need to cut from various colors of fabric.
- Start a new Inkscape file and make the size of the page whatever size you plan to print. For those in the US, you’ll probably want US Letter Size.
- Copy your polygons from the first file and past them into the second. (I find keeping both files is helpful later for placement of the pieces.) Arrange all your polygons on the page so that none overlap. For larger projects, I’ve made several files. If the same shape shows up multiple times in your pattern, for example maybe eyes or ears, you only need to include that shape once.
One of 3 pages of pattern pieces for a larger work with many pieces.
- On each piece, I like to print the color of the fabric I plan to use and how many of this piece I need to cut out.
- If you have a really big pattern piece that’s bigger than your printable page size, there’s a solution. Put the big pieces into one Inkscape file, then size the page to the content, giving it a reasonable margin for your printer. Then save the file as a PDF. Open the PDF and in the print options, pick Poster (or similar setting). It will divide up the pattern into printable pages. Then you can tape the pages together before you cut out the pattern.
My printer settings have an option to print large PDFs in pieces. Yours probably has something similar. Super useful for printing larger pattern pieces.
Bonus! Now when you’re placing your pieces, some stuff you can just eyeball and it will be fine. In some situations though you might need to be more precise. Because you have your original pattern tracing in Inkscape, you can go back to that file and measure the distance between items. I set my units to inches and draw a line, then see how long my line is. Super simple, but very effective.
The red line measures how long the vertical eye whisker is.
See the finished piece on a previous blog post.
This second block in my Charley Harper Quilt is inspired by the piece Limp on a Limb. If you compare the original and the block, you’ll see that I’ve made some edits. Most notably, I have decided (for now at least) to not include the leaf pattern in the background. Repeated shapes are a hallmark of Harper’s work, so including the pattern would be more true to the work, but in reality, it would require extensive embroidery and I’m afraid that won’t hold up long-term, especially given the light weight of the fabric I’ve chosen for the background. That being said, the fabric I chose is mottled green and I hope it at least gives the piece some more depth.
Example diagram from placing the cat’s eye wiskers.
For this block, I thought I would show some of the detail of how I transfer lines from the pattern to the piece. All my patterns are digital svg files, which means I can measure the size of each object in Inkscape. (I promise to write a post about this with more detail and hopefully convert some quilters to Inkscape quilt designers… but later. Ok, it’s later. See the post here
.) I make measurements from a reference point, draw out a diagram, then transfer the measurements to the fabric using a chalk pencil (either white or blue depending on the color of the fabric). Then I embroider. It’s important to mark as little as possible on the fabric with the calk pencils, because the marks are hard to get out.
Faint chalk pencil marks show where to embroider the eye whiskers.
When placing any object in a piece, whether it’s embroidery or a layer of fabric, I’ve found that it’s important to figure out what feature the new object needs to be inline with. For placing the eye whiskers, at first I was going to reference the corner of the eye. It seemed logical. Then I found that in the original piece, the left eye and whiskers don’t line up. What? But there’s always such precision in Harper’s work! But after some staring at the piece, I realized that the vertical line of both sets of eye whiskers intersects the point where the ear meets the head. Bingo! Now my whiskers are in the right spot.
The finished piece.