Mondrian rewrite

10/29/17

I've deployed an in-progress rewrite of Mondrian. It's not up to snuff yet so I'm not pushing or promoting it anywhere. But it's live now. I needed a release. Been keeping it to myself for too long.

It's actually already more useful than the last one: fewer bugs and more functionality.

Preschooler Secure Password Technique

07/30/17

Working in the Bitcoin industry for a while my standards for security have gotten pretty strict. I have been generating my passwords on a permanently offline device and transcribe them by hand into a note pad which I keep in an undisclosed location. I don't store them anywhere else and manually input them into my computer every time.

Lately as I read more on Wikileaks my trust even in completely open source password generators like apg is starting to vanish. Nobody can really be trusted. At least, nobody who is competent enough to take advantage of you. That's where my kid comes in. Lately I have been asking him to generate my passwords for me.

He just thinks it's a game, which it sort of is. Our usual ground rules are as follows:

  • Before we start I mix the magnets thoroughly by shaking them in a bag.
  • We never say the characters out loud as he is putting them on the fridge. This is slowing down his learning the alphabet, but security comes at a cost.
  • The window in the kitchen is covered with a blanket the entire time.
  • Obviously, after we're done we take the magnets off the fridge.

I dub this pspt - the Preschooler Secure Password Technique. As of now it's completely open source and the best part is, it's software free (hence, backdoor free).

Mondy

07/07/17

In 2013 when I was 20 I took a CS class at Brown where we learned Racket and OCaml. At the same time I was reading Learn You A Haskell For Great Good (by reco from my dad). I have strong memories of trying to wrap my mind for the first time around concepts like recursion and functional programming. It was a great time of my life. I owe a lot to that class.

While I was taking that class I was also working on a project that had been in my head since the previous summer, which I spent interning at CloudMine. I had been working with vector graphics on their home page and got really interested in SVG and how difficult it was to compose good vector graphics for the web.

So I figured it would be fun to implement an SVG editor. This ended up lining up really well with the functional programming class at Brown and they both informed each other.

After working on it for a year in my spare time I got exhausted and open sourced it. Now, in retrospect, the code sucks. But back then it was the best code I had ever written. And the people looking didn't spend the time it would take to figure out that it sucks. So it got a lot of attention.

As it turns out the tool is not very useful - it's buggy and has extremely limited functionality. It also falls short when it comes to correctness, which is important for something like an SVG program. The novelty of it was enough to get a lot of articles around the net for a week or two, but traffic slowly died down to about 100 pageviews per day (which has been consistent for the last 3 years). As far as the internet is concerned, mondrian.io is a dead end domain.

I learned a lot from building it though. And the same month I open sourced I moved right on to the next thing, which turned out to be Cryptowatch.

After 2 years I sold that to Kraken and now I work for them, which is great. I love my job and I'm proud to see my creation ascend to a higher status than the last one. Many people use Cryptowatch every day and I get emails from them all the time telling me how much they like it. It's a good feeling.

I learned a lot from building that, too. And now I can't help but go back and look at Mondrian again, and when I do I notice that 3 years later I still don't see anything like what I was trying to build. For anyone wishing to compose vector graphics there's only a few options:

  1. Pay to use Illustrator
  2. Use Inkscape for free, which is cluttered and difficult to learn
  3. Use svg-edit or some other shit, which is even worse than Inkscape

Even with Illustrator I have a lot of issues with UX-wise. It's a very good piece of software all things considered but it's overkill for most use cases and it suffers from years of feature creep.

Basically, Illustrator is the Microsoft Word of vector graphics but nobody has built the Google Docs version. A simpler, web-based, free-to-use editor that fulfills the 20% of needs that matter 80% of the time. Add on some backend functionality and charge for that and you've got a lifestyle business (and possibly a very valuable piece of software).

I'm honestly surprised Google hasn't built it, and now I hope they still aren't because I am. I'm shifting my spare-time focus back to Mondrian. I've started an overhaul of the interface engine and corrected a lot of the "hard parts" college me skipped over the first time because they weren't fun to work on. I plan to deploy the new version sometime before the end of this summer, and pursue that as a software business farther out in the future. The new version will be closed source.

With each project I've had personal growth goals. With Mondrian #1, it was learning how to structure and deploy a serious web project. With Cryptowatch, it was learning how to build a proper backend with high reliablity and strong security. There was also the entire challenge of building a monthly subscription software business. Now with Mondrian #2 and all of that under my belt, my growth focus is software correctness and a more complex level of algorithmic programming. I bought some books and I'm determined to keep challenging myself.

When I dropped out of RISD and started a career in software to feed my newborn kid I had a feeling like I was giving up on being an artist. But now I think that was wrong. I have treated my projects as works of art and slaved over them as such. I feel like an artist after all.

Next Page