Today I launched the Larder API docs and the related management bits on the site. Yay! This was the most popular request on the roadmap, although this time around I’m under no illusions that it’ll make a big difference to signups. It’s just another feature that rounds out what we offer and shows we’re serious. If some people then use it to write clients or integrations or whatever, all the better.
I finished the #larder #api #docs today! It’s so fiddly to include all the code samples and stuff, but now it’s done. My next steps are to build the UI for developers to create and manage their client apps in Larder, and make sure the oauth “authorise” page is all styled nicely, then that’ll be done.
In other news, I added the #changemap search field autocomplete suggestions to the “add a new suggestion” form last week, so you have to click “no, my suggestion isn’t any of these” if there are matches. And since then we’ve had zero new suggestions. It definitely works, I tried it, but I guess nobody has a new idea that isn’t a duplicate. Success? 🤔
Not a lot was done today. I slept badly so gave myself permission to have an easy day. However, in the evening I managed to get some more done on the #larder #api docs I’m writing. Thankfully some of it can be copied from the Exist docs. There’s still a lot to do though. Literally a thankless task, but I want to write high quality docs so the barrier to people making a thing with the API is as low as it can be.
The new #exist weekly email went out this morning and though we didn’t hear a lot of feedback, two positive tweets will have to be the evidence that it was well received :)
This afternoon I started work on a new public page for Exist showing would-be users what data they can get from various services, and what they’ll have in total from the combination of those they use, hopefully making it clear not just which services we support but what they’ll get from each.
Did a bit more work porting rply to #go this afternoon. Now I’m into building the parser things are getting tricky. #Rply is also barely commented at all so it’s often hard to follow. Also because #python is dynamic, there are no types for anything! So I have to be the human type inferrer. It’s been a bit frustrating working out what type a variable is (or what a dictionary holds) when I can’t see the raw values going in.
This week I’ve been working on #exist’s new weekly email. I’m using a template based on the recent end of year one, which was well received, but have got it almost set up with all the weekly data I want to share. I just need to tweak the styling on some parts, like the correlations, but it should be ready by next week. Hope people enjoy it.
In other Exist news, we did okay converting many of our users who signed up right after Christmas, so we’re on a new maximum paid user count, and our average weekly income is quite high too. I think listing the yearly plan on the home page (previously we only mentioned the monthly cost) is helping drive some more yearly upgrades.
Fingers crossed we see another big spike in conversions from Back to Work listeners! Their trials should start ending today or tomorrow I think.
Remember I was going to try writing a language (either #braid, or something Braid-like) that compiles to #go? I decided that I should learn Go a bit more thoroughly before getting stuck into that, and I also wasn’t keen on using
yacc for the parsing stage — it’s really old, and has a weird syntax. So why not combine the two and start by porting
rply (rpython lex yacc, a modern implementation of those tools) to go? At first I thought this wouldn’t be a huge undertaking, and then of course I realised how little I knew. But tonight I got the lexer finished and working! It didn’t take too long at all. 🎉
I grappled with Go a little bit, but didn’t have huge problems. It’s mostly pointers I have to really think about. I agree with those who say the core language is easy to pick up, although I think people conflate (at least I did) “modern” with “high-level”. It’s really not high-level 😐 but that’s why we’re writing a language on top of it, right?
Maybe tomorrow I’ll start porting the parser.
@belle and I recently decided to shift our marketing angle somewhat: now, building our personal profiles is just as important as content for any of the products, because the more visible we are, the more that flows back to what we make. So in the spirit of being more visible, I went and did a blog post. That’s two this year already! Crazy. I wrote about why I own a phone with a hardware keyboard in 2017 (but you shouldn’t). #blogging #content
Overnight #exist got a mention on Gizmodo! Some kind of niche section called Field Guide. Well if we thought the Back to Work podcast helped, this has been nuts — over a hundred signups today, probably our biggest day since launch. I actually thought we were being targeted by spammers initially because of all the Hotmail signups 😆 if most of these people convert we’ll be doing so much better. I’m trying not to get too optimistic though.
Today I got some simple lexing set up using a package called
lexmachine. Next I’ll be learning to use
yacc so I can plug the resulting tokens into a parser. Small steps.
Today I did some overdue #support tickets instead though, and later tonight I set up macOS in a vm on my pc so I can build some #ios apps. I do have a macbook, but I’d rather be at my pc. I actually got that running with few issues, and I can build apps in xcode without it taking too long — performance seems decent. I’m going to have a go at learning #swift to build the #larder iOS app. I don’t really want to steal it from @belle, but she has enough on her plate already.
@belle and I had a chat over lunch about an idea I had for custom habit tracking in #Exist — essentially using a free text field to enter a list of tags, like “alcohol, piano, meditation”, or whatever you did. With some fiddling we could run correlations and generate graphs for each custom item, pretending that they’re real attributes. I’m still weighing it up but I think this would be easier and quicker than (finishing) adding manual tracking, with the huge benefit that users can track whatever they want. Of course there are downsides too, in that these aren’t real attributes so they’d not gain all the built-in benefits of being official attributes. Hmmm! More musing required.
This week l pretty much implemented #exist’s new location name attribute, based on Google’s reverse geocoding, plus some correlations for this. I’m holding off on deploying it for now, because we decided my focus for the next few months should be adding more to the #android app. I’ve added a new tab with some trend graphs in a rather hacky manner, and just need to keep working on these graphs, correlations, and a mood breakdown.
This week I’ve mostly been doing #exist #support. We’ve had a lot of new users, because we got a really nice mention on Back to Work, a podcast with Merlin Mann that seems pretty popular! With this has come a lot of extra emails to reply to, and a few bugs to follow up. I also did a bunch of #hellocode monthly reports to bring us up to date, with @belle taking over from now because she cares a lot more about doing them promptly.
I sent the #exist end of year report today! Yay! 🎉 thankfully, all the feedback was really positive, and a bunch of people made a point of saying they liked it, so I feel really good about that. A couple of people mentioned they’d like something in this vein more regularly, which we’d been thinking about. Time to look into replacing the weekly report with a new one, or maybe a monthly one (though the more regular the better I think).
Here’s an example report: https://twitter.com/joshpitzalis/status/816555042215903232
Finally finished the #exist year in review late this afternoon, and was going to send it out tonight but at the last minute we decided we needed to add an in-app notification about it too. I didn’t want to code that and send it out right before bed, so it’s delayed until tomorrow. I hope people appreciate it! I’ve put a lot of time into it now.
Happy new year littlelogs! Wishing you all the best to do some cool things in 2017.
I’ve nearly got the #exist end of year report finished, after quite a few design iterations, but I’m not going to rush. I can’t send it for at least 2 more days, for those who are negative UTC and to give everyone a chance to sync their data, but even if it takes a couple more days after that, I think it’ll still be relevant. Hoping everyone gets a kick out of it! I think it has some fun stats.
It’s been more like tropical weather here recently despite living on the southernmost point of mainland Australia, so I extended my Christmas break a few days — too hot and humid to work. Today was a bit better, though, so I got stuck into the #exist end of year report. It’s coming along nicely and I think I’ll have it done in time, if I can make it pretty enough…
I’ve been working on the #exist end of year report this week (but not too hard). Finally collected all the data I need to put it together, so next week I’ll be designing and endlessly retweaking the email layout to make it all look pretty. Decided it definitely needs to arrive in 2017, based on some stats I’ve added like a breakdown of how you spent the year, so I have at least until the 3rd (which is the 2nd for everywhere else in the world that’s behind).
Until then, happy Christmas or secular holiday times, littlelogs friends! I hope you have a good time with people you like, receive at least one good present, and eat some delicious things.
The last few days I’ve been working on a new design for #changemap. I was never quite satisfied with what I had, but I think the new version is quite an improvement. Nearly done. We’re up to about 85 mailing list signups now also.
Once that’s out of the way I’ve decided I’ll make a nice end of year report for #exist users. It doesn’t matter if it doesn’t ship quite on January 1 I don’t think, so I’ll try and get it done over the next few weeks but will be taking it a bit easier also.
Update on #changemap on betalist: around 30 waiting list signups in the first day (which will probably be the biggest). Not too bad given the minimal effort. Mostly smallish SaaS startups, based on some email domain browsing. Hopefully people who understand the value of paying for stuff!
I submitted #changemap to betalist.com a few weeks ago, after @kraahkan’s suggestion, something I’d be leery of ordinarily but decided was worth a try once. I didn’t pay to be fast tracked, but the whole thing didn’t take long and as of tonight it’s listed on the front page. Hoping it leads to lots of waiting list signups! We’ll see.
Got #exist’s “location name” attribute sorted on the dev server today, did some #support requests, and later released #larder for #android v1.0! Nice to have the stable version out there. Anecdotally it seems like most paying users are using the app, meaning maybe it seems more valuable to Android users right now, meaning we should get the iOS app out too so we can convert some more folks. Onwards and upwards.
Launched the new “day length” attribute for #exist today and added an in-app notification about it, updated our roadmap, etc. I’m not sure how useful it is in its current incarnation, but it was a quick win for more data, and if we focus more on exposing long-term trends in future, it’ll be appreciated.
Now working on adding a location name attribute via Google reverse geocoding. Once we can match raw lat/lng to a “locality”, as Google calls it, we can do some specific correlations based on the cities users visit. Stuff like “you have a better day when you’re in Melbourne”. That’ll be good.
The experiment with the #Larder github releases page went okay. We got maybe a dozen signups out of it, which isn’t bad given how low they’ve been in general. They’re still trickling in too so hopefully that’ll continue for a bit longer. And of course, hopefully many will convert.
This week will be back to #exist, doing some little bits and pieces. Today I started adding “day length” as an attribute, ie. hours of sunlight, which we can already grab from Dark Sky. That one should be easy and completed in the next few days. I also added a Google Maps map for location on the web dashboard.
I changed the flow for suspending accounts to make it a little more difficult, as many people suspend their accounts rather than deleting, but never come back. It costs us in server resources to keep their accounts up to date (we keep syncing their data as a courtesy, for when they return) so I’d rather fewer people did that.
Not sure what I’ll work on next, I have a few other little niceties to pick from.
Ugh. One of my hard drives died yesterday — thankfully the least important one but still a massive pain as, through boring upgrade history I won’t bore you with, it had the boot partition stuff on it. So Windows wouldn’t boot even though it was still installed elsewhere! Anyway, sorted that out, and had my first occasion to grab a backup from out of Backblaze for some things I lost. Very easy, recommended. Now I’m spending the next day or so downloading my music library from Google Music at a piddling speed, and after that I’ll download many gigs of Steam games all over again. Fun.
Today I created a page explaining the GitHub weekly release email feature of #larder, something I find nifty and I think more folks would want if they only knew about it. I’m going to attempt a Show HN later tonight (early morning in the US) to see if it gets some love, though I’m bracing for the inevitable crappy comments. If you see it on the New page give it a vote! 👍
After that it was more annoying work — some fiddly support tickets from last week, and a bunch of delinquent accounts to delete. We also got some annoying “advice” from a user. The downside of being open about our troubles (in this case, on the podcast) is that people will think it’s an invitation for them to tell you at length what you should do instead. So anyway, the afternoon wasn’t a super fun time. @belle and I had another chat about Exist in the evening, as we seem to do fairly regularly, to see if we can find a new direction that we both think is good. I think part of our problem these days is that neither of us thinks it’s very good any more, and it’s hard to sell something without any conviction 😐
Ups and downs I guess.
Today’s work got somewhat sidetracked by brunch with @belle, her dad and his partner — but also my car wouldn’t start, so after we got home from that (having had to walk, the indignity of it!) I waited around for the nice roadside assistance man to come check and replace my battery. All sorted now.
Later on I fixed some styling issues with the new #exist #android bits on older OS versions, and added imperial support to the graphs that I totally forgot. Pretty sure that’s everything now. Will probably release it early next week.
I think my work on #exist for #android is done, barring any bugs. I’ll keep testing it for the next few days, and also make sure that it works on some older android versions. You can see a screenshot here. I’m pleased with my progress! Although I don’t know if I write android apps “the right way”, I can get things working pretty quickly these days (with liberal use of stackoverflow). I finally understand how all the pieces go together.
I’m thinking some marketing efforts next. @belle has kicked off some #changemap #customerdevelopment which means hopefully soon we’ll know what other potential customers want from it — but until then, I’ll be doing Exist and Larder-related things.
Later I did two monthly reports for the #hellocode blog and even updated our numbers on some transparent startups site that added us recently. Not sure how useful that is for us, but I want to pitch changemap to the guy who makes it at some point, so I’m essentially doing it for the brownie points that I can hopefully redeem later 😉
Today I did some #support, then worked on the #exist #android app. I ended up forking the chart library I was using and fixing the alignment issue I had, which was thankfully pretty simple. I have the labels rendering the correct values now too, so I’m nearly done with the graphs. Next I’ll get the in-app activity feed sorted, then it’ll be deploy time.
Today I worked on adding more to the #exist #android app. I’ve got the 8-day graphs in there, looking similar to the web version and sliding open and closed just the same, but I’m not 100% convinced by this graph library. I’m not sure if I’ll fork it and fix my niggles, or keep looking. At this stage it seems easier to fix it than rewrite my code to use another.
Also tonight I finished off some birthday prep for @belle’s birthday, which is today (it’s just after midnight now). I learned I’m really really bad at tying knots in balloons 😄😢 and I’m sure all the noise I made gave it away. I forgot how loud they are. Anyway, happy birthday Belle! I hope in the next year we can make you some excellent #hellocode income and end this limbo.
This afternoon @belle and I did a new #hellocode podcast episode, which we haven’t done for many months. You can listen here. We check in on Exist, Changemap, and Larder, talk about continued income woes, and wonder what we’ll even do with poor old Exist.
Tonight to keep some progress happening on #exist, I worked on its #android app, updating the tab style and starting the work to add the 8-day graphs. I’ve made decent progress in a short period, so either it’ll be done soon, or I’ll keep adding some more stuff to it to match the web app.