Open vSwitch has a code review problem. This problem has at least two aspects. The first is that we do not have enough developers doing code reviews. The only good solution there is to get developers to spend more time doing code reviews. One sub-aspect of that problem is that some developers feel that they don't get enough recognition for the considerable time it takes to do a quality code review.
The second aspect of the problem is that currently it takes some effort to keep track of which patches are actually out for review. This is probably less of a problem for developers who actively do a lot of code review than for others, because anyone who reads ovs-dev more than casually will not have a problem noticing which series have not had followups, which have been superseded, and so on, because we are careful to include all of this in the email chains. But it is a problem for managers who want dashboards, statistics on who reviews what, and assignment lists.
It seems that the solution that we will adopt in the medium term is patchwork. It has a philosophy that I support. In particular it doesn't attempt to replace the email-based patch workflow that OVS developers already like. I think that it solves the whole second aspect of the problem mentioned above, as well as the “credit” subpart of the first aspect. (I don't think that the whole first problem can be solved via technical means.)
Others have suggested Gerrit, but Gerrit is awful. I have also seen Review Board suggested; I don't have any experience with Review Board, except to watch some emails fly by internally at VMware (apparently “Ship it!” is the Review Board equivalent of Open vSwitch's “Looks good to me.”).
For the short term, I'm trying another solution: I am pushing each patch series that I send out for review to a Git repository dedicated for that purpose. As I update the patch series, I update the repository, and as I merge a series, I delete the branch. This will at least solve one part of the problem, which is to let everyone easily see what needs review. We will see how that goes.
This morning I found myself at the back of a group of five riders from Sand Hill to Page Mill on Junipero Serra. They were 2 or 3 mph faster than my normal comfort zone, so I worked hard to keep up, and managed fine. I think that was the fastest I've ever made it between those two roads. It was tiring but felt rewarding.
I fixed 5 bugs in PSPP tonight.
The San Carlos Hometown Days 5k/10k Fun Run went right by our doorstep this morning. It is not a big race, so it only took 20 minutes or so to go by.
Went to Maker Faire with a large group. I did not enjoy it as much as in previous years. I think that it is starting to outgrow the San Mateo County Fairgrounds. I don't know what that means, since I can't think of any larger local venue.
We participated in the San Carlos Hometown Days parade in the morning as part of the San Carlos Mothers Club group. Cassie rode her bike, which she decorated with streamers before we left for the parade. Following the parade we spent a little time at the festival. Everyone was tired so we went home for the afternoon. We did come back in the evening for the Kiwanis Club's sausage dinner.
The VMware Networking and Security Business Unit had its first weekly dodgeball game in the VMware gym this afternoon. Fun. I need to practice.
Last night I heard some cat-related noise upstairs. A bit later I noticed that my Internet access was down. I made the mental connection between those two events and went up to look at the cable modem and the wireless router. Nothing seemed wrong with either one. Then, after lots of fruitless messing around, I noticed a button that I hadn't spotted before on the front of the cable modem, labeled “Internet On/Off.” I pushed it. My Internet access sprang back to life.
The primary purpose of a cable modem is to give access to the Internet. Who decided to put a button on it, easily pressed by a clumsy cat, that turns off access to the Internet? Some idiot.
The other half of the RADIO research talks were presented today. Then I went home on the train.
Half of the RADIO research talks were presented today. I guess I should not talk about their topics, but most of them were pretty specific to VMware products rather than academic.
One thing that has started to bug me is that the badges that everyone wears prominently include, in addition to name and department, a person's title, e.g. “Member of Technical Staff” or “Principal Engineer.” The problem is that it invites a snap judgment about the person's capacity or skill level, as well as a mental comparison of one's own level to the person's. I do not think that this is productive; ideas should be judged on merit rather than by their source.
I'm at the VMware internal RADIO conference through Wednesday. It is huge. I expected a fairly intimate conference, but there are 1400 VMware employees, primarily engineers, here. I don't normally have agoraphobia, but when I first walked into the crowd in the lobby of the Hilton, I came close to walking right back out again. Fortunately it got better after that.
My shoes were starting to hurt me on the walk to the conference hotel, so I stopped at a shoe store, bought a pair of shoes, put them on, dropped the old ones in a trashcan, and continued walking. Probably took 5 minutes total.
I bought Kate a grandfather clock for Mother's Day, from a local antique store, and it was delivered early this afternoon. It is a beautiful piece from the 1970s and has lovely chimes.
I bought a big wrecking bar/nail puller and worked on ripping the old driveway gate into boards. Whoever built it really knew how to nail wood together.
I started painting over the primer on the bench project.
I started painting the ceiling fan in the guest room white. It was previously a mix of stark red, yellow, green, blue, and orange, which looked ridiculous.
Let's be clear: if all of these claims, including the system claims, are not patent-eligible, this case is the death of hundreds of thousands of patents, including all business method, financial system, and software patents as well as many computer implemented and telecommunications patents.
If so: hurray!
I'm a little tired of Bike to Work Day. I'm not sure what the “energizer stations” are really good for. They must be for people who only bike to work one day a year. Anyone who needs a banana and a cup of coffee halfway to work isn't going to bike more than one day a year anyway.
Riding home was worse, though. Somehow I got stuck with a group of weekend riders. They would ride slowly in the straight open sections, so I would pass them. When I would slow down for my safety when I was passing long lines of stopped cars, they would pass me yelling out “on your left!” In fact they seemed to spend most of their time yelling that and other things (“watch it” when somebody would open a car door anywhere within a hundred yards of the road) and making hand signals at hazards no one not blind could miss. Very annoying group.
I have a huge backlog of patches for threading Open vSwitch. Anyone want to review them?
At long last, I merged the “psppsheet” branch into the master branch of the GNU PSPP repository. The result should be much more usable and fixes many bugs against the previous implementation. Some new bugs are to be expected, although I hope they will be smaller.
I think I may have been working with my coworker Justin too long. When he got in this morning, we talked for a few minutes, and then as we headed over to the cafeteria for lunch I started out, “So…” He cut me off and said, “I know exactly what you're going to ask.” I said, “So just answer it then.” And then he answered exactly the question I was going to ask. (The question was, “Do you think I was too hard on that guy who asked an irritating question on the mailing list over the weekend,” which is not a question I ask often.)
Our contractors finished installing the new driveway gate today. It looks great.
I finished putting the primer coats on the edges of my bench project and sanded the whole thing with 220-grit sandpaper.
I replaced the shift cable and housing with new ones.
I found out why my bike had been shifting badly for the last few weeks, when the shift cable broke on the way into work. I limped the last few miles in and the whole way back later with only 3 working gear combinations.
Minnie now seems be named Molly.
We have a new young gray cat, tentatively named Minnie.
Our contractors showed up to install a new driveway gate to replace the one that fell down in high winds a few weeks ago. Unfortunately there were plenty of problems and they will have to come back in a few days to finish the job.
Went to dinner with Kyle Mestery from Cisco, who is in town from Minnesota on a business trip.
Went to Ardenwood Historic Farm along with two other families.
Had Reid, one of my coworkers, over to dinner.
We spent all afternoon, into the evening, at Dan my coworker's new house in Los Altos. It's a great place, nice inside with a huge beautiful green backyard with a pool. Cassie spent almost the whole time in the hot tub (which didn't actually get that hot until very late).
Kate and Cassie went to the Exploratorium in San Francisco today. Kate came back talking about the variable resistor that they had been able to see inside and play with. I pointed out that a variable resistor is something that you can build yourself with a piece of paper and a pencil. So we did, by heavily shading a box about 1/2 inch by 3 inches in pencil on a piece of paper. Then, setting a multimeter to measure resistance, hold one probe touching one end of the box and move the other probe along its length. We found that resistance varied from about 15 kilohms when the probes were near each other to a few hundred kilohms when they were at opposite ends of the box.
We're thinking about making Open vSwitch T-shirts, but we need some kind of logo or mascot. Any ideas? The best one I've heard so far is some kind of antelope with V-shaped horns.
This afternoon my coworker Justin gave me a sneak preview tour of his new house. It is currently stripped down to the studs and the joists, but it is easy to see how nice it will be when it is all put back together.
FAA budget cuts leading to travel delays have been all over the news for the last few weeks. But I have seen no one ask the question that seems obvious to me: why is air traffic control funded by taxpayers, instead of by travelers? Every ticket you buy has a “security fee” attached. I always assumed that some part of the rest of the ticket price covered, you know, the airport, that is, things like air traffic control. Now I find out that I've been paying for air traffic control through my taxes? That doesn't make any sense. Let's shift air traffic control costs to travelers. It's only fair that people using the service pay for it.
Californians will never terraform Mars. It would be impossible to ever compile an adequate environmental impact report.
In the morning I replaced three ungrounded outlets with GFCI outlets. All of them were end-of-the-line outlets and I could not identify any outlet upstream of any of them. I guess they all run in parallel to the breaker box.
I also replaced another outlet that had one bad receptacle.
We went to three birthday parties today. The first one, in the morning, was for an adult. We took along a bottle of wine as a gift. When I gave it to the host, he opened up a large cabinet to reveal a wine fridge that contained probably 200 bottles of wine. I felt pretty embarrassed then.
The other two parties were for Cassie's friends.
We went to RoboGames in the San Mateo Event Center. We watched robots fighting (the best was from the Brazilian team, the same as when we went before a few years ago), robots playing hockey, robots playing soccer. Cassie got to pull a robot on a leash, too.
The second and final day of the ONF “member workday” had multiple sessions that seemed worth attending scheduled concurrently. I went to the “extensibility” session for the workgroup that I participate in most heavily.
I presented a demo of some Open vSwitch features, the same demo that I presented at Hacker Dojo in March. The demo is also now checked into the Open vSwitch repository in the form of a tutorial. Ed Crabbe of Google seemed impressed with the demo; I was surprised because he is difficult to impress.
I biked home totally exhausted after lunch. I biked about 148 miles this week, about 1/3 farther than a typical week, and 84 of those miles in the last 2 days (my house in San Carlos to the Santa Clara Marriott and back, twice), so I have reason to be exhausted.
First day of the Open Networking Foundation's “member workday.” I went to the OF-CONFIG working group meeting in the morning. It was odd to see so much discussion of issues that we settled and solved in Open vSwitch years ago, especially the discussion of controller discovery and implementation of in-band control. This discussion was actually based on the documentation that we generated as part of writing and debugging the Open vSwitch implementations.
Stu Bailey from Infoblox presented LINC, the Infoblox-sponsored implementation of an OpenFlow switch in Erlang. This was at least the second time that I had seen him present LINC. The previous times he had been all fired up and excited, ready to take the world by storm. This time, probably six months after the last time I'd seen him, Stu looked and sounded more subdued, as if he'd decided that it wasn't quite working out. I felt a little sorry for him.
My coworker Justin Pettit and I had a couple of drinks in the hotel bar after the morning session with David Meyer (Brocade) and Rob Sherwood (Bigswitch). (I don't think I'd met David Meyer before, but Justin and I have a history with Rob back to the early days of OpenFlow when he was still at T-Labs.) There just didn't seem to be much point to listening to the “migration” or “market education” sessions. I was slightly interested in the testing and interoperability working group session later on, but I was having good luck with professional networking so I stuck with that. You can learn a lot more in a few minutes talking to the right people than you can sitting in a working group session for a few hours.
Went to a Greek cooking class tonight with Kate. The dishes that stood out were both made with eggplant, which I have never cooked before. In the more interesting of the two, we charred the eggplant over an open flame on the stove until it blackened and the skin flaked off.
I read Cassie's book Ladybug Girl and Bumblebee Boy to her again tonight. At one point in this book, Lulu (Ladybug Girl) is frustrated playing with others, and she thinks about playing by herself instead. At this point, before I turn the page, I think about how much fun she could have playing by herself, because that's what I would naturally do. Of course, it's not what actually happens in the book, because society says you're supposed to play with others.
It was very windy all afternoon and evening. I had to work harder than usual to make it home. In a few places I had to tip the bike significantly to one side to avoid being pushed over the other way. It looked to me like even some motor vehicles were getting pushed around a little bit. The weather report claimed 30 mph winds but I suspect that the gusts were bigger than that.
Managed to meet some of the neighbors after inviting them to bring their kids over before the jump house company came to take it away. One of our neighbors works for a company that does valuations for startups, to help (among other things, I'm sure) price the shares they offer their employees.
Went to see Cats at the Fox Theater in downtown Redwood City. I had not seen Cats before. I wish I still hadn't. It's two hours of furries dancing.
Did some more sanding in preparation for priming the other side of the bench.
I made red beans and rice and pan-fried catfish for dinner. Kate did not like the catfish because it tasted too fishy. (She only likes fish if it is breaded heavily and covered in enough tartar sauce that it does not taste like fish. Terrible.)
Spent the whole day cooking for and then holding a Cajun-themed party at our house. We made shrimp etouffée, chicken and sausage gumbo, cheese grits, Cajun spiced potatoes, catfish nuggets, and served them with prepackaged crab cakes, brown rice, and wheat berries. Our friends Colleen and David also brought jambalaya. We had three kinds of New Orleans beer as well as coffee and chicory.
I had been planning to make red beans and rice also but ran out of time and out of burners on the range. Tomorrow.
The catfish nuggets were the surprise hit. Everyone liked them. The etouffée really stole the show, though. We have lots of leftovers for this coming week.
We rented a jump house for the kids and served them macaroni and cheese and juice boxes.
Found a good Chinese restaurant at Laurel and San Carlos down the hill from us, “King Chuan.” Their menu has all the usual food you expect but it also has a page in the front with a bunch of lists that say, “If you like dish X, you should try our own special item Y.” We ordered a couple of these menu items made from their own special recipes and were pleasantly impressed.
Kyle Mestery mentioned me nicely in his blog post.
Went out shopping for food for the Cajun party we're throwing Saturday.
Kate tells me that I woke her up in the middle of the night laughing madly to myself in my sleep. Weird.
Over the weekend I watched the first two episodes of Mad Men. As many people know, the theme of this show is the how gender relations have changed in U.S. society since the 1960s. I noticed that part, of course. But the bit that jumped out at me was when, in the second episode, one secretary tells another to retype a letter because of spelling errors. I found this almost offensive, the idea that a person would have to waste a ton of time retyping pages of text just because of scattered mistakes. How times have changed.
I picked up Kate and Cassidy from the airport in the evening, back from Disneyland.
More woodworking. I put four coats of primer on one side of the bench project. It is well done. So far, my patient experimentation on a test piece seems to be paying off.
I fixed a number of bugs in PSPP.
I finally felt motivated to resolve the problem of the ungrounded outlets in the front room. That room and the room next door have a number of 3-prong outlets where the ground is not connected. I don't know how to run a ground wire–the insides of the walls are not easily accessible–so I decided to use GFCI receptacles instead, which is also acceptable though less preferred. The next challenge was that, in the outlet I was most worried about, the wires were so short that I was unable to release them from the push-in terminals on the back of the receptacle. Instead, I had to cut them off and then use twist-on wire connectors to extend them to a reasonable length.
Another receptacle actually had the plaster or wallboard or whatever over the metal wings that steady it against the box. I had to chip it away with the sharp end of a screwdriver to pull the receptacle out of the box. This explains why this receptacle was one of the two in the house in the old style, not the more modern Decora style, and the only one without a grounding hole.
I had hoped that all the ungrounded outlets would be on a single run so that I could protect all of them with a single GFCI receptacle. But in fact none of them run together. Puzzling. I only bought a single GFCI so I am going to have to go back and get some more of them. Or I could try harder to figure out how to run a ground wire, I guess.
While I had all the equipment out anyway, I installed another electric outlet with built-in USB power sockets on one properly grounded box.
Kate and Cassidy are off at Disneyland with grandma for the weekend of Cassie's birthday, so I'm home alone. I spent the day working on my woodworking project and walking around town to get some exercise after a sedentary week.
I also installed an occupancy sensor light switch in the bathroom near the kitchen, a molly guard over the garbage disposal switch in the kitchen, and an electric outlet with built-in USB power sockets by the kitchen table.
I bought a lawn mower and used it to mow the lawn. It was overdue.
I discovered that Bianchini's, under a mile away, sells the Zaya brand rum that I like.
I found out that Devil's Canyon brewery is moving from Belmont to San Carlos, close by. That will be nice.
I watched a preview of the video of my Hacker Dojo talk from a few weeks ago. I wish I didn't say “um” and “uh” every second word in the first half of the talk, but it's better after that.
Final day of technical sessions at NSDI 2013. Here are the talks I found most interesting.
I expected this to be about some kind of cellular L2 protocol that I didn't care about. It was not. It describes how to predict with good accuracy how many packets one may keep queued at any given time to ensure low delay. This is very useful for, say, online video chat. The evaluation showed a 2x to 4x improvement over Skype, Facetime, and Google Hangout on delay.
This paper's title is deceptive. It is not about how to build system services in operating systems. It is about how to build an operating system for a building, that is, for large commercial buildings. It turns out that modern commercial buildings have tons of equipment that can be digitally monitored and controlled, such as thermostats, ventilation, and lighting controls. But it's all siloed off, uses archaic (Arcnet!) or obscure technologies and protocols, and not generally connected to external networks.
Second day of technical sessions at NSDI 2013. The talks today are less right up my alley. I only took notes on the one below.
The part of this paper that interested me was the novel “optimistic cuckoo hashing” technique. A poster presented yesterday also described a related “Bloom filter” like construction based on the same ideas. This technique is not described in the paper; see The Cuckoo Filter: It's Better Than Bloom for the details.
First day of technical sessions at NSDI 2013. Here are my notes on the talks I found most interesting, starting from the most exciting and working downward.
This paper made my head explode. The big idea that it presents is that we don't have to use the control plane, with its slow time to convergence, to ensure connectivity. Instead, we can use simple per-packet mechanisms available at the data plane level (even in merchant silicon according to Panda) to take advantage of physical redundancy in the face of failure. The actual mechanism that the paper proposes is not important in my opinion. The insight that connectivity can be maintained at the data plane is novel (in my experience) and very exciting.
Describes a system that the authors built to analyze a database of trouble tickets using natural language processing with a small amount manually expert-labeled domain knowledge. It never would have occurred to me to do this but the authors mentioned a number of important insights that they obtained from the results.
I talked to the author for a long time at the poster session the following evening. It sounds like there is a good chance that they may be able to release the source code to their system (called NetSieve) for general use. That would be valuable.
Proposes sketches as building blocks for monitoring switches. Proposes a standardized pipeline consisting of “hash,” “classify,” and “count” stages for general sketches in hardware. This would suffice to implement many of the forms of monitoring that people want to do in practice on switches, in a general-purpose way.
We could add a similar pipeline to the Open vSwitch kernel module. Some of the changes we are planning already (wildcarded kernel flows, kernel hashing) would provide the necessary primitives. I spoke to one author of the paper about that possibility at lunch.
Presented a way to represent OpenFlow as composable functions and then to use those as a way to compose multiple applications in an OpenFlow controller. Has some support for overlaying logical networks on top of physical or virtual ones under the term “topology abstraction.”
Presents a real-time policy checking tool that watches the stream of state changes in an SDN. Traces all possible flows through the network. Incrementally updates its checks as flows change.
I remember seeing an earlier version of this work presented last year at ONS. Each time I see it, I find myself wondering whether it's practical for general flow tables and especially for the complicated many-stage flow tables that NVP uses. It seems to me that the memory required would explode.
Interposes on change in the flows table in network elements and checks for violations of invariants. Uses equivalence classes to minimize search space (look like the packet classification problem to me but perhaps it is simpler?). Very fast–mostly less than 1 ms to verify a single change.
If a network has millions or billions (!) of OpenFlow flows, then it can be a bottleneck to put each of those flows in its “natural” place. The paper's insight is that we can move many flows from their initial locations in the network to other switches along the path that the packets would follow in the network. One complication is identifying what flows can be moved while retaining correctness; another is identifying what would be a better location.
I spoke to the author at lunch. He spent some time studying and implementing different software packet classification algorithms, including some of the more complicated algorithms described in the literature. He told me that (in some cases? I don't remember his exact qualifiers) the simpler algorithm that Open vSwitch uses performed better than those, so he used that one in his own code.
Elastic applications need elastic middleboxes. But existing middlebox applications don't relieve hotspots as you add more of them because they have state that needs to be migrated. This paper presented an OpenFlow-based way to partition flows across middleboxes as you split them into multiple middleboxes and a library for implementing the small amount of shared state required across the split. It evaluated a prototype based on Bro.
I was surprised that the authors did not propose a system that tried to do splitting and merging automatically, without needing to modify the source for the middlebox. It would obviously be more difficult to do so, but it is also a more interesting problem. I mentioned this to the speaker later on and he said that that was their original idea too but did not work out.
Many of the papers presented today used OpenFlow or Open vSwitch for their implementations or prototypes. I keep running into people who recognize my name, which is remarkable given that I haven't really published anything in years.
Flew to Chicago for NSDI 2013. I'm traveling with Andy Curtis, another member of the former Nicira networking group at VMware. The trip was unremarkable.
We arrived in time to make it to the welcome reception in the evening. Little food was served so we had dinner at the hotel later.
After some experimentation, I've managed to get the paint on my bench project to come out close to what I'm looking for. Roughly:
Sand with 120 grit, then 220 grit.
- Three or more coats of latex primer
Wipe with damp rag. Dry with dry rag.
Apply primer with foam brush and wait for it to dry.
Sand with 320 grit after each coat, possibly with 220 grit before that if it looks like it needs it.
- Three or more coats of latex paint
Wipe with damp rag. Dry with dry rag.
Apply paint with foam brush and wait for it to dry.
Sand with 220 grit, then 320 grit.
Next step: varnish. Seems like a water-based polyurethane is the best choice for this light-colored paint.
All this is on my test piece. I haven't done anything to my project pieces other than sanding.
We went to the San Francisco Zoo this afternoon. Looking at a sign, Cassie pointed to a word and said, “Hey, it says `zoo' there, zee oh oh.” I think Kate or I might have said something like, “Yeah, that's `zoo.' ” Then we both paused two beats and realized that Cassie had successfully read her first word to us.
Made rye-whole wheat focaccia bread and served it with beef kebabs and sweet potato fries for dinner at a friend's house.
So much to do, so little time.
The software from “Workday” is possibly the worst software I have to occasionally use. It does not work with the versions of Firefox or Chrome that I have on any of my computers or my Android phone. Of all the browsers that I can find, it works only with Internet Explorer (in a VM). And what is all this complication there for? No reason at all. Workday is only a way to update personal information like home address. They could do it with HTML 4.0 forms.
Ate dinner at the Romano's Macaroni Grill in the Hillsdale Mall. I had not eaten at this chain before. It turns out to be a casual Italian restaurant. The service was very slow, and my wife's order was lost. The “Bibb and Blue” salad was full lettuce leaves, so that I needed to actually cut them up with my knife, without any dressing that I noticed. The sea bass was overcooked and lacked flavor.
Between Romano's and the Olive Garden, I recommend the Olive Garden. And if you go to Romano's, don't bother ordering fish.
I noticed two cyclists this morning riding bikes with Look pedals while wearing flexible-soled house slippers. They looked uncomfortable. I don't think I want to join this trend.
We're going through with the next step in the application process for a foreign exchange student starting this summer.
The previous owners of our house left many cans of pain in a cabinet in one corner of the garage. Many of them are labeled with the room in the house that they go with. I spent a lot of time sorting through them to pick out colors as candidates for painting the bench. Then I picked my top three choices and painted small pieces of wood with them to help me decide. In the end I chose a shade of tan or light brown for the primary color and a sandy reddish for highlights.
I spent a good deal of time sanding the bench in preparation for priming and painting.
I made corned beef and cabbage, and homemade pumpernickel bread, for dinner. The bread turned out very well. I'll have to make it again.
I finished the basic structure of the bench that I am making. The remaining work is attaching the legs to the top, sanding and finishing the wood, and upholstering the top.
The tool of the day is the chisel. I spent a long time looking for good ways to cut slots to hold the legs to the cross-piece. The best way turned out to be to cut parallel kerfs with a jigsaw, then chisel out the waste. I think I had only ever worked with blunt chisels, because a sharp chisel is a really useful tool.
I suppose that if I had a table saw with a dado blade, that would have been easier. But I don't have a table saw.
Ate dinner with Lucila and her family and some new friends of ours. Grilled kebabs.
I am feeling a bit sore today because of the extra 11 miles that I biked yesterday to and from Hacker Dojo, which was an extra 50% on top of my usual 22 mile daily commute.
I gave my talk “Open vSwitch: Past, Present, and Future” at Hacker Dojo tonight. The slides are posted at openvswitch.org (at the bottom, under Presentations).
The talk went very well, especially given that I spent fairly little time preparing and did not rehearse at all. About 100 people attended.
The weakest part of the talk, in my opinion, was the initial “past” section, in which I gave the history of Open vSwitch as a sort of personal narrative. This did not grab the audience's attention in the way I'd hoped. (Perhaps I should leave the jokes to the professionals.) If I were to give the talk again, I would shorten this section, because the talk ran a little over my 1 1/2 hour target.
The part of the talk that I personally found the most exciting, and I hope the audience did as well, was a demo that I did in the middle. I wanted to do something more interesting than the “See, the ping goes through! See, the ping stopped!” networking demo that one commonly sees. So, I decided to do something to broaden users' understanding of Open vSwitch.
You see, there's a OpenFlow action called “normal” that (as I recall) Nick McKeown invented. The idea is that, given that a hardware switch has a path that packets would follow if OpenFlow were not in use, OpenFlow should allow the user to take advantage of this. Thus, if one puts “normal” into a flow's actions, the switch treats it as it normally would.
Open vSwitch likes to think that it's a software implementation of a hardware switch, so it implements “normal” in a fairly capable way, with VLANs, MAC learning, and so on. The problem with that (which I called “the curse of `normal' ” in my talk) is that it means that users tend to try to take advantage of “normal” instead of taking advantage of advanced Open vSwitch features and extensions that can do similar things and in the end are a lot more flexible and extensible. So my demo showed how one can implement VLANs and MAC learning with Open vSwitch extensions, without using “normal.”
The source code for the demo is also on openvswitch.org.
The organizers for the talk say that video will be posted in the next few days. They volunteered to let me view it privately first, in case I notice that I said anything I shouldn't have (I hope not). I haven't seen it yet.
The most awkward moment of the night was when I was changing out of my bike clothes and realized that I hadn't brought any pants with me. I leave a pair of slacks at work, so I don't normally bring them with me, so I'd forgotten. I felt pretty odd walking around all night in bike shorts, and I can't imagine I looked very good either. At least during the talk I was standing behind a podium.
The organizers of the talk very kindly took me out to dinner afterward.
Kate came home from the grocery store with maple syrup in what looks like a lot like a wine bottle or a liquor bottle. I sure hope I don't pour myself a glass and take a swig of it by mistake.
On second thought, that might be awesome.
From a San Francisco Chronicle article:
SmartMeter foes aren't letting up. They say they'll keep watch over PG&E's activities in the city.
“In Sebastopol, we're going to remain vigilant,” said Sandi Maurer, a Sebastopol resident who leads the EMF Safety Network, a group opposed to wireless technology. “We're going to carry cameras, and if we find someone installing meters, we're going to call the police and we're going to confront him.”
OK, let's break this down and read between the lines:
“We're going to carry cameras…
that record on physical media
…and if we find someone…
while we're driving around using paper maps
…installing meters, we're going to…
rush to the nearest pay phone and
…call the police…
who will activate the blinky light on the nearest police box to eventually summon the attention of an officer
…and we're going to confront him.”
Good luck, guys.
I spent the late afternoon making Irish stew with Guinness and red wine, plus soda bread. I don't think I've ever made soda bread before, but I know that I'll make it again, because it is easy to make and delicious. The stew was also very good, but there is not too much to distinguish it from other dark meat-and-potatoes stews.
Cassie painted my thumbs shiny green yesterday. I wonder how long I'll put up with it before I clean it off.
I finished most of the cuts in my bench project today, including the complicated decorative cutout in the middle of the main support board. The only significant cuts left are for slots that hold the main support board to cross-pieces. The width of these cuts need to be almost exactly the thickness of the cross-pieces, to ensure snug fit, so I'm doing some test cuts in scrap wood to figure out how to get the exact width I need. My first test cut was about 1/8 inch too wide, so I'll make the next one that much narrower.
I've been building a bench out of plywood for the past few weeks, based on plans from a book. This morning I finally got the last of the materials I need. I made the final large cuts early this afternoon. Now I'm in the middle of adding a bunch of decorative patterning holes. I have a 1-1/4 inch Forstner bit that makes beautiful smooth-walled circular holes using my drill press.
I didn't realize before I started doing little woodworking projects how much of the time is spent carefully measuring (and remeasuring), clamping, testing techniques on scrap materials, searching for advice and trying to judge conflicting advice, making jigs, cleaning, and so on. Very little of the actual time making something is actually spent using tools in a direct way toward the end goal.
Our rooftop solar panels have been connected to the grid for a week or two now. Monitoring shows them producing between 12 and 17 kWh per day depending on how sunny it is. That seems pretty good for March.
We went out for pizza to celebrate Pi Day.
It seems that I am going to attend NSDI 2013 in Lombard, IL next month, April 2-5. Anyone interested in a meet-up, let me know.
I decided to try out commuting along Junipero Serra again. I was in luck. It's all back in order again. All I saw missing was lane striping. It's a much more pleasant route than El Camino. I was energized and felt like I made record time on the way home.
I'm starting to think about what I should talk about at Hacker Dojo next week. If you have any suggestions, email me.
I remember doing little woodworking projects at preschools and day camps when I was Cassie's age or a little bit older. The only part I remember well is spending lots of time sanding. I remember sanding as boring and tiring and no fun.
That's why I bought a random orbital sander today. In a test run, it made quick, effortless work of sanding a block of wood before I applied stain to it. I think it'll be a handy tool.
I took Cassie to her art class at Celebrate Art in Redwood City this morning. Until last year, this class was run by a woman named Ginger who was very good at it. Since then, it's been taken over by new teachers who we're not sure about yet.
After class I took Cassie to see a demonstration of wood sculpting with chainsaws. It's a craft at the intersection of fine art and hick.
What does etiquette say one should do when one receives a picture of a naked man you don't know from a phone number you don't have in your contacts?
There is some interesting roadside trash along Page Mill Road in Palo Alto: a metal tape measure that has shattered into dozens of sharp-edged pieces each only a few inches long, scattered along a hundred yards of road. I've gone by it a few days in a row and each time I wonder what would cause a metal tape to break into shards. They aren't really brittle.
We took a Cajun cooking class tonight at the community center a few blocks downhill. The standout, for me, was gumbo. I don't remember having gumbo before, and I think I would remember.
Cassidy and I had dinner in downtown Palo Alto, and then we walked around. We spent a long time chasing each other around the public square with the big egg in it.
I'd forgotten how downtown Palo Alto epitomizes Silicon Valley. There's an Apple store, but I don't know why Apple bothers, because every coffee shop and casual restaurant is like an Apple showroom. Wherever Cassie and I went, almost every person was sitting at a laptop–and not just any laptop, but a MacBook Air or MacBook Pro, often accompanied by an iPad Mini. Ugh.
I mentioned to an Apple employee last year that I'd like a programmable smart watch. Now it seems that it's a product.
Baked loaves of bread.
Read part of a French novel.
Fixed a bug in GNU PSPP.
I feel like some kind of modern Renaissance man.
[*] That may be an exaggeration. I'm not very good.
We spent the whole day out of the house, going places, shopping, visiting friends. This is pretty rare for us.
Our team's recruiter passed along a report on me from “Gild,” a system for evaluating potential candidates' code contributions. Some of its report on me makes no sense at all. For example, it rates me as “top 10%” in HTML with “8+ years” experience, yet I hardly do any work in HTML and I wouldn't say that I'm an expert on it. It also claims that I have “<1 year” experience in “Shell” (no particular kind of shell?), “make,” and “m4” even though I've used them extensively for a long time. Finally it rates me as “top 30%” in “Teamcenter def” even though I've never heard of Teamcenter and don't have any idea what its defs are.
I'm thinking about buying a table saw. The ones at sawstop.com are attractive because of their safety features, but on the other hand they are very expensive ($1700) for someone who isn't sure how much of a table saw he needs.
I had a lot of odds and ends in the fridge, so I made risotto with bits of ham, half a medium onion, 4 small apples chopped small, a bottle of beer, and 2 cups of carrot juice. It was surprisingly good. The carrot juice lent it some sweetness and a bright orange color that made it resemble macaroni and cheese. The flavor of the ham and the apples didn't come through strongly, so if I were to do it again I would either chop them into bigger pieces or leave them out.
I ask almost every candidate the same multi-part question, which takes up a full 45-minute interview slot. The question's topic is one in which I have had some interest for a while. Having gone through this question with dozens of candidates, my knowledge of the topic is naturally broader and deeper than that of most candidates who come by, who don't generally have any idea what I'm going to ask about.
It's not my intent, by any means, but the candidate I interviewed on Monday seemed to find this really intimidating. I was the first interviewer on his schedule. Every interviewer who came after me told me later on that he'd thought he'd done badly on my question. He didn't, and we made him an offer.
Maybe I can change my approach somehow to give off more positive signals when it goes well. Then again, most candidates do worse than him but don't tell the rest of the interviewers that they thought they did badly.
Back to work today.
Latex tubes are commonly a bit more porous than butyl ones, and need to have their pressure topped off more often.
The only time I've needed to inflate my bike tires every day has been when I've had a slow leak.
Kate took the new cat, Dracula, to the vet today because he won't stop peeing all over the house. The vet gave her some medicine to try but it sounds unlikely to help. We will return him to the shelter if it does not. We talked about instead turning him into a mostly outdoor cat, but a few minutes later we discovered him up on the neighbor's roof, so it doesn't seem like that's going to work.
My dad and I went for a walk along the streets in the hills above our house. At one point we were stopped by a sheriff's deputy. It seems that some people who live up there called us in as “suspicious.” Wow. Hard to believe that the San Mateo County Sheriff has nothing better to do than to chase down people walking around in their own neighborhoods and ask them questions. How about, for example, catching the burglars who've hit a dozen houses in the last month or so?
I bought a drill press to allow me to conveniently build a bottle rack that I want for a cupboard in the kitchen. I want it to store bottles of oil, vinegar, and cooking wine.
We visited the Confederate History Museum and the Ogden Southern Art Museum before we flew home.
We visited the World War II museum in the morning and ate lunch at Commerce, a sandwich shop along St. Charles Avenue. We went to Mardi Gras World, where most of the Mardi Gras floats are made, and then to the Audubon Aquarium in the afternoon.
The big event of the day was a private cooking lesson at Crescent City Cooks in a mall along the riverfront. When we arrived, the chefs offered us wine to drink, red bean hummus, and an artichoke dip. Then we dove in. We spent all afternoon preparing jambalaya, crawfish etouffé, and bananas foster. It exceeded my expectations. We ate at the end, and then they gave us some just-prepared pralines to take with us.
We ate dinner at The Irish House near our hotel. This is the fine restaurant version of an Irish pub. Their drink menu featured 30 or so bourbons, whiskeys, scotches, and ryes. Neither of us knows much about any of these, so we ordered a flight of five of them. We decided that, of the five, we liked the John L. Sullivan the best. Jameson and Bushmill's were also among the flight; I don't remember the other two.
In the morning we took a swamp tour by airboat, a small boat with an aircraft propeller on the back that pushes it along. Our guide told us it topped out at about 50 mph and only needed a few inches of water to run. We saw alligators, nutria (big swamp rats), birds, and other wildlife. At high speed I kept worrying that the contact lenses were going to pull right out of my eyes.
We spent most of the rest of the day walking around the city, especially the French Quarter. We stopped at the famous Cafe du Monde to try out the coffee and beignets. We were disappointed; the coffee was ordinary and beignets turn out to just be pillow-shaped churros with powdered sugar dumped on them. I don't know why this is a famous place.
We ate dinner at a restaurant that had just opened in December, named La Fin Du Monde. It was set back from the street and at first I wasn't sure there was any restaurant there at all. We were the only customers there for most the time we were there, which meant that we got very personal service. Beet salad with horseradish ricotta.
Kate and I flew to New Orleans, leaving Cassie with her grandparents. We checked in at our hotel, the Queen Anne in the Garden District and walked over to St. Charles Street, where we ate dinner at Zea. We had an alligator taco appetizer. I had the pesto-crusted trout, which was very good. I think that I will try to make the same thing at home.
Took my parents for a walk to and around the San Carlos downtown area in the morning, after making pancakes for breakfast. Made clay pot ginger pork for dinner.
We spent the first half of the day finishing up wallpapering the guest room. It was just in time, because my parents arrived at SFO for a two week stay.
I found that photo 15 in The Atlantic's set of 50-year-old photographs stands out for me, within a collection of moving photographs. It shows a young black woman waiting for service, that was not going to come, at a segregated lunch counter in Alabama. The expressions of the two people in the photograph are striking. I read the black woman's expression, even through her dark sunglasses and the grain of the photograph, as upset but resigned, and welcoming the press attention. The worker, on the other hand, who is turned away but looks at the camera, seems nervous, unwillingly taking part.
I am very likely reading too much into it.
I would get the German chocolate cake, especially for 20 cents.
Today is Kate's birthday (and Valentine's Day). I presented the coat rack that I've been working on, which is functional and only slightly flawed. Some of our friends came to dinner.
I needed some more paint for the project I'm working on, so I stopped by Home Depot on the way into work. I felt like some kind of tagger riding to the office with a backpack full of spray paint cans.
California is the only state in the country where lane-splitting is legal.
[Motorcycle cop Sgt. Mark Pope] realizes that some car drivers see lane-splitters as borderline cheaters cutting ahead of others, but he says the practice is actually safer for motorcyclists than politely staying in line in a lane.
This does not add up. If lane-splitting is safer, then I would expect that all 50 states would be eager to provide these enhanced safety to vulnerable road users.
The OVS talk I'm doing on March 20 is now scheduled.
I went out and bought a mitre box with a saw this morning to work on a birthday present for Kate. I thought it would be good for sawing dowels to length, and it did work well, much better than the small handsaw I had without a mitre box.
Later on, I decided that a drill press would be the best way to do the rest of the project, so I went out to buy one, but the Home Depot a mile away was out of stock (despite showing 2 in online inventory) and it was getting late, so I think I'll end up drilling by hand. I think I've come up with a way to build a simple jig to make that less haphazard, though.
We had two clocks whose ticks can be heard from the kitchen when the house is quiet. This bothered Kate. Tonight, I removed the second hands. On one of them, the hand pulled off easily; on the other one, I cut it off with scissors. The ticks can still be heard, but not easily or from a distance, so it is much quieter.
I spent about 2 hours today solving this regular expression crossword. It was fun, geeky, challenging, and not too frustrating.
Came across an iPhone on the shoulder of southbound El Camino Real in Redwood City somewhat short of Atherton Ave. I picked it up and punched the “on” button, hoping to find someone to call in the address book. It was number-locked, so I gave up and moved it somewhere safer but still easily visible. Before I turned it off, I noticed that a recently received message was visible on the unlock screen: “Bike safely luv.” I hope the owner fared better than the phone.
Stopped by a different bike shop on my way into work. The Breezer Downtown EX seems reasonable.
A coworker moving to Los Altos Hills (which has some of the most expensive homes in the U.S.) tells me that he and his neighbors get two free periodicals tossed into their driveways. One is called “Gentry” and the other is called “Wealth.” Gee, where I live we just get the weekend SF Examiner.
Still looking for a new commuter bike, so I stopped by a bike shop that sells Raleighs on the way home. The Raleigh Clubman looks like a good candidate. It has nice fenders and a retro style that I wasn't looking for but looks nice anyway. On the downside, no chain guard.
Kate ordered a watch from Stauer for me as a Christmas present on Dec. 5. The watch was supposed to be here by Christmas, but it did not arrive. They sent us a postcard in early January saying that they would ship it within 30 days. They sent us a second postcard a few days ago again saying that they will ship it within 30 days.
Kate ordered some T-shirts from threadless. They shipped most of them the next day. Shipping on one was delayed by a week. Without any request from Kate (or indeed any thought of it), they apologized for the delay and gave her a $25 gift certificate.
I know which company we will do business with again.
Now we made it to 3/4 of the guest room. We made one nasty error that I'm not sure how we're going to correct. Oh well, we're amateurs.
Between last weekend and today, we've now wallpapered about 1/4 of the guest room. It looks really nice. Wallpapering is very much detail work.
I couldn't work on the project I was actually supposed to at work, so I spent some time going back through patches that I had posted and had never received reviews. Some of them dated back as far as August.
Code review is a recurring problem for Open vSwitch. The best reviews (that is, the ones that point out the most problems) tend to come from the developers I work most closely with, who have the most experience working on Open vSwitch. But all of those developers are busy all the time with their own work. I'm happy to take reviews from others, but those usually just amount to “Looks good” or “Acked-by: Bob Smith <email@example.com>” without any comments at all. On a nontrivial patch, I often feel that a review like that means that the patch wasn't examined carefully enough, and so I wait for another more substantive review.
I'm not sure what, if anything, can be done. We've joked from time to time about hiring someone just to review my patches. That's clearly not going to happen.
A discussion on the debian-project mailing list pointed out a histogram of Debian developers' ages. I find this result sad. I became a Debian developer when I was a teenager, but the histogram shows no Debian developers younger than 20 years old (other than a few less than 10 years old, which must be data errors). It must be an indication either that Debian is too difficult for young people to join (it is now a long process to become a Debian developer, rather than a simple and quick one) or that Debian is too irrelevant for young people to care.
A week ago Kate and I went to a cooking class together. Tonight we went to a children's cooking class. I think this must have been either very easy or very difficult to put together, since it involved no knives, no heat, and no meat. I did learn the basics of how to roll sushi, which I have never done before.
I've been spending my time in the office working on making Open vSwitch faster at flow setups. I think that I'm being effective, but I'm having a really hard time getting reliable measurements. Even with
ovs-benchmark rate, my best benchmarking tool for this purpose, I'm getting numbers that wander all over the map, from 25,000 connections per second to over 80,000 (!). I'm trying to isolate the reason or reasons why, but it's difficult.
I noticed a long time ago a sign along Alameda de Las Pulgas that had been modified by adding a picture of a lollipop. Tonight I noticed another sign modified the same way along Brittan Ave. The gnomes in Oakland get all the news coverage, but I want to know where the lollipops are coming from.
I spent some time today looking over options for new bikes. REI's Novara Transfer] is very close to what I'm looking for: fenders, rack, front and rear lights, 700C wheels. Its only flaw is the internally geared rear hub. Although I have nothing against internal gears per se, the weak point I've experienced on commuter bikes is the rear wheel: on my current commuter bike, I've gone through five wheels simply through heavy use. When a wheel fails, I don't want to have to find an exotic and possibly expensive internally geared hub wheel.
There doesn't seem to be anything that comes standard with exactly what I want. I think I'll have to buy a touring bike and add my own fenders and rack and lights. Maybe a Novara Randonee or Trek 520.
We discussed with some friends how local restaurants tend to be run by particular nationalities. For example, local donut shops tend to be run by Vietnamese, and according to my sister most Japanese restaurants are run by Koreans. Our friends pointed out one that we hadn't noticed: many local pizzerias are run by Brazilians. Sure enough, when we ordered a pizza later on, it was delivered by a woman in a Brazilian soccer jersey.
The rear wheel on my commuter bike finally broke a spoke, after a few weeks of my attempting to get it into proper shape from a severely out-of-true condition. Time to buy a new bike, I think: this one is falling apart all over.
An article at NPR that I found via slashdot talks about a universal formula for predicting lifespans:
It tells animals for example, that there's a universal limit to life, that though they come in different sizes, they have roughly a billion and a half heart beats; elephant hearts beat slowly, hummingbird hearts beat fast, but when your count is up, you are over.
This made me immediately think of Edith Nesbit's The Phoenix and the Carpet from 1904. I think I must have last read this about 20 years ago, but there's a passage reminiscent of the same idea:
“I am not sick,” replied the golden bird, with a gloomy shake of the head; “but I am getting old.”
“Why, you've hardly been hatched any time at all.”
“Time,” remarked the Phoenix, “is measured by heartbeats. I'm sure the palpitations I've had since I've known you are enough to blanch the feathers of any bird.”
“But I thought you lived 500 years,” said Robert, “and you've hardly begun this set of years. Think of all the time that's before you.”
“Time,” said the Phoenix, “is, as you are probably aware, merely a convenient fiction. There is no such thing as time. I have lived in these two months at a pace which generously counterbalances 500 years of life in the desert. I am old, I am weary. I feel as if I ought to lay my egg, and lay me down to my fiery sleep. But unless I'm careful I shall be hatched again instantly, and that is a misfortune which I really do not think I COULD endure…”
It's a good book and I recommend reading it, especially to any children you know.
Took a class tonight on use of knives in cooking at the San Carlos Adult Center just a few blocks from our house. Chef Steve taught me some things and confirmed that a lot of the techniques I already thought I knew were correct.
I think maybe I need a different chef's knife, though. The one I have doesn't balance as he said one should. At any rate, I need to get this one sharpened.
I just heard a radio ad for a car with the line “…and a vanity plate becomes redundant.” Are they really intending to say that the car makes you look vain?
Solar installation might have finished early today, but I was out when the crew left.
Martin Luther King, Jr. Day. A day off for me.
The solar installer crew arrived today. They started putting up panels on the roof and installed an electrical subpanel next to the house main panel. The job is supposed to be done Thursday.
Kate and I put up the wallpaper border. It was successful and fairly straightforward. I think maybe I will tackle putting up the whole roomful of wallpaper, maybe next weekend.
I went out and bought a bunch of supplies and tools for wallpapering. Tomorrow I will put up the wallpaper border in my office. If it goes well, maybe I will put up the wallpaper in the guest room later, too.
I'm over 60 pages into Le tour du monde en quatrevingts jours on my phone, reading it only in spare moments when I'm waiting for something to finish. I never realized how much time that actually is. It's much more interesting to spend it reading than just waiting.
I found out yesterday that one of my coworkers built a prizewinning maze-solving robot. Awesome.
Made pasties tonight for dinner with beet, parsnip, carrot, and meatball filling. Yum.
We picked up Dracula from the Nine Lives Foundation and brought him home. Since then, he's been hiding in a few places around the house. I guess it will take him a few days to feel comfortable.
I've been invited to give a talk about Open vSwitch at HackerDojo in Mountain View on March 20 at 6:00 pm. Let me know if there's anything you'd like me to cover.
I spent most of the day working on the house. I stripped the wallpaper border in the office, to get it ready to put up the new one that we've had around for months. I replaced a couple of light switches in the older part of the house with more modern-looking ones that match the rest of the switches in the house. I still have one pair to replace, but I managed to crack one of the cover plates I was using as a replacement, so that one will have to wait until I can get another. I also painted a switch cover plate in Cassidy's room pink, at her request.
Kate and Cassidy took me to the Nine Lives Foundation cat shelter in Redwood City to see three cats that they had looked at earlier in the week. We picked out “Dracula,” an eight-year-old black cat that likes to leave its tongue sticking out a little between its fangs. It needs to get a final vet check-up, then we'll get to take it home this week.
The commit that changed the world.
The cake commemorating the anniversary of the commit that changed the world.
The cake commemorating the anniversary of the cake commemorating the anniversary of the commit that changed the world.
I noticed when I was walking my bike through the front gate that, in lowest gear, one of the rear wheel spokes would ping! against the chain on each revolution. This means that the $200+ wheel that I bought last summer is now badly out of true. Going out of true seems to be endemic for wheels that actually get used. It's good that I've learned to true wheels.
The wild pecan rice I ordered, as I mentioned on Jan 6, arrived. I think I might've been had. The package contains a “pecan flavor packet.” I don't think that's the way it's supposed to work.
I noticed that the Android speech-to-text feature works with languages other than English. I played around with it for French for a while. Results on some randomly selected phrases from the Android user interface and the book I'm reading:
“boîte de réception”: perfect.
“nouveau message”: came out as “nouveaux messages,” which is understandable because they are homonyms.
“La Petite Sirène et autres contes”: In three tries, I got “la petite femme et pour ton compte”, “la petite sirène et pour ton compte étang” (?), and what I was aiming for.
“Je veux aller les trouver…”: In several tries I never got “veux,” always “vois” or “vaut.”
“Les habits neufs de l'empereur”: Never better than “Réserver une tomate.”
Either the feature, or my French accent, is awful.
Debian bug #9063 was reported against Autoconf, which I maintain for Debian, in 1997. It is now reported fixed. It only took 16 years…
I learned a couple of interesting things from Professional Cooking today. First, that there is a variety of rice called “wild pecan rice,” grown in Louisiana, with a nutty flavor. It sounds interesting so I ordered some. Second, that one can soak wheat berries overnight and then cook them like rice. I happen to have some around from a failed bread experiment, so I'm soaking them tonight.
Last year I installed a Schlage keypad deadlock on our front door. Because Home Depot screwed up, I had to replace it by a different one later. It's been very convenient, so today I installed another Schlage keypad deadlock lock on a second door. The locks work very well and I recommend them.
But… one of the default 4-digit codes on the first lock was the same as one of the default codes on the third lock. Therefore, I recommend that, if you buy one of these locks, you should program your own codes chosen randomly instead of using the factory defaults.
What made me so angry last night was TurboTax. Kate did our taxes last year with TurboTax. She has a confirmation email from them saying on what date our taxes due would be transferred from our account, with a complete copy of the tax forms. But the TurboTax people never did that, so we got a letter from the IRS yesterday demanding that we file. Kate called up the TurboTax line and they claim that they have no information on our taxes at all.
This is why I, when I did our taxes, always sent the forms by certified mail.
Whatever happens, I'm going to do my best to insist that Intuit pays the interest and penalties. No way it's our fault when they just lose all our information.
I am so angry tonight. I don't even want to talk about it.
Went back to work for the first time in a few days. It feels comfortable.
New year, new title. Last year.