Month: June 2020

  • sparsebundle-fuse: Another Implementation for Reading / Writing MacOS Sparsebundles on Linux

    There are already a sparsebundle implementation for Linux, but that’s read-only and only supports FUSE. This implementation is read / write, AND supports NBD (network block device) so the sparsebundle actually appears as a block device on the system, without you needing to loop mount the file in FUSE.

    There are some useful things that you can do with a sparsebundle, even on Linux. For example you can rsync an entire a file-system (say, XFS), without losing any metadata. Or you can abuse Google Drive by fuse mounting it and creating a full system on you Google Drive. (rootfs on Google Drive, anyone?)

    Get it here.

  • Making a Pittsburgh Map Coaster

    Inspired by Dr. Chris Harrison’s Laser-Cut Map project, and since I have a laser cutter myself (because why not), I decided to make my own Pittsburgh Map Coaster, and probably another one for Shanghai. I’ve been living in Pittsburgh for about 6 years now and there’s definitely a part inside me that belongs to Pittsburgh.

    Instead of starting directly from OpenStreetMaps, I decided to work with mapbox which takes data from OpenStreetMaps. The major reason behind this is that it provides a lot of styling options, which allows me to create a binary map without much effort.

    Pittsburgh Map in Binary Colors

    The original PNG is at a resolution of 8000×8000, but I don’t think the software that came along with it can handle that. So I will be supplying a 2000×2000 image to the laser cutter instead.

    Now this looks great. Time to engrave.

    Engrave away!

    The first attempt is at 40% power and 100mm/s speed.

    Laser Engraved Pittsburgh Map Take 1

    This looks great, but it engraves too deep and burnt the wood a little. So I’m lowering power to 30% and upping speed to 200mm/s. I also circular cut the product with 60% power and 10mm/s speed.

    Higher speed + lower power + circular cut
    Close up
    Used as a coaster
  • DIY $10 Slack Notification Light

    DIY $10 Slack Notification Light

    [youtube https://www.youtube.com/watch?v=BT3PeNsmyPA&w=560&h=315]

    While being isolated at home, my company uses Slack more heavily than ever, and that Slack chime is starting to get old. What if there’s a physical light that can notify me instead?

    I have a Smoko ambient light and a few of Digisparks lying around screaming “use me!”. So I started the project using a combination of these two.

    Digispark
    Smoko Ami Shrimp Sushi Ambient Light

    The circuit is really simple, just a NPN and a resistor. I used a NPN with a beta (use hFE on datasheet for a rough estimate of beta) of 40, and with a 1K resistor the NPN gives about 130mA to the LED. If you want to do this project too, change the R1 value to match your desired LED current.

    Schematics

    I have to make some “battery adapters” to provide power to the light:

    “Battery adapter” made with nickel strips
    Circuitry wrapped in heat-shrink

    On the software side, I don’t really want to reinvent the wheel and build a USB protocol from scratch, so I used code from blink(1) and adapted it for the Digispark.

    The rest is relatively easy: use the blink(1) client and set up a slack integration with IFTTT.

    Code:

    https://github.com/gyf304/usblight

  • Fixing a Clothing Rack during COVID-19 Lock-down

    Fixing a Clothing Rack during COVID-19 Lock-down

    My clothes hanging rack is broken for a bit of time has developed a crack. It’s obviously time to fix it. I already have a piece of aluminum pipe on hand that should serve as a clothes hanging pole. The only problem is that I don’t have the hardware to mount the pole to the wall, at least not easily during the COVID-19 lock-down.

    So, time to home-brew my own solution. First thing would be designing the fastening piece to attach to the wall. I measured the diameter of the pole and the diameter of the screws I have on hand, and designed this in OnShape. (model available here)

    The 3D Rendering of the Mounting Bracket
    Printed

    Works great. A pretty good job given the current circumstances.