Fixing front (v-)brake bike part (broken metal bit)

Hi blogosphere!

I fixed my bike today. Some quick documentation below.

I’ve not really had good front brakes in a year. The issue is this little metal piece, which broke. I wasn’t sure how to get a new one of. So I just sort of ziptie’d it together and it kinda worked, although I wore through brake pads real fast because

Turns out the solution is to just replace the entire v-brake assembly, and in fact you only have to take out two bolts to do so! Wow, so much easier than all my careful ziptie-ing and plier-ing open the metal piece.

whoo zipties
left: broken (See piece at top which rusted in half) right: good
Those squeeze in against the rim to brake

There were three settings, which kind of controlled gross-ly what the distance between the brakes was possible.


I adjusted the cable to the maximum I wanted them to be (allowing clearance for my rather wobbly rim, which is far from straight… I in fact had to tighten my spokes as far as they could go in some cases, and a few spokes have even broken off. But the rim is still clearly bent in places).

After that, I put the metal “springs” on. They provide restoring force, so that after you apply the brakes, the brakes open again by themselves. (They’re the long wire, bent and stuck behind a pin sticking out. I labelled it with an orange arrow in the pic below, with other arrow showing the direction the wire wants to go.


Finally, I used a little allen wrench to adjust the spacing between the brakes, so that it was roughly centered over the rim.

bike2Wow, it’s so much easier to understand how V-brakes work when you have reasonably working brakes! I had thought that centering the brakes and getting them to return properly was black magic, and resigned myself to having my brake pads constantly rubbing against the rim on one side or the other, in order to have a “trigger until full brake” margin I was comfortable with.

I took the spring off, but the set screw to the top left, controls how strongly the spring arm pushes in,

By adjusting the relative strength of the two sides, you can control what the brakes look like when they’re opened, so one side isn’t rubbing.

I discovered that you don’t just squish the bolt down onto the cable, as you might for a derpy electronics project board. This prevents frayed cables, which are extremely sharp and poky πŸ™

bike7I also discovered that it’s actually fairly easy to get the brake cable on and off the handlebars. There’s a hole underneath that makes this a lot easier than whatever I was doing.

This is an older picture from another time. Yes, my handbars are rotated so they’re upside down. The bolt at the center of the handlebar loosens sometimes, so the clamp loosens and then the handlebars start rotating…

Anyway, turns out there’s a whole drawerful of these bike parts at miters — not pictured here. Instead here’s two other drawers of parts… so many bike parts! They’re probably all from the era a decade ago when welding art bikes and making weird bikes was popular at MITERS.


also important news I got a bike bell! whee! πŸ˜€


Unfortunately I’m not really sure how it fits into my bike mittens scheme… I put it outside the mittens, since otherwise it’s muffled in the mittens. But I guess that means I will sometimes have to keep my right hand outside in case I need to ring the bell :0

Especially now, Boston is putting in a lot of really nice bike lanes which are on the *right* side of a line of parked cars. However this means that you have to watch out for bikes when getting out on the passenger side, which people aren’t used to. People will stand around with their coffee, or wait in the middle of the bike lane for their lyft… Also some of the bike lanes are on the sidewalks co-existing with pedestrians, and then you always have the toddler on the escape running across the bike lanes. It’s always an adventure biking in the city!

I probably lose 100 karma points every day I bike, weaken my heart from stress cancelling out my strengthening it with exercise. But I always feel nice when I stop for someone crossing the sidewalk and they give me a big smile.


Look at my v-brakes actually holding onto the brake cable!

bike12Later I had to go change the brake pads, since the ones that came with these brakes were pretty useless (not sure why, they looked fine). But all-in-all, it felt like a productive few hours… I also cleaned off my chain and re-greased it, fixed my gear changing issues, and ordered handlebar tape, since right now mine are bare metal. The previous ones were getting gross and sticky, so I gave up and threw them away.

(I couldn’t resist and also got one of those 16 in 1 tools hehe. I wanted my own set of bike levers since the MITERS ones occasionally disappear, and this set had some included, albeit metal ones).

Screenshot from 2018-12-09 10-18-08

Maybe if I keep fixing my bike with nice parts, I’ll eventually have upgraded the bike ^__^ I really want to get a new wheel, so the rims are less wobbly and the rear quick-lock works again. I also worry about the internal gear hub, I want to service it. It sounds a little … crunchy … sometimes, and I wonder if I need to oil it or something.


Wow that was a long picture heavy post. I played around with annotating the pictures using my touchscreen… Don’t know I’ll do that again, it was time-consuming.

Happy Holidays! I’ll likely be back soon, sooo many posts to write. This was just a fun detour.

The 3d printer test bunny, in knitted form!

Recently (by which I mean 1.5 years ago now) I saw the ubiquitious 3d printer bunny, but in knitted plushie form. SO COOL. CMU_knitted_bunny_closeupWhere was I? I was passing through the ACM Symposium on Computational Fabrication (on 12 July 2017), and saw a table full of plushies. (The symposium was held in the lobby of one of the MIT buildings, so it was easy to walk through and see cool things — I love that kind of format).

knitted_bunnyOf course, I immediately had to stop by and see what was going on. And yea, this person’s computer science research literally involves plushies. Here’s the abstract on their paper, which describes how to turn 3d meshes (such as the STL files for the 3d printer test bunny) into CNC knitting machine patterns.

Abstract: Automatic Machine Knitting of 3D Meshes

We present the first computational approach that can transform 3D meshes, created by traditional modeling programs, directly into instructions for a computer-controlled knitting machine. Knitting machines are able to robustly and repeatably form knitted 3D surfaces from yarn, but have many constraints on what they can fabricate. Given user-defined starting and ending points on an input mesh, our system incrementally builds a helix-free, quad-dominant mesh with uniform edge lengths, runs a tracing procedure over this mesh to generate a knitting path, and schedules the knitting instructions for this path in a way that is compatible with machine constraints. We demonstrate our approach on a wide range of 3D meshes.

Vidya Narayanan was kind enough to try to explain some of the algorithmic research to me. Here’s her poster from 2017:
Since then, her paper has been published, so you can read more details at her website. In particular, you can find a super cool 2 minute video here which explain the technical detail: Video

It talks a bit about whatever is going on in this image from the paper. (I think it’s cool to see how different the “flat” pattern in image 5 is from the “3d” filled plushie in the final image).
And here’s a snake on that table:


Why doesn’t my academic life involve both getting academic acclaim and making plushies for work? Even if I encountered research setbacks, I would still have a pile of frankenstein plushies to lie in as I sob quietly and eat ice cream, or throw plushies with wild abandon.

I think I’m in the wrong subfield of computer science…

Taking action: Textbanking / Phonebanking with Harvard Action Coalition (midterm elections)

Hello folks!

Midterms are coming up soon, so I decided to go check out how I could get involved. Here’s a brief write-up about it.

This past-past Wednesday (17th), I went to visit the Harvard Action Coalition’s weekly phonebanking drive. I got there pretty late, at 8pm (it’s a 6:30 to 8:30pm event). There I found a room of about ten people. It was a really informal setup, about evenly split gender-wise. There were two activities going on — phonebanking and text-banking. Both were done using a laptop / on the browser.
I did textbanking, since I wasn’t feeling up to phonebanking. The text-banking was an outreach effort by the environmental voters project. The motivation is that environmentalists apparently suck at voting (perhaps 40% of general population votes, and 20% of environmentalists vote, is the statistic I saw on either their website or an article in Mother Jones about them). This means that politicians are free to not care about the environment, or even if they do, they’re constrained by lack of constituent interest. (Indeed, recently I was looking up the representative for my district in Georgia, and the wikipedia page for him was quite extensive but had no section for either the environment nor women’s rights).

Thus, the EVP. I came in and entered my information into this lady’s laptop, which included my name, name as I wanted it to appear in the script, and phone number.

FAQ: I don’t see the votee’s number, and they don’t see mine, so there’s privacy in that way
FAQ: I did however enter my email in to the EVP textbanking system I’m honestly not sure what database this goes into, which is a little upsetting and scary. Oh well! I did use it for resetting my password anyway.
FAQ: If you care, you can get text and phone bank even if you’re not yet a US citizen. Which is, indeed, quite sketchy if you think about it… definitely possible for people in other countries to contribute to influencing elections. Though, to think of it, that’s always been the case — just throw money at it…

The introduction I was given was the above spiel, plus “These voters we’ve identified as not having voted recently, and also likely to be environmentalists based on their browsing habits and cookies”.

Wait WHAT when did I suddenly join the dark side? I hate advertising tracking. I once tried disabling cookies entirely but that breaks half the internet. I use multiple firefox profiles (also in part due to having 2 email accounts I use on a regular basis but don’t want to mix into the same profile/inbox), and more recently use Firefox’s multiple container extension (which is amazing! I wish I could adjust more of the behaviors, but it’s pretty great).
I have friends who don’t subscribe to cellphone plans to avoid tracking (although I’m personally a bit dubious that this does much in terms of privacy).

In fact, I’ve only ever thought of this sort of profiling in a negative sense. My strongest impression of it is finding out, back around two years ago when I strongly cared about women’s rights around abortion, about geofencing. Essentially, you can target advertisements at specific geographic locations. In other words, anti-abortion groups can pay to send ads to women checking their phones at an abortion clinic, ads for sites with misleading and false statements about the dangers of abortion.

This REALLY ANNOYED ME. As someone working in CS and engineering circles, not hearing conversations about this really annoys me. (I’m really trying to downgrade my emotions to being annoyed and not angry and frustrated).

On a side topic — there’s a lot of talk about mandatory ethics classes, and in my machine learning and AI courses at Harvard there has always been a lecture devoted to ethics. The attendance is depressing, actually, and keeps covering content I’ve already heard. I’d rather have a more hands-on project, where we actually code something, or business-school-like get scripts to play-act an actual ethics scenario. Well, anyway, I’m not sure there’s really a satisfactory way to cover ethics in a lecture like that. (I met someone at Harvard who in fact was majoring in bioethics, as a field!).
I still just remeber showing up to ML lecture last semster, on the midterm day suddenly the lecture room was overflowing. Maybe 25% more people showed up than on regular lecture days. Then the next lecture was the ethics lecture… about 50% of people showed up. From overflowing to more than half the seats are empty…

Okay, where was I? Text banking. So, I am extremely dubious about the idea in general. (and where do the phone numbers come from?). I imagine some monetary transaction involved, so in being involved, I am supporting this whole privacy invading industry.

Anyway, after signing up and confirming on my phone, the rest of it happened in the browser on my laptop (though it works entirely on the phone as well). I literally just clicked send fifty times, and then the system would stop and let me respond to anyone who texted me back. If it was the wrong number, I had a dropdown response saying “sorry we’ll take you off the list” to text back, and then also marked in the system “wrong number”. There was a lof of ignoring of messages back — if someone said they were driving, or called back, or messaged back saying “I LOVE ORANGE FASCISTS” or something, then I just ignored them. (although it was a bit sad that when I accidentally switched my name to something unambiguously female, I started getting a few “b*tch*s*” in there too…

Then another fifty, and another fifty, and then the systems locks you out at 8:30pm.

After that, I listened in on phonebanking (shared earphones with this other lady). She was also phonebanking for the first time. It felt quite stressful, there’s a timer on the screen, and at some irregular interval a beep will sound and then on your phone you’re connected to the caller and start right away. There’s a script, and you have to click “yes” or “no” in the *middle* of the conversation to keep going on the script. At the end you can click “wrong number” or whatnot, and then the timer starts again.

One thing that confuses me is that these phonebanking systems always tell me that they’re really just trying to get out the vote of people who are already likely to vote for our candidate (in this case, Texas’s Betos), but only about 1/4 of the people seem to fall in this category… I’m not sure if people making these databases are just inept or what. It all seems quite disorganized and opaque.
So anyway, there were a few wrong numbers, one “that’s my relative, and he’s out volunteering for cruz” “ah okay, we’ll mark him down as a strong cruz then” XD;

And the last two were classic. The lady was like “I want to end this on a good note” and the potential last call turned out to be this angry person who was like “I’ll never vote for any politican who calls people’s homes like this” or was a Cruz supporter or something. So we dialed again, and the last call — it was so great. The lady was like “Yes, yes I’m voting for Betos! And my mother is 88 and I’m taking her to the polls and we’re both going to vote early. I’m so happy that you’re volutneering for the Betos campaign, I can’t volunteer myself, but I’m happy that you’re doing so”.

And that was my experience of spending an hour Taking Action!

Some other thoughts:
On one of my podcasts (I’m addicted, I think, I listen to them to keep from being too unhappy because I’m thinking too much), in response to a question about “does it really do any good to donate money in the last 3 weeks before an election”, the politician said “you know, we try to run these campaigns all year long, but voters don’t really start paying attention until a week or two before the election.”

SO TRUE I wasn’t following politics at all until just recently. I’m also in the midst of some fiasco about my absentee ballot… It was really great to be able to send in my scanned form via email. But apparently they managed to read their own form wrong and sent it to my registered address instead of my mailing address. But I asked my parents and they never got the ballot either. So then I had to get a form notarized (protip Harvard has free notary services for students — oh and free envelopes and stamps for registering to vote!) saying the ballot was lost. Hopefully I get my ballot back in time for me to mail it in again (I’ll probably send it back via tracked mail…).


(update a week later: my ballot arrived! It took 5 business days… thanks university mail sorting. My county has a really responsive phone line and also email, they were super nice).

But! On the other hand, I was looking up more details about my ballot. I learned that my county, as of half a decade ago, was one of a handful of majority-minority counties in Georgia, which means that the majority of residents were non-white. In fact we narrowly voted for Hillary Clinton in 2016. On the other hand, my district includes a large part of another county that voted by nearly 60 percentage points for Trump…

Anyway, the person running up against the 20-year incumbent Republican is this professor lady from Georgia State University! So cool. She’s another of the “yea well you all are fking this up, seriously, I guess I’ll have to get my hands dirty” sleeve-rolled-up women who are joining running for office in record numbers after Trump.
I can only hope that this means that the democratic process is still in order, and that fascism hasn’t somehow taken over the United States of America. If I stop and think about it, some days I’m confused why more people aren’t banding together to oust Trump from office. I’m 100% sure even more of a majority of the United States population dislikes Trump.

Oh well, it’s bad for my mental health to get too swept up in events. So I’ll just post this blog post and leave it at that.

In summary — yes, your phonebanking and donations are important right now, since people are starting to pay attention. If you want to know what it’s like, feel free to ask in the comments, or reach out to your local groups — it’s a lot better in person, the phonebanking systems are really confusing if you’re just joining by yourself as a stranger.

(And yes, I think Kavanaugh being confirmed despite probably being a sexual assaulter is all kinds of f*cked up.)

Happy early halloween!

firefox error “file not found” when opening new (container) tab -> just hit ctrl-r

Today I started getting this weird error

File not found

Firefox can’t find the file at jar:file:///usr/lib/firefox/browser/features/!/chrome/content/prerendered/en-US/activity-stream.html.

When opening a new multi-account container tab. Then, after typing in an address and hitting enter, sometimes the tab would just hang forever, not loading or even not

Turns out if you refresh the page by hitting “ctrl-r” at this point, the tab will then load correctly. (The tab may otherwise be unresponsive to e.g. shortcuts “ctrl-l” or “alt-d” to go to address bar)

Not sure what the issue is, but I’m glad the workaround is easy.

Firefox 62.0.3 (64-bit)
Ubuntu 18.04.1

Actively countering unconscious bias

tl;dr I’m pro-actively consuming more media featuring women, e.g. by going through lists like this on wikipedia: list of 21st century women by occupation

Lately I’ve been thinking* about how to identify what might be contributing to my “unconscious” biases, and actively counteracting them. The idea is to track what sort of daily input we’re consuming — as a silly example, if we almost always encounter bulldogs as aggressive dangerous dogs, then when we see a bulldog we’ll assume it’s aggressive by default.

* Due to another conversation, saved for another blog post, about concrete tips for diversifying applicant pools. Many of my friends are now in hiring positions, and facing frustrations with working without support in their companies, even from the Human Resources department, on how to diversify the applicant pool even, not even the company itself.

In the past I’ve thought about creating machine learning algorithms to identify the sort of consistent image I see on, for instance, youtube of or other sites, where techno seems to be accompanied by scantily clad women (or just closeups of their butts or their busts or feet or whatever).Β  For instance, doing some sort of gender swap in with hot pics of men instead.

However, an even simpler thing to do, is simply to tally the number of hours I spend consuming media, both well-intentioned media and not, which doesn’t counteract the consistent image I get day-to-day of not seeing women in positions of power, importance, and influence.

For instance, on average I likely spend 10+ hours a week nowadays listening to podcasts, of which maybe 20% is narrated by a woman.Β  I have female peers, but I don’t interact often at all with women in positions of power / senior women.

As a result, I’d like to consume media, not specifically about women, but authored by women. Women founders, giving talks about how they created their companies; women CEOs, talking about making billion dollar decisions; women keynote speakers, and other ordinary forms of everyday media (well, ordinary to me).

I’m actually having a hard time finding a “stream” or pre-made mix of such material. But I think I’ll start out by finding lists of movies.Β  I looked through them, and now I’m making a prioritizing of movies to watch:


  • Ocean’s 8
  • Legally Blonde
  • Suffragette (film)
  • Hidden Figures
  • Crazy Rich Asians
  • Star Wars: The Last Jedi
  • Sicario (2015)
  • Erin Brockovich (2000)
  • Hunger Games (#2, #3)
  • Flashdance (1983)
  • Lady Bird
  • Gone girl
  • Nothing But The Truth


  • Mad Max: Fury Road (2015)
  • The Avengers
  • Atomic Blonde
  • Ghost in the Shell
  • Star Wars: The Force Awakens
  • Wonder Woman
  • The Sound of Music
  • Hunger Games (#1)
  • Kill Bill



  • Kiki’s Delivery Service
  • Nausicaa
  • Princess Mononoke


  • Jane Austen: Gone with the Wind
  • Pride and Prejudice

Eh? TV series

  • The Great Jang-GeumΒ  (TV series.. though it’s set in those old palatial times)


Well, those were a really partial and unordered list of movies to watch. What I really want to find nowadays are online videos (talks) and especially podcasts, but it’s hard to find ones that don’t focus at all on the fact that they’re women…. A perfectly fine thing, just not what I’m looking for. I don’t need to be any more sensitized; I actively work on being de-sensitized. I just want to counter my unconscious bias by explicitly feeding myself a better “diet” of media consumption.

In the meantime, back to learning about the OpenAI gym, POMDPs, numerical methods, all that jazz.


Updates (further sources I found) 17 Oct 2018:

On Impurity, by J. Seale [for little red sailboat aka Olde Indie]

i emailed out to a few lists “selling” my sailboat for the cost of a poem. The sailboat found a happy new home with Alex H, a MITERS member & Hannah & their baby. I did get another poem though, by someone who enjoyed the prompt, and found it again in my inbox just now:

J. Seale
On Impurity

True voyages are never maiden nor the hands that helm them
Fearful of falling afoul of that form.
Sometimes joyful but always impure the sea is impervious,
Gently hugging the shores it meets,
Lying spread betwixt them and a comingled firmament,
Then mounting and roaring in the face of rocks and spitting gods
in the same unconcerned coupling that brought about the first cell’s split.

In a permanent embrace that stays true only to its indifference,
disrespected creed, code, race, gender are all ignored in favor of
the same militaristic contract known to voyagers across millennia
with its blue-black ink of clicks and luffs
as a pledge to the unknown,
possibly beautiful and possibly vile,
signed each day in whatever bodily issue
might be demanded as partial payment
with trembling hand lashed to the tiller if so bidden.

On pain of death all who greet the cold wind from the rail
with digits raised on both hands
in so doing leave innocence on the dock
and instead thereby pledge to sport this same death as needed
while waking and dreaming, on hand and on brow:
As her breed I will respect the intricacies of the sea.

– For Nancy Ouyang, September 2017

Trader Joe’s $5 Mini Potted Roses — keeping them alive and blooming for months

I recently (over the last 2 years? wow time flies) discovered that you can keep the Trader Joe’s $5 mini roses alive for months.


I killed my first (overenthusiastic-buying-spree) batch of 4 potted roses by over-watering and not knowing what spider mites are. By the time I decided to look up whether they were a problem, the plants were pretty much goners — there were spider webs on the plants, which is a sign of major infestation. Despite my best efforts to soap them down, they slowly died.

I learned from that experience. This time, I took them out of the pot they came in right away, and put them in bigger pots so their roots could grow and the water could drain. When I first took them out of the pots, the roots were super bunched up.

I also freaked out and thought that the normal fuzz on the plants was a mildew infestation, and cut off all the flowers buds! I’d read that it was far better to prune the roses (they can grow back from twigs) and to not treat them too delicately. Fortunately the rose sprouted more flowers in a few weeks.

very normal fuzziness
very normal fuzziness


The first thing to do is to re-pot the roses in a bigger pot, and put a tray underneath so that the water can drain out — then, when you water, make sure to empty out the water and not let the roots rot in water.

The re-potting procedure is simple. Fill the new pot about 1/3 full. Tilt the old pot sideways, then shake it gently / tape the bottom until the plant slides out. Then you can kind of muss up the bottom to “de-compact the soil / root ball”. Put the rose in and gently sprinkle in soil to fill the sides, then gently push on the soil with your fingertips. Fill in a bit more soil. Finally, put some more soil until the top of the soil is ~3 cm from the top of the pot — this is so there’s enough space to water the roses. (these are all rules-of-thumb, adjust according to what seems reasonable for the plant).

Another important thing was to step up the size of the pots. It got kinda expensive, and I kept running out of soil. Recently though, I left for 2 weeks and put two of my roses in bigger pots and left one in a smaller pot. The two plants are noticeably bigger then the other one, and the small one had a little spider mite infestation (not bad at all).






From a few days ago.

(I also started growing some succulents — including some from seed! but that’s for another post)

Pruning and Dead-heading

An important thing to do, in terms of warding off insect infestations and diseases, is to keep the center of the rose fairly airy — no crossing branches, and the branches all facing mostly outward. When I first got the roses, I (somewhat aggressively) pruned them. Keep in mind that roses can sometimes grow from just shoots planted in the ground.

The pruning procedure is simple, cut each shoot right above a 5-leaf stem facing outward (well, about 3 cm above it). A new stem will grow from the “bud eye” above that stem — a little bump in the stem. I just use scissors.

You do the same for flowers that have started to wilt, so that they put their energy into more flowers.


At first, since it was winter, I bought special “full spectrum” lightbulbs to encourage them to keep blooming (Interestingly, all the sources online about which “temperature” of lamp to buy was full of anecdotal recommendations on marijuana growing forums). I definitely think it helped them grow. They were $15 on four “ALZO 45W Full Spectrum CFL Light Bulb 5500K, 2800 Lumens, Daylight White Light” — they plugged into standard sockets but are a lot longer, so they stuck out of the $10 target lamp I bought. I cut up some folders to shade people from the lamps.



However, eventually they still stopped blooming even though the days were getting longer. Eventually, I decided to get some fertilizer. I spent “Miracle-Gro Rose Plant Food, 1.5-Pounds (Rose Fertilizer)”$7 on ebay, though I’ve since seen them in hardware stores and Target and other places everywhere, probably for cheaper. It wasn’t immediate, but the roses really did get a lot happier and start blooming again in 2 to 4 weeks. I just got a gallon milk jug and mixed it with water — the fertilizer is applied every 2 weeks.


I also bought actual insecticide to spray the roses to kill spider mites, and I’ve just got a bottle always at the ready now. I used to just use dish detergent and water, but after 3 or 4 sprays (over the course of 3 or 4 months), the roses started looking really sad. So I got $10 of “Safer Brand 5118 Insect Killing Soap – 16-Ounce Concentrate”.

I’ve been very bad about it, but you’re supposed to re-spray the insecticide after a week, since that’s when the eggs hatch. But make sure to wash the insecticide off the leaves in-between. I also considered placing towels under the leaves when I spray, to get less of the insecticide in the soil. But I decided it might be better to ensure that all the mites, including some that might be crawling around on the soil, got killed.


I recommend pouring close to the soil — what happens is that the soil will compact over time.

Flowers on water

A neat thing you can do is fill a small container with ~3 cm of water and float the rose flowers you cut off in it. They’ll last a surprisingly long time — days, maybe a week.



Sterilizing potting soil in the oven

Recently I bought some potting soil from a hardware store. When I opened it, I discovered that there were small insects (perhaps fruit gnats?) in the soil. Since I was already having problems with spider mites (grr) on my indoor roses,

roseI decided to sterilize the soil.

It turns out to be very easy, although it requires a bit of patience. Essentially, you put the soil on a cookie tray (probably on aluminum foil). You moisten the soil (enough to be damp to the touch but not runny or squishy), then cover the tray with aluminum foil. As the soil heats, the steam from the water sterilizes the soil. When you open the aluminum foil (carefully away from you!), steam should come out. If it doesn’t, then the soil hasn’t been sterilized.

people kept asking me if these were brownies

The internet say maybe 1.5 or 2 hours was enough, but I found that my oven always took something closer to 4 or 5 hours to steam the soil… :/ 180F I think is the max the internet recommends (something about releasing toxins at higher temperatures).


It’s also possible to microwave the soil in a ziplock bag with the top open for 2 or 3 minutes, or alternatively in a tupperware with a few holes in the lid for 1 or 2 minutes. I think I will definitely try this next time — the oven took HOURS.

Add Extra Hard Drive using a CD ROM Caddy (3rd drive in Thinkpad W530!)

I’m currently using a Thinkpad W530. It came with a 512GBΒ  spinning disk hard drive, which I augmented with a 256 GB solid state drive in my mSATA slot.

Recently I decided I wanted even more space. How to add yet another hard drive to my laptop? Answer: using a “caddy” adapter that slots into where the CD drive is!

Get a normal sized (2.5”) hard drive, plop it into the caddy adapter (~$10), and stick it in your laptop where the CD drive used to be.

The caddy is *really* easy to take out on the thinkpad. No screws are involved in taking out the CD drive or putting in the new caddy — just two sliding buttons. Slide the “lock-unlock” tab and then push on the bigger tab, and the CD drive should pop out.

cd_drive_buttons_w530The one thing I struggled with was how far in to to push the hard disk into the caddy. I did need a screwdriver as a pushing tool here, and in the end the strategy was to “wiggle” the drive back and forth, by pushing on the left side with the screwdriver, then the right, and so on until it was almost flush (can barely see the connector). This should leave an opening on the back end about a finger-width wide. I filled this with a bit of foam.

cd_drive_foam_w530When the drive is pushed in far enough, there are four screws which can now be screwed through all the way in the caddy into the hard drive.

Below: one of the screws going from the caddy into the matching hole in the SSD.

cd_drive_screw_w530Below, two of the four screws that go through the caddy.

cd_drive_unscrewed_w530The screws should screw all the way down, when the hard drive is at the proper place in the caddy (holes should line up).

cd_drive_screwed_in_w530 Finally, my host is Windows 10, so I just opened “disk management”, right clicked on the new drive (if it doesn’t show up, in my case it was because I hadn’t properly pushed in the SSD all the way into the caddy), then add partition or somesuch — clickΒ  through the defaults (use format NTFS) and voila new drive.



  • “SSD Hard Drive Caddy Tray Replacement for Lenovo Thinkpad” Β  for ~$10 on amazon prime.
  • “Silicon Power 512GB SSD 2.5″ 7mm (0.28″) Internal Solid State Drive”, for ~$100 on amazon prime.
  • “Samsung 256gb SSD MSATA” for ~$70 on ebay.
  • Lenovo W530 for $515 ($500 + $15 shipping) on ebay (Yes, it always says “last one available”, ignore that)

Bulk adding videos to youtube playlist (well, at least adding them faster)

I’ve occasionally wanted to add a lot of videos at once to a youtube playlist.

Usually, this is super annoying since it takes a bunch of mouse presses to just added one video, and you can’t even used keyboard shortcuts (like hitting TAB and then enter).

Add videos -> URL -> enter URL -> Add video.

Repeat for each video, and every single one of those requires you to move your mouse around. You have to wait a bit each time too as the page reloads with your new video on it.

I found a shortcut so that it’s annoying, but slightly less annoying. In this method, you open the modal to add a video, then instead of opening and closing the modal, you can just copy-paste-click to add all your videos. Specifically, this adds them to your “watch later” list. Then you can go to your watch later playlist, click “add all to playlist”, and add them to your desired playlist.

A bit convoluted to explain, but really easy in practice, and so much faster than the old process.

Open up the playlist editor as usual, then entire a URL. Click the “clock” icon.

youtube-1The “clock” should change into a “check mark”. Then you can paste in the next URL (without having to exit the modal) and proceed to add all videos.

youtube-2Finally, go to your “watch later” playlist


Note: If your “watch later” list already has a bunch of videos that you want to keep,

  • Β  you can create a temporary playlist “temp playlist”.
  • Then on your “watch later” list, click the three dots, and add all of the existing videos to the new “temp playlist”.
  • Then, go to edit the “temp playlist” and click the three dots, then click `add all to` and un-check the `watch later` playlist. this will remove the videos from your `Watch Later` playlist

youtube-4After you are done bulk-adding videos to your other playlist (say `cool playlist`), you can uncheck playlist `Watch later` from “add all to” list. This’ll remove the new videos of your list from the `Watch Later` list and leave it empty. Finally, go back to your `temp playlist` and click “add all to” `Watch later`.

Wow, that was a mouthful, but hopefully it should make sense.