Will >> Will's blog
Thu, 19 Feb 2015
This is belated because I've been busy.
2014 was crazy. It had a lot of epically lousy parts, but also had some good parts. Like 2013, I don't know what I did with my 2014 goals.
2013 involved a lot of projects. 2014 involved fewer.
- dennis: Lots of development on Dennis. It's really come along as a tool, though I wish I had more users since that would help flesh out issues.
- denise: A web front-end for dennis. I did some work on it, but it needs some more to remove some of the sharp edges.
- ernest: Everyone has a Bugizlla front-end--this is mine. I work on this with Mike, Ricky and Rehan. We made some solid improvements in 2014. Having said that, it's still pretty hacked-together and it's not generally useful to anyone else.
- denton: A bunch of us keep a log of what we've worked on day-to-day in Standup. Denton pulls the weekly data and throws it into an email. It doesn't sound like much, but it runs on a RHEL 5 system with an aged Python 2.6 and it's a pain in the ass to use. Given that, Denton has virtually no dependencies and sports its own (mildly terrible) template parser. It continues to be a mildly fun hobby project to tinker with periodically.
- elasticutils: I did a ton of work on ElasticUtils so that people could use it and get over the Elasticsearch 0.90 -> 1.x hump. After talking with Honza, Jannis, Erik and Rob at PyCon US 2014, we decided it wasn't worth keeping ElasticUtils going. Honza built elasticsearch-dsl does some of the things ElasticUtils does, but better. Several Django-focused shim libraries that sit on elasticsearch-dsl have appeared since then. In January 2015, I deprecated the project and no longer work on it.
- richard, steve and pyvideo: I did a bunch of work on these three right after PyCon US 2014 and then I totally burned out. Sheila took over admin of pyvideo. I tried to reduce my role to fixing architectural problems with richard and steve. I haven't spent much time on either, though. I'd like to spend more time on them, but now I'm having difficulties finding free time to spend. These projects are currently struggling.
I also spent time on a bunch of other projects:
- peep: I helped a bunch on peep adding support for github tarball urls which we use a lot for Input and SUMO. I'm now a maintainer and help out with project maintenance.
- django-ratelimit: James did an overhaul that I reviewed and helped with.
- Sandstone: Schalk built this project as a Bootstrap version of Mozilla Sandstone look and feel. I was thinking I'd use it, but it seriously lacked documentation so I helped work on that for a while.
- elasticsearch-dsl-py: I spent a portion of PyCon US 2014 sprints talking with Honza, Rob and Jannis about what I liked about ElasticUtils and we worked out parts of the elasticsearch-dsl-py API. Since then, I very occasionally comment on issues. I'd like to spend more time on this project, but Input and SUMO are still stuck on Elasticsearch 0.90, so I don't have anywhere to use it, yet.
2014 was interesting:
- The sec-champs group fizzled out. I continue to help manage Django security updates across the various Mozilla web-sites. (Security)
- I continue to work on l10n issues by improving the Dennis PO/POT linter. I also wrote Denise which anyone (particularly translators) can use without having to install Dennis. (L10N)
- I got around to writing a site-health dashboard for Input. This makes it much easier to spot issues after deployments and code changes. (IT)
- I wrote a smoketests test suite using Selenium for Input. This reduced goofs with feedback that we had periodically. (QA)
- We set up Fjord to work with Vagrant. The vagrant provisioning script is a bash shell script and isn't idempotent which is a bit of a drag occasionally. However, this system has made it a lot easier for new people to contribute to Fjord/Input development. L. Guruprasad helped a ton here. (Community building)
- I overhauled the feedback forms on Input making them more responsive, accessible and generally better. (UX/UI)
- I wrote a translation system for Input which does automated machine and human translation. It's currently using Gengo, but the system is modular so we could write modules for other translation companies. This translates incoming feedback in non-English languages allowing our analysis tools to operate on everything in English. (Software engineering)
- I started a Dashboards for Everyone project which coupled an API for querying feedback on Input with some examples using d3 for converting that code into dashboards. I thought this project would do a lot to alleviate peoples' needs for data, but as far as I can tell, it never caught on. (Software engineering)
- Early in 2014, I started working on a data retention policy for Input data. Over the course of 2014, this policy gelled and was implemented. (Privacy)
- In 2014, I committed to writing up project plans for the bigger Input projects and maintaining them in public. The thinking was that this lets other people follow along and correct missteps. Also we have a record of why we did certain things the way we did them. In reality, I don't think anyone really cared and/or looks at them. Still, it occasionally helps me, so that's probably good enough. (Project management)
Challenges for the year:
- I think I'm easier to work with than I was in previous years. I spent some time fixing how I did things. Over the course of 2014, the indications that I was hard to work with have mostly disappeared. It's entirely possible that's because I switched projects and work with different people now. As a side note, User Advocacy group at Mozilla is amazing to work with.
- I'm still working on too many things. I continued working on fixing this. I retired ElasticUtils which was taking a lot of time. I retired from working on playdoh, funfactory and friends. Still, there are projects I want to work on that I haven't/can't, so that bums me out.
- Two roommates is still crazy. It'll be like that for a while, I think.
- Wearing lots of hats on the Fjord/Input project really took a toll: project manager, architect, lead/solo developer, QA, deployer, ... I do it all. I learned I can do this, but that it's exhausting and I spent most of 2014 feeling overwhelmed and like I can't move fast enough. I really appreciate Ricky, Rehan and Mike helping with reviews and technical questions I have, else I would be sunk.
In 2015, I want to:
- Spend time working on pyvideo, richard, dennis and ernest and get them to better places.
- Overhaul my blog. Douglas is great, but the blog theme has issues and has since I last overhauled it in like the mid-2000s.
- Find more time to tinker. I had like zero tinker time in 2014--it was just too crazy. No tinker means I'm falling behind (or at least feeling like I'm falling behind).
- Blog more. I did a few impressive things. I wish I had blogged about them so that there's a record of me doing those things and also so that others could learn from my experiences. It's hard to find the time, though.
That's 2014 in a nutshell!
Wed, 24 Sep 2014
I've been cutting my own hair since like 1991 or so with two exceptions: a professional haircut before my wedding and one before my wife's sister's wedding.
Back in 1991, my parents bought me a set of Wahl clippers. Over the years, I broke two of the combs and a few of the extensions. Plus it has a crack down the side of the plastic body. At one point, I was cutting hair for a bunch of people on my dorm floor in college. It's seen a lot of use in 23 years.
However, a month ago, it started shorting the circuit. There's a loose wire or frayed something or something something. Between that and the crack down the side of the plastic body, I figured it's time to retire them and get a new set. The new set arrived today.
23 years is a long time. I have very few things that I've had for a long time. I bought my bicycle in 1992 or so. I have a clock radio I got in the mid-80s. I have a solar powered calculator from 1990 or so (TI-36). Everything else seems to fail within 5 years: blenders, toaster ovens, rice cookers, drills, computers, etc.
I'll miss those clippers. I hope the new ones last as long.
Fri, 20 Dec 2013
I had a pretty intense 2013, but overall I think it was a good year. I say that with full knowledge that I had 2013 goals, but I have no idea where I wrote them down. Oh, well.
First off, I started or helped start a lot of new projects this year:
- dennis: lint .po files for strings that will set production on fire and translates .po files to aid development (awesome)
- ernest: sprint coordination system (awesome)
- douglas: my complete overhaul of Pyblosxom (in development)
- tedmund: console based slide presentation system
- james: cli for deployment with chief
- eugene: comms system for Artemis simulation
- victor: system for sussing out version information for dependencies (failed project)
- fredrik: Flask template (obsolete)
- harold: rough feedback/support system (prototype)
- captain shove: the mighty new deployment system we'll switch to in 2014
- hy: dialect of Lisp that runs in Python vm
Fredrik is obsolete. Victor was a failed project. Captain Shove and Hy are doing well and other than helping to start them off, I haven't touched either in some time. I work on Dennis, Douglas and Ernest regularly. I'm thinking about Harold, but probably won't do anything with it for a while.
I also spent a ton of time working on existing projects:
- elasticutils and pyelasticsearch
- playdoh, playdoh-lib and funfactory
- richard which powers pyvideo.org
I'm probably missing a bunch there. It's hard to keep track of what one did on other peoples' projects.
I got a lot accomplished at work this year:
- I joined the sec-champs group and now help manage and coordinate security releases for Django and other software we use on our websites. (Security)
- I performed an audit on playdoh-lib and helped coordinate a bunch of updates including to Django 1.5. (Security)
- I helped work on Captain Shove which is a new deployment system to replace Chief. (IT)
- I worked on l10n issues, created dennis and rewrote the deployment scripts for Input and SUMO to eliminate production problems related to errors in translated strings. (L10N)
- I worked on community building as a mentor for SUMO and Input projects (more Input than SUMO) helping guide new contributors towards their first contributions. I should be doing a lot more on this front. One thing I did with Miro, Pyblosxom and other projects I've worked on is to keep track of people who have contributed to help keep them around. That sounds goofy, but it helps build lasting communities. (Community building)
- I helped fix some quality problems with the Kitsune and Fjord test suites and I'm working with Bob from QA on updating the Input tests. (QA)
- Implemented a more flexible filter/query system in Elasticutils and maintained it for the year. (Maintainer)
- Did a ton of work on SUMO and Input.
Challenges I worked on this year:
I keep getting dinged in performace reviews for being acerbic (that's probably the nicest word for it). I recognize that it sucks to work with acerbic people and regardless of how busy or stressed out they are.
I finally started working on it in earnest probably around August. I hope I'm more pleasant to work with. We'll see what people think.
Everyone above me in the Mozilla org chart left.
At the beginning of 2013, it was something like me -> James -> Mike -> Todd -> Gary.
Now it's me -> Ricky -> Wil -> Rick -> Harvey -> Jay.
I'm still working on SUMO and Input, but the Webdev group went away and the SUMO engineering team got shifted between groups. I'm feeling ok about it, but wonder if all that shifting makes it difficult for me to be noticed.
I'm working on too many things and thus many things are starving for attention. That's a simple sentence for a very complex situation which involves all sorts of thought-provoking questions like, "why?" and "why is it important for all things to be worked on?"
I stopped maintaining Pyblosxom. I stepped down from my work on MediaGoblin. I'm being more careful about what I commit to and try to commit to things that I feel that I'm the best fit for. I'm working on reducing context-switch time so I'll work on certain projects for longer periods of time, then put them down for longer periods of time. I'm trying to ask for help more often and spread the workload around and I'm trying to make helping me easier.
I need to spend more time on pyvideo.
This is an important project. It just keeps getting back-burnered and when I have time to work on it, crazy ass things come up which need to get fixed immediately.
For example, blip.tv ditched a bunch of Python conference accounts. We scrambled to download those videos and now we're hosting them. That took a ton of time.
Regardless, I started several code overhauls that I need to finish. That's blocking everything else and that sucks. I really need to get that done.
I have a new roommate and having two roommates is crazy. I don't even know what to do to alleviate this short of just get through the day one day at a time.
I need to take better care of myself.
This is a hard one. It's easy to push off me-focused things when there's so many things that need doing. I haven't a good answer here, yet, but maybe being more aware of it is helpful.
I got shingles. That sucked.
In 2014, I want to:
- Continue to get better at front-end development.
- Spend time working on pyvideo, richard, dennis and ernest and get them to better places.
- Figure out what to do with Elasticutils: Overhaul it to make it suck less? Pass it off to someone else to maintain? Figure out a list of 5 things to fix now and let it continue to be mediocre?
- Overhaul my blog. Douglas is coming along nicely. After I finish getting that working, I'll re-theme it. This is lower priority than the other things here, but it'd be nice to finally do this year.
- Work on empowering and enabling other people to do things rather than blocking them. This one is hard and tricky especially where my free time is unpredictable on account of roommates and obligations I have no control over.
It's been a busy year and there are things I should be doing better, but generally speaking, I think I did pretty ok.
Mon, 16 Apr 2012
I'm very excited about this. It's an open movie being built by friends of mine. The trailer is gorgeous. It's worth watching just to see what's possible with Free Software today.
Mon, 30 Jan 2012
Turned 36 over the weekend. It's weird---the number keeps getting bigger but I still feel like me. I'm somewhat bummed I haven't achieved more by now, but so it goes.
Sobering thought: This is the last square until 49.
My brother brought up this cake last night. I always liked how Ned posted pictures of his family's cakes. This is probably not a cake his family would have made, but so it goes:
It seems rude, but I find it really funny and I have a kid, so it's technically true.
Wed, 25 Jan 2012
Back in October of 2010, I created a standing desk. A friend of mine bought a Sears workbench and was using that and while it was pretty cool looking, I wanted something I could more easily nail things into. I've been meaning to write about this for a while.
I bought some two-by-fours and plywood and built most of it with that and some scraps of wood I had lying around.
Since then, I built a stool to go with it and bought a shelf thing from Ikea that goes to the right of it.
I think it took a day to build the standing desk, though I've tweaked it a bit since I originally built it. It took a day to build my stool. Total cost in parts for both pieces was definitely under $100.
Result is this:
This set up has lots of horizontal space, is set at the right height for me, lets me sit when I'm weary and stand when I'm not, and has some storage capacity so I'm not surrounded by stuff.
"Wait! What's up with all those computers?", you might ask. Well, the computer breakdown is like this:
- one work laptop
- one laptop that I use for Skype/Vidyo for work
- one laptop I use for home stuff
- one desktop I use for home stuff and games
- one desktop that's the current PCF Windows build box for Miro
- one Macbook that's a backup PCF OSX build box for Miro
Then I have:
- one settop computer I'm not using at all
- one dead laptop
The dead computers should go away. The PCF build boxes will eventually be re-homed, too.
And that's the state of my desk!
Tue, 30 Nov 2010
A week ago, my son was born. Since then, I've been doing newborn-management things and haven't been around to work on projects I maintain, manage or otherwise work on. I'm taking a few weeks off to get adjusted to being a new dad and also because it's the first time in a long time I've taken a few weeks off. Really truly off.
Miro development is going well. I'm out of the picture for a bit, but things are progressing well without me. Ben is managing the Miro 3.5.1 release and that should happen soon. Kaz landed metadata support (which is awesome) in master. Paul landed device syncing a couple of weeks ago in master. Geoff is doing a lot of awesome work cleaning up the code and working on streaming to other devices. Janet is migrating us from Eggplant to Sikuli and filling out other testing infrastructure. I'm sitting on an extensions infrastructure which needs some more work, but I think it could get finished up enough in time for Miro 4. All in all, it's been really busy in master and out of the chaos will come some really awesome improvements. A huge huge thank you to my colleagues at PCF and all the people in the Miro community that I work with to build a better Miro for letting me take some time off to get acquainted with my new son. I really appreciate this.
PyBlosxom is languishing a bit because I need to create some additional infrastructure for the project. I need to spend some time on this and then PyBlosxom will do much better. I did move the server that the PyBlosxom web-site is living on, so nothing's blocking infrastructure stuff except my free time. We've got a bunch of people who are working on fleshing out PyBlosxom 1.5, the documentation, tests, and plugins. It's been really great the last few months to have this level of activity and other than a lack of issue-tracker, I think the project is doing really well.
Python Miro Community has some problems right now specifically with dead file links. I need to work with the Miro Community devs to add some functionality I need to make it easier to automatically query and update metadata for all these videos. Managing 600+ videos by hand is impossible. I'm still sitting on videos from a handful of conferences. In the near future, I'd like to integrate Universal Subtitles which will make the videos accessible to a much much larger group of people.
GNOME Miro Community has more problems than Python Miro Community does because I've spent much less time with it. The focus is a little blurrier for GNOME Miro Community and I haven't put in the time to work it out, yet. I need to talk with Paul Cutler and work out how GNOME Miro Community fits into the rest of things and then I need to be more proactive with the project.
I apologize for leaving things in the state they're in, but I will return soon! If you need me, ping me by email.
Fri, 29 Oct 2010
I moved bluesock.org from Network Solutions to Gandi.net a couple of months ago. The next step was to move the DNS records from Peer1/ServerBeach to Gandi.net. I did that today.
I screwed up one of the records in the process and my brother let me know he was having some issues. I think it's all straightened out now, though, and that the current set of records are correct. However, if you're having problems with bluesock.org related domains, let me know.
The next step is to migrate the server from Peer1/ServerBeach where I pay $99 a month to Asheesh's VPS in Minnesota where I'll pay a _lot_ less and I'll be able to do IRC stuff which is forbidden on Peer1/ServerBeach. Soon! Very soon!
Tue, 19 Oct 2010
The last 7 days have been really great. I was thinking about this last night when it occurred to me that most of the entries on my blog as of late have been notes from dev conference calls for work. So I decided to write this up.
There have been several things that have made the last week great:
- Asheesh was hired as a contractor at PCF. I'm really psyched about this. Not just because I think Asheesh is my personal messiah and will solve all my non-family-life problems, but also because he's a great developer, a great person, and a great communicator. I have a lot to learn from him. Having him work in the PCF context will make that learning easier. Plus he's more likely to solve my non-family-life problems because they'll probably bug him, too. :)
- Morgan redid the PCF web-site and it's fantastic.
- Verizon FIOS finally came to my area and I switched. Prior to that, only Comcast was available for a reasonable broadband Internet connection and they kind of suck. It's interesting to note that the most friendly and most useful customer support person I talked to was the one I talked to after going through their ridiculous menu system and ending up at "leaving Comcast" (or whatever they call it). Now, I've got better Internet service now for a cheaper monthly cost and with better hardware. Plus the Verizon technician who came to do the install fixed up the side of my house. Seriously.
- My wife is 36 weeks pregnant. For reasons I don't want to go into, this is a big deal and it's really great.
- The church held a baby shower for us filled with wonderfulness, love and all kinds of good community stuff.
- I finished building my standing desk. I built it with studs and leftover wood from other projects. It was cheap ($30 or so), works great, and I really like it. I'll post pictures soon.
- I've almost finished building the changing table. I finished staining it and now I'm doing a few coats of polyurethane. It looks great so far. I hope it works out because it took a long time to build. I also hope we get a few more warm days because otherwise the polyurethane takes a long time to dry.
- My list of things to do before birthageddon is now trending towards smaller (yay!).
- Miro 3.5 is almost done and it's looking great and I'm now using the conversions feature fairly regularly. I'm hoping to do the Miro 3.5 release before the baby release, but ... they'll both come when they're ready.
- I'm scheduled to play D&D (actually, it's Pathfinder) on Thursday after a two or three month hiatus. I have no clue what's going on in the campaign, but I'm sure it'll be fun. Plus we'll get to use the d20 I bought a few months ago that's all sparkly and pretty.
And all this happened in the last week. It's been a good week.
Fri, 16 Jul 2010
We were running out of time to cover all the material, so I made the decision to survey the material, mention resources, and hope the participants would pick up enough that they could continue their learning on their own.
After looking at the evaluations, three things are clear:
- the workshop covered a ton of stuff and everyone got something out of it
- this is a tough workshop if the spectrum of experience ranges from beginner to experienced--it's probably better to have all the participants be beginners or all of them be experienced
- there's a lot of material missing regarding structuring policies that cover privacy, data availability, confidentiality, child safety, and other things like that--it's not enough to cover tools and how they can be useful, it's imperative to cover the policy context in which they can be reponsibly used
One thing that surprised me is that no one is really that interested in blogging. Blogging is such a rich form of communication and the interconnectedness of blogs creates a network of knowledge and experience--I must not have effectively communicated that.
Anyhow, the workshop is over. I'm glad I did it--I had a great time and it was a learning experience for me as well. Feel free to email me for a link to the workshop materials.