There is a lot of confusion going around lately about naming around Open vSwitch:
OpenDaylight has some kind of interface to the Open vSwitch Database (OVSDB). The name for this interface is, apparently, just OVSDB. This leads to statements like this one:
@PariseauTT @cswolf Is VMware committed to contributing to OpenSource communities like OVSDB, OpenStack and OpenDaylight?
Of course, on the face of it, the OVSDB part of that is ludicrous: I, a VMware employee, am practically the sole contributor to OVSDB. But people go around saying this kind of thing anyway because they have named something else OVSDB.
Tilera has launched an Open vSwitch based product that they call OVS:
Tilera Launches Open Virtual Switch Solution (OVS) to Accelerate NFV and SDN
Tilera Corporation, the leader in high-performance, power-efficient computing, today announced the availability of TILE-OVS, an optimized Open vSwitch (OVS) offload solution for network functions virtualization (NFV) deployments in data center and telco networks.
I think it's awesome that so many groups and organizations are launching Open vSwitch related products. Please continue to do so! But, as a favor to me, if you launch something related to Open vSwitch, please give it a distinguishing name!
There's a discussion going on internally at VMware that irks me a bit. Donald Knuth's visit sparked an interest in literate programming. I've actually done some literate programming—GNU libavl is a literate program, as is a smaller program that I wrote as part of a course project in college—so I have some interest in joining the discussion. But the discussion is being held under the auspices of a women's programming organization. Ordinarily I wouldn't let that stop me from chiming in, but the note about it heads me off with its final sentence:
Naturally, there is nothing stopping anyone else from creating and running their own groups, so, if that works, that's great (attempt to mitigate the inevitable comments about “non-inclusion” of everyone etc. etc.).
I guess I'll just stay away.
Lejna showed me that some of the shelves I put up in the kitchen are tippy. I think that some of the holes need to be a little deeper; the pegs don't go in all the way.
We spent most of the day with our friends Cassidy and Raquel and their daughter Stella. We also dropped by an AFS event so that Lejna could pitch the exchange experience to other potential exchange students and host families.
We had our friends Brandy and Olof and their kids over for a great dinner. My favorite parts were the braided, cinnamon sugar topped bread that I made and the pineapple that I grilled. Brandy and Olof brought lots of food too; my favorite there was the mojitos.
I need to work on my grilling. The hot dogs and chicken was OK, but the lamb chops were too charred.
Donald Knuth came to VMware for a question and answer session in the afternoon today. I arrived at the large conference room about 10 minutes early and it was already above capacity, with probably 200 people in a room meant for 150. Half as a joke, I climbed up on the top of an upholstered bench to see better. When a bunch of other people followed me on up, I realized that it wasn't a joke anymore. I didn't want to feel responsible for (potentially) wrecking furniture, and I hate crowds, so I went back to my office to listen on the phone.
I'm in the middle of reading One Day at Kitty Hawk, a book about the Wright brothers' invention of the airplane. This book is like the ultimate engineers' dream. There's nothing like coming up with an entirely new theory—and having to disprove old theories as wrong—and daring to demonstrate it at great personal risk, and amazing the entire world.
Lejna told me a few days ago that the brakes on her bike rubbed, and that it was so bad going uphill that she couldn't ride it at all. I took a look at it and, after trying a few futile adjustments, discovered that the axle inside the rear wheel was broken. I've never seen an axle break like that. I decided to just fix up a different (and nicer) bike for her.
I made and installed shelves in the kitchen using the plywood I bought yesterday plus a roll of veneer edging.
Lejna and I ate dinner at Lobster Shack in Redwood City. I expected a great meal because of the reviews online and the Zagat rating. At half the price, I would have considered it a good meal. But $19 for a “lobster roll” at a place with no waiters or tablecloths seemed too much.
I picked up Lejna from the airport.
Yesterday I built a rack, out of 2x4s, for carrying 4x4 sheets of plywood on the top of the car. Today I took it over to Woodcraft and tried it out with a sheet of 3/4-inch oak. It worked great.
Lejna and I ate dinner at Red Hot Chilli Pepper in San Carlos. It is a nice place and we will probably go there again, but I would not take anyone who does not like spicy food.
I spent some time this last week implementing an optimistic concurrent cuckoo hash based on Doug Zhou et al, “Scalable, High Performance Ethernet Forwarding with CuckooSwitch” and Bin Fan et al, “MemC3: Compact and Concurrent MemCache with Dumber Caching and Smarter Hashing.” Based on my experience, I have a recommendation for anyone else who is working on the same thing. I recommend that you use breadth-first search to find a path for rearranging keys. The CuckooSwitch paper does not mention the algorithm used, but libcuckoo, by the authors of CuckooSwitch, uses breadth-first search. In my first attempt, I used a random walk algorithm instead, but this is hard to get right efficiently because a random walk often loops through the same node, which means that to actually execute the rearrangement in reverse one must keep track of all the changes already made (or prevent loops). Breadth-first search, on the other hand, always generates a shortest path, and no shortest path will contain a loop, so one does not need to make any special provisions in that case.
I drove Kate, Cassie, and Lejna to the airport for a weekend trip to Portland and Seattle. I got the house to myself for the weekend.
I spent some time studying Ashley's Book of Knots, specifically splices. I had never spliced ropes together before. From the book, I successfully practiced the short splice and eye splice with some sisal rope that I had left over from redoing cat scratchers.
Valentine's Day and Kate's birthday.
A few days ago I already gave Kate her birthday present: a weathervane that I put up on the top of the garage, where it is visible from the street, the yard, and our bedroom on the second story of the house.
A few weeks ago the city mailed out brochures about the new local bus schedule, which they call a “flexible” schedule. This week new “FLX” signs went up along the route. This reminded me what a misnomer the name is. It is not flexible: to get bus service, you have to call and request a pickup the day before.
I helped sell hot dogs and popcorn at the school book fair in the evening. We collected over $600, although I think that about half of that went to costs.
I helped at Cassie's school again this morning, even though I had not planned to. I am getting a little tired of helping out there because it is so similar every time. Every time, there is some formulaic art r craft project that I help the children to complete. The first few times I remember helping, the art project was very free-form, so that the children could do it their own ways. That was interesting, because there was a lot of variation between one child's project and the next to hold my interest. But the last several of them have been very rigidly defined, and so all there is to see is where the children didn't follow the plan well: defects, instead of creativity.
The POSIX iconv function is really subtle. I found (and fixed) a bug in GNU PSPP's usage of it that had been there for years because we hadn't tested converting away from any encodings like windows-1258 that use combining diacritics.
FedEx “tracking” is so useless. It mostly tells you useless things, like that a package left Wisconsin 5 days ago.and has not shown up anywhere since then.
I keep hearing the usual jokes about forgetting to write the new year on checks. But who is still writing all these checks? I write less than one a month.
My colleague Joe Stringer reminded me on our walk over to lunch about the Ryu controller's OpenFlow tests, so I took an hour or two in the afternoon to write and post a patch that makes it easy to run these tests against development versions of Open vSwitch. My thanks to the Ryu developers for making this easy to script, even for a person like me who knows little about Ryu or Python testing frameworks.
I finally polished up the IPv6 support patch from Arun Sharma at Calsoft and pushed it to the Open vSwitch repository. Thanks Arun!x
This was a very long day. I spent the morning at a “100 Days of School” party in Cassie's classroom, helping children string 100 Froot Loops on necklaces. I had a series of meetings the rest of the day at work. Then I hurried home to make it to a cooking class that Kate and I went to at the San Carlos Community Center from 6:30 to 8:30. We went out for drinks with some of the other students afterward.
I finally checked in major improvements to the MPLS implementation in Open vSwitch. This has been a long time in the making. Many thanks to Simon Horman, without whose patches and prodding I probably wouldn't have ever gotten around to taking care of this.
Kate and I taught Cassie how to play “Carcassonne” a few evenings ago. We've had the game out before, but only used the cards to make layouts, never to play a game with scoring. We used pretty much all the rules, only simplifying slightly by leaving out farmers. Cassie was good at it—she ended up winning—but she got pretty cranky toward the end. Kate said that she could see Cassie concentrating hard to figure out how to play.
Kate and Lejna were out all evening shopping for Lejna's dress for winter formal. Cassie and I spent the evening together until bedtime. She started me out on the wrong foot by being cranky, but we managed to have an OK evening together.
It rained overnight. Keep raining!
It's my dad's 70th birthday. Happy birthday, Dad!
I took Cassie to Home Depot for their monthly workshop for kids. We made a racecar and painted it.
I went over to REI for a new blinky.
I spent most of the day working on house maintenance.
Riding into work, the blinky on the back of my bike fell off its clip. The next three cars behind me ran directly over it and shattered it into a million pieces.
Lejna left for the weekend for some AFS student orientation. We have to pick her up in the North Bay on Sunday.
I finished making the rack to go on a shelf in the kitchen. It functions, it looks just the way I intended it to look, and its many imperfections are not casually visible. The wood and its finish match the kitchen, too, but somehow it does not match the overall look of the kitchen. Kate and I think that may be because it sticks out too far on the shelf. We are discussing different ways we could redesign it.
I'm on the VMware RADIO conference program committee, so today I started looking through papers. I spent about 2 minutes on each of 67 of the submissions. I recommended about 25 of those for “light review” only, because they were not up to snuff. Disappointing.
We finished and submitted our paper for the VMware RADIO conference. It is a much better paper than I expected. Initially we were just writing it because management wants everyone to submit papers. Our paper was really just about performance improvements in Open vSwitch. No research there. But after writing for a while, and getting some feedback, I realized that there really is enough novel work in the Open vSwitch classifier and flow cache to warrant a paper, so we pivoted and wrote only about that. It's pretty good, I think.
A while back I was reading something in the newspaper about getting kids involved in some kind of craft. Some way into the article, the reporter had clearly gone out of his way to find a contrary viewpoint. The quote still bothers me: “These people are trying to conscript kids into the Maker Movement.”
People like to make things. Kids like to make things. The fact that adults are helping kids to make things doesn't have to be ascribed to any “Movement.” I like to make things, too, and that's basically what I like to do all the time, whether I'm making things with words or code or wood or food or something else. Most of the rest of the stuff I do is just taking breaks. I don't have to relate to any “Movement” to make things, and I'm not sure that I really do relate.
So, to whoever said that: stuff it.
Back to work after the weekend. I spent most of the weekend either working on my research paper or procrastinating on it. I'm a champion procrastinator when it comes to papers. I can sit there right at the keyboard and think of anything else. Paragraphs and individual sentences or even words can take ages.
I registered Cassie for the Home Depot kids workshop on Saturday. We're making a racecar. I think it'll be fun.
In the morning we went to a jigsaw puzzle competition. We were a few minute late. When we arrived, the organizers had given away our reserved spot to someone who had not reserved one and no copies of the competition puzzle were left. We were disappointed, but we took a different puzzle and spent a few hours on it. It was a very difficult puzzle and we did not make much progress, so we dumped all the pieces back into the box and went home.
Kate took Lejna dress shopping for the Sequoia winter formal in the afternoon. Cassie and I played together at home. We went for a bike ride in the neighborhood.
I found some moments to work on my kitchen shelves during the day. I tested the stain that I had bought. It matches the existing cabinets well (Lejna says “perfectly” but I am not sure).
In the evening I worked on my research paper.
I am so far behind on reading and processing bug reports on the PSPP mailing lists. To PSPP users, sorry about that. I am in the midst of writing a research paper and a document on Open vSwitch fields, there is a reorg going on at work, and I am spending a lot of time working on carpentry and other projects around the house.
Give me a few more weeks and I'm sure things will turn around. In particular, the rest of the family is going on a trip in a few weeks, and that will give me some uninterrupted time to work.
Writing research papers is the hardest professional activity I do.
The phrase “flat-screen TV” is my new pet peeve. It's meaningless because no one sells the old curved screen TVs anymore.
I am working on a document on OpenFlow and Open vSwitch fields. I've started sending, to people involved early on in OpenFlow, a draft of a section on the history of OpenFlow fields. If you want to review it, let me know.
Rev. Martin Luther King, Jr. Day, a day off work.
We have some cabinets that were installed in the house in funny places when we moved in. We removed them and they were in a closet until now. We are trying to better organize the garage, so this morning Kate and I installed one on the wall (no drywall there, making it easy to find the studs). Later, I made a shelf to fit inside (on little metal shelf holders).
The shelf is made from the same oak veneer plywood that I'm using for the kitchen shelves, so I spent some time experimenting with the veneer edge banding that I am going to use there. I applied it to the visible edge with an iron, using aluminum foil to protect the iron, then I trimmed it with a trimming tool I bought last week. I was worried that it would be difficult or not work well, but in fact it took only two or three minutes total (not counting ten minutes waiting for it to cool between ironing and trimming) and was not tricky or error-prone.
I also replaced a rack in the garage that was in fact an adapted curtain rod by a proper closet rod, using a shelf bracket with a hook at the end. I intend to put a shelf on the bracket also, but did not do it today.
I installed the outdoor speakers. They sound good. I still need to go back and caulk around the holes to make sure that water can't get inside the stucco.
With the table saw, I cut my 4x4 sheet of plywood to the sizes I need for the kitchen shelf, and fit them together. It was not perfect at first, which I think is because I initially forgot to lock down the bevel on the table saw and it wandered about 10 degrees from vertical during my cuts. This made the pieces not square, so I had to trim off some on the sides carefully with a hand saw. Anyway, I managed to fit everything together acceptably.
I spent some time experimenting with the router. I think that it will do everything I want.
After talking to my dad, I decided that the kitchen shelf project would be much easier if I had a table saw. I've been delaying on buying one for a long time, because they're scary, but I had spent a long time reading reviews and had a good idea of what I wanted, so I went out and bought a Bosch GTS1031. This model is portable, with a tough metal frame and handles, and storage for all the components inside the frame. I can store it vertically under my bench and pull it out when I need to use it.
I read through the manual and practiced using the saw.
I bought a Porter-Cable router, model 960, and some bits, for a project I'm working on to build some shelves in the kitchen. I used the Home Depot gift card my dad gave me for Christmas. Thanks, Dad!
Had dinner with Justin and his family, Jesse and Ethan, and Ethan's girlfriend, at Justin's house.
There's been horrible turmoil at work this week. A bunch of decisions came down from on high. They are not necessarily bad decisions, but they are big changes and not communicated well. I have hardly managed to get anything done this week.
I released GNU PSPP 0.8.2.
Over the last few days I've noticed an occasional mysterious beeping when I'm outside. Tonight I figured out that, when I replaced a smoke detector inside the house, I put the old one in the garage but forgot to remove its battery.
We wrote and mailed thank-you notes for Christmas gifts in the morning.
In the afternoon I went to Woodcraft to buy some wood for a project. I bought a 4x4 sheet of plywood with oak veneer to match our kitchen cabinets. Putting it in the car, I found that a 4x4 sheet of plywood fits, diagonally only if one is willing to push and to scuff the interior trim. Next time I will take the old car, and a rope for the roof rack.
There's a little playhouse for kids in the back yard. It hasn't seen much use because it had a wasp problem. We were working on that, and Kate went out there to check on it today.
We don't have a wasp problem anymore, because the playhouse has bats now. For me, this posed the question of what do we get to eat bats, but Kate decided to buy a “bat house” instead and somehow try to coax the bat into living there. We'll see.
I managed to expand a 1-gang low voltage box for speaker wires in our TV room by a 2-gang box with extra wires for our outdoor speakers. I think this is the only time I've put a hole in a wall and not regretted it.
Here are the books I read in 2013, along with the year that they were written and, in some cases, my rating on a scale from 1 to 10:
Erica Jong, “Fear of Flying”, 1973, 3.
Jules Verne, “Le tour du monde en quatre-vingts jours”, 1895.
Hans Christian Andersen, “La Petite Sirène et autres contes”, 1875.
Jules Verne, “Le Pays des Fourrures”, 1873.
Garrison Keillor, “Pontoon: A Novel of Lake Wobegon”, 2008, 5.
Jules Verne, “Cinq Semaine en Ballon”, 1863.
Jules Verne, “Les révoltes de la Bounty”, 1879.
Richard Henry Dana, “Two Years Before The Mast”, 1840, 8.
This list is shamefully short. It is shorter than my list for any other year that I've kept one and, probably, for most years that I have not written it down. I plead, first, that it took longer to read many of them because they are in French and, second, that I spent a lot of time on other hobbies this year instead of reading.
My peak year for reading was 2011, in which I read 61 books. However, I don't want to repeat that year, either, because I think that too many of the books I read that year were simplistic and forgettable. In 2014 I hope for some happy medium.
I've been getting weary of this form of blogging. I am thinking about some alternatives. I might eventually get around to trying one of them.
I'm feeling awfully tired now. I think I need another vacation.
I went back to work.
I dropped Kate and Lejna at “snuba.” Cassie and I went swimming at the hotel for a little while, then we checked out and picked the others back up.
We drove to the airport and flew home. I was pleased that our bottles of rum did not shatter or leak.
The others went to yoga in the morning, while I finished reading Babbitt.
We spent the day driving the opposite direction around the island. Our first stop was the Makauwahi Cave Reserve archaeological site, over a rutted dirt. We spent some time walking around and talking to the docents. I took some photos of the collapsed innards of the cave.
Afterward we drove toward Waimea Canyon on 552. We stopped at a lookout point and bought some exotic fruit, including fresh coconut meat (pretty much flavorless) and rambutan (pretty good). We made it up to the nature center and museum a while later and took a very short hike.
On the way home we stopped at a ruined (never completed, in fact) Russian fort.
We ate dinner at Keoki's again.
We ate breakfast at a Whole Foods-like grocery store near the hotel. The food was very good, but it was also very expensive.
We spent the day driving counterclockwise around the island from our hotel, almost to the point where the road ended, and back again. The highlight of the morning was the Kamokila Hawaiian village, which recreates the buildings in a historical Hawaiian village, with explanations.
We drove through Princeville and ate lunch in a shopping center there. Just past Princeville was Hanalei, the town from the “Pete the Magic Dragon” song. We stopped at Tunnels Beach to watch surfers on huge waves. Across the street from the beach was a huge cave. We only walked into the large outer chamber, because we did not have a flashlight, but other visitors told us it went back much farther than that.
We ate dinner at Rum Fire, the hotel restaurant. The food was better than Brennecke's, but didn't measure up to Keoki's.
We drove a short distance from the hotel to set out on a 3-hour guided adventure. Our adventure began by kayaking down a river, which was very still and quiet. About 45 minutes later we landed on the bank and hiked along a small stream to see waterfalls and eat a picnic lunch. We hiked back to our kayaks, pausing for Lejna to jump into the water from a rope. Back at the river, we were picked up by another guide with a power boat. We went back to the hotel.
We went to a luau at the Koloa rum plantation in the evening. Kate and I had a chance to taste the rum. The Koloa dark rum and spiced Hawaiian rum were both amazing. We rode a train around the plantation, ate our dinner, and watched the show, which featured an amazing fire act.
I ate breakfast at the hotel restaurant, to try it out. I decided not to go back again, at $30 for a basic breakfast served slowly. I walked along the beach and climbed on some lava rocks. I managed to slip and cut my legs and feet badly. I rubbed dry sand on them until the bleeding stopped, then I walked over to where the others were taking a “surfing lesson,” which turned out to mean sitting on a surfboard in the pool.
We discovered that the hotel's “kids club,” described in the guidebook, did not exist.
We had heard the locals talking up the Koloa Fish Market restaurant, so we went there for lunch. It turned out to be a tiny hole-in-the-wall with food that is cheap (the cheapest we've seen!) but tasty. It didn't have any seating, so we sat on the steps of the building next door while we ate.
We spent some time shopping. I bought a Hawaiian shirt.
Kate and I went for a scuba lesson in the afternoon. The instructor basically handed each of us a mask and said “put this on and dive.” It was easy—I always had this idea that scuba was difficult and technical—and fun, and left me wanting more. Kate sounded like she wants to get certified when we make it back home.
We ate dinner tonight at Keoki's Paradise, which turned out to be a great place. We might go back again another night. The highlights for me were my monchong fish with lemon butter sauce, and the carrot-cinnamon-pineapple muffins served before dinner.
After dinner we walked around the shopping center that Keoki's was in and bought a few souvenirs.
New year, new title. Last year.
We took off for Kauai in the morning. I both started and finished reading Red Shirts on the plane (it was disappointing) and started reading Babbitt.
We landed and picked up our bags and the rental car. I drove us to the Sheraton, stopping at a Mexican food truck for a late lunch along the way. We went swimming in the pool and walked in the surf.
For dinner we drove out to Brennecke's, a beachfront restaurant. There had been some confusion about reservations, so we had to wait a long time to be seated. The actual food was disappointing, and expensive.