Basic Open Source Collaboration on Github

A couple of weeks ago I encouraged a college student to make his project open source and post it on Github (or Gitlab or Bitbucket or whatever). What had not occurred to me is that this person had never had to collaborate with other coders professionally or privately. He did not understand the implications or the process of pushing code to Github. The following is adapted from an email I wrote to this gent to explain the ins and outs, whys and wherefores of collaborating on Github.

Continue reading

Link Round-up: ICOs and Ponzi Schemes

Last week, the Brave browser company raised $35MM in funding through an ICO. Which leads to the very obvious question, “what the hell is an ICO?” And, as you dig deeper into this question, the follow-on question “what differentiates an ICO from a Ponzi scheme?” Let’s find out, shall we?

Continue reading

DevXCon 2017: Thoughts and Impressions

Hopefully you were able to attend DevXCon 2017 in person this year. If not, I hope the following acts as a tour guide to the speakers’ presentations. Please keep in mind that all of my reviews are reductive in various way; I am filtering these talks through my own experiences in the developer experience world. I am particularly engaged by talks dealing with community inclusivity and metrics. I am also only commenting on the talks I personally experienced which includes the keynotes and most of the talks in the Speakeasy track (which was my volunteer station this year).

Continue reading

Quick Tip: Little Snitch first-run

I finally got around to purchasing and installing Little Snitch today. I should have expected this, but upon first launch (after rebooting the computer) Little Snitch went crazy with the snitchin’. A couple of quick tips to make this go a little more smoothly:

  • You are going to have to choose to approve or disapprove many background processes, many of which request some pretty shady-sounding URLs. If you only approve them “Until Quit,” they will go into a list of “Temporary Approvals.” At this point, you can go through that list at your leisure, making the rules permanent, leaving them temporary, or denying them permanently as you see fit.
  • Although Little Snitch comes with reasonable defaults for Safari and Mail, it does not come with anything for Chrome or Firefox. If your web browser of choice is launched on startup, create the same rules for it as already exist for Safari; this will save you a lot of clicking. Additionally, Mail does not come pre-approved for ports 80 or 443. When it tries to render HTML messages, you will see popups. If you already are OK with HTML messages, might as well copy those rules (open port 80, 443) from Safari over to Mail as well.

Hopefully this saves you some time and clicking.

LVM, mdadm, and partitioning.

This is a mind-dump after an excruciatingly mind-numbing week.

Somehow, with a FreeDOS installer USB I managed to accidentally corrupt the LVM data on my RAID array. This thing has files on it that go as far back as 1994*, so I was reasonably upset about the loss. Fortunately the situation was resolved, but I wanted to leave some notes for the next time I have completely forgotten how LVM works with mdadm.

First, disks used in the mdadm array do not need a partition table. I remembered this and didn’t mess with the (functioning) raid array.

Second, LVM does not need a partition table when it is using an entire device. I forgot this, and went directly to “trying to restore a corrupted partition” instead of “trying to restore last-known-good LVM data as found in /etc/lvm/archive/”.

Using testdisk, gpart, etc is a BAD IDEA if your disk never had a partition to begin with. These tools will recognize that you have a file system on the disk, but they can’t figure out that it was an LVM-only construct. The result will be an unmountable, mis-sized, “partition does not start on a sector boundary” mess. As you can see from the answer to the question I posted on SuperUser, I actually had to zap the partitions I tried to create to be able to move forward.

Note: fdisk is for MBR, <2TB disks. parted is for GPT, >2TB disks.

* Even I am surprised by this! Apparently it is a Palm Pilot archive… that can probably be deleted, huh?

A Better Python strftime / strptime Table

I present two tables that reformat the Python strptime, strftime documentation. The first is a short table with the most useful directives, the second is a longer table with all of the directives. This is easier for me to scan than the native docs. Hopefully it will help others as well.

YEAR%Y4-digit1970, 1988, 2001, 2013
MONTH%mDecimal zero-padded01, 02, ..., 12
DAY%dDecimal zero-padded01, 02, ..., 31
HOUR%H24-hour clock, zero-padded00, 01, ..., 23
MINUTE%MDecimal zero-padded00, 01, ..., 59
SECOND%SDecimal zero-padded00, 01, ..., 59
TIMEZONE%zUTC offset(empty), +0000, -0400, +1030
ISO format%Y-%m-%dT%H:%M:%S%z

Continue reading

Good Old Disk Utility

If you have been sadly struggling with the new Apple Disk Utility software, I can confirm the instructions on this page work to restore the old Disk Utility. I can make no claims as to the reliability of running the old Disk Utility on El Cap, however.

speedtest-easy released!

Want to see if your ISP is providing the service they promised and don’t care about “scientific methodology?” Use speedtest-easy!
Continue reading

“Personal is not the same as important.”

This juxtaposition of two news stories struck me today:

Upgraded LIGO detectors spot gravitational waves.

With Quartz’s App, You Don’t Read the News. You Chat With It.

Continue reading

I did not invent Bitcoin

Despite LinkedIn’s recent claims, I am not the inventor of Bitcoin.  Continue reading