Yes, you can send a potato through the US mail

A while back, a friend mentioned to me that you could send potatoes through the mail. I was pretty skeptical at the time, but basic Internet research confirmed what they told me.

So a little bit later I had the opportunity to send them something, and decided to test it out. If I sent them a potato, and just a potato in the mail, would they get it? As a wannabe journalist/fact checker/Wikipedian, how could I not!


I took a raw potato, washed it, and wrote a short message with a marker.

Then I printed out an address label (because the potato wasn't large enough for me to handwrite it) and struggled with sticking it on. Clear tape didn't work, and neither did packaging tape. Duct tape to the rescue!

I went to the post office by SJSU, and the clerk there said it would take 2 days to be delivered. They also said they had been asked to mail plenty of other "weird things", and a potato wasn't that unusual. I got a receipt so I could "track the status of my potato". And someone in line commented that I should also be sending along some sour cream :P

And then I waited, tracking online. Two, three, four days passed, and it hadn't been delivered. The recipient was in San Jose, so it just needed to head to the sorting center and then go out for delivery.

That was when I lost hope, and deemed the potato lost. Some things just sound too good to be true.

...except a week after it was supposed to be delivered, it showed up! I assume it got lost at some point, but USPS is 👌 and got it to its destination.

BuzzFeed conveniently has a list of 20 other things that we can supposedly mail. What's next?

P.S.: PHP still considers "a potato" to be a valid time. MediaWiki won't let you though.

Comments on "User freedom: A love story"

SFScon18 - Molly de Blanc - User freedom: A love story.

This is one of the most relatable software freedom talks I've watched recently. As a college student trying to make friends, let alone find romantic partners, using non-free software is incredibly difficult to avoid.

Aside from online dating, which I have no experience with, I've pretty much done everything discussed in the video. I've definitely "Internet stalked" friends to learn more about them. And I've used screen sharing to be able to watch movies with a long-distance partner, which worked pretty well.

The biggest obstacle I tend to run into is mentioned in the talk - messaging apps. By virtue of nearly everyone being on Facebook already, Messenger is the most universal. SMS could also work, except our house has extremely spotty cell service, which makes engaging in a long conversation pretty impossible.

I've made efforts in the past to convert people to Signal, with mostly mixed results. Their desire to talk to you has to outweigh the friction of setting up a new app and checking it just to talk to you.

That's unlikely to happen unless they're already a good friend, and to reach that stage, you probably have to use some non-secure/proprietary messaging app first.

And speaking of proprietary algorithms, I think it's pretty creepy that Facebook knows who I'm crushing on, often before I've realized it myself. Since I don't post on Facebook anymore, I assume it's using data from Messenger conversations, but it's definitely doing something more advanced than volume or frequency of messages.

Molly de Blanc also wrote a follow-up post on their blog that I think is worth reading.

Yellowcard - Light Up The Sky

I haven't posted music on my blog since 2015 apparently. Time for some nostalgia and feelings. Also I may have spent too much time outside in the dark this week.

Also also, the newspaper I'm writing for, the Spartan Daily, does a semi-regular thing where editors have to pick their favorite songs that fit a certain theme. Since I'm not an editor, I think I'll start posting my picks here.

Eliminating PHP polyfills

The Symfony project has recently created a set of pure-PHP polyfills for both PHP extensions and newer language features. It allows developers to add requirements upon those functions or language additions without increasing the system requirements upon end users. For the most part, I think this is a good thing, and valuable to have. We've done similar things inside MediaWiki as well for CDB support, Memcached, and internationalization, just to name a few.

But the downside is that on platforms where it is possible to install the missing PHP extensions or upgrade PHP itself, we're shipping empty code. MediaWiki requires both the ctypes and mbstring PHP extensions, and our servers have those, so there's no use in deploying polyfills for those, because they'll never be used. In September, Reedy and I replaced the polyfills with "unpolyfills" that simply provide the correct package, so the polyfill is skipped by composer. That removed about 3,700 lines of code from what we're committing, reviewing, and deploying - a big win.

Last month I came across the same problem in Debian: #911832. The php-symfony-polyfill package was failing tests on the new PHP 7.3, and up for removal from the next stable release (Buster). On its own, the package isn't too important, but was a dependency of other important packages. In Debian, the polyfills are even more useless, since instead of depending upon e.g. php-symfony-polyfill-mbstring, the package could simply depend upon the native PHP extension, php-mbstring. In fact, there was already a system designed to implement those kinds of overrides. After looking at the dependencies, I uploaded a fixed version of php-webmozart-assert, filed bugs for two other packages. and provided patches for symfony. I also made a patch to the default overrides in pkg-php-tools, so that any future package that depends upon a symfony polyfill should now automatically depend upon the native PHP extension if necessary.

Ideally composer would support alternative requirements like ext-mbstring | php-symfony-polyfill-mbstring, but that's been declined by their developers. There's another issue that is somewhat related, but doesn't do much to reduce the installation of polyfills when unnecessary.

Kiwix in Debian, 2018 update

It's been a relatively productive year for the packaging of Kiwix, an offline Wikipedia reader, in Debian. My minimum expectations for the Buster release scheduled in mid-2019 are that all necessary C/C++ libraries to build the latest versions of Kiwix are in Debian.

  • libzim is at v4.0.4, and basically ready to go.
  • libkiwix is prepared for v3.0.3, but is waiting on the FTP masters to approve the new version that is in the NEW queue (fifth oldest binary-NEW package as of this post...). Once that is approved, I have the v3.1.1 upgrade prepared as well.
  • ctpp2 was a bit of a struggle, but is ready to go as well. However, it looks like the upstream website has vanished (it was inactive for years), so it's good that Kiwix is planning to replace ctpp2 in the future.

There are three main user facing packages that are in the pipeline right now:

  • zimwriterfs is waiting in the NEW queue. I'm hopeful that we can get this included in time for Debian Buster.
  • kiwix-tools is a bundle of command-line utilities, the most useful of which is kiwix-serve. There's one upstream issue relating to how JavaScript code is embedded, but the packaging prep work is basically done. It's blocked on the new libkiwix anyways.
  • kiwix-desktop or just "Kiwix" is the most interesting thing for typical users who want to read offline content, but it's probably the farthest away. I spent some time this week figuring out how to get it to compile, and mostly got it to work. Probably something to aim for the next Debian release. There's also work underway to provide it as a flatpak, which will benefit even more people.

I also created a "Kiwix team" in the Debian Package Tracker, so you can subscribe to different notifications for all of the Kiwix-related packages (though it might be spammy if you're not very interested in Debian internals).

And, thank you to the Kiwix developers for always being receptive to my bug reports and patches - and providing extra chocolate and stickers :-)


Human Rights Day 2018

This summer I participated in a study abroad trip where we went to Greece and Italy to report on the refugee crisis. In Catania, Sicily, they had a celebration for World Refugee Day that happened earlier in the week. One of the most memorable and overwhelming moments was when three refugees started reading the Universal Delcaration of Human Rights:

Watch on YouTube

Article I: All human beings are born free and equal in dignity and rights. They are endowed with reason and conscience and should act towards one another in a spirit of brotherhood.

Article III: Everyone has the right to life, liberty and the security of person.

Today is the 70th anniversary of the signing of the UDHR, and it seems more relevant and necessary now than ever.