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.
A lot of screwing around this weekend, trying new IDEs because Komodo is now permanently borked. I think I’ve settled on PyCharm — it has a few niggles but has fixed some I had last time, so it’s good enough. And its code intelligence is quite good.
After settling in with PyCharm, I got notifications for #changemap all done. Users who comment or vote will be subscribed to that task by default (but can unsubscribe). That was my last feature for the changemap mvp. Time for it to have a rest.
Had a big chat tonight with @belle about #exist. Once again, we’re thinking of a (gradual) pivot to a more specific angle. I’m finally ready for it. I think this niche will give us well-defined requirements we can actually deliver on.
Added a basic search to #changemap today. Also had a few more people sign up for the waiting list today and the past few days — overall the reaction has been pretty positive, which makes me feel good about my hunch that this was a good idea 😁 I’ve had a few people mention that its use could be a lot broader than just “transparent businesses”, which is exciting.
Just trying to get a few more key features done this week, then back to Exist to get the manual tracking back-end complete, which I have neglected. It’s pretty much there, just needs testing to make sure it’s solid.
I got barely anything done today. Some days are just like that. (Probably won’t get much done tomorrow either, what with following the US election.) Tonight, though, I switched #Exist’s roadmap links over from Trello to #changemap, and did a tweet about it now it’s officially live for our users.
I went back through my git history tonight and it turns out my first #changemap commit was exactly one month ago, October 7. That seems pretty auspicious timing to release it! I got its live server set up this afternoon, and configured Let’s Encrypt for the SSL cert tonight — actually way less complicated than I expected. Very handy.
Thwarted this afternoon by various events but returned triumphant to #changemap development this evening and got our whole Trello board for #Exist imported, votes and comments and all. Did some fiddling with styling to make everything a little nicer to look at, and there may be a few more teeny things left, but it’s pretty much there. Sometime this week we’ll go live. 🤘
Tonight I made progress on importing a Trello board into #changemap using their API. I can currently grab lists, cards, and authors, but I’m hoping that by the end of the weekend I’ll also be able to import comments and votes, so our full Exist roadmap can be imported in its current state.
With real data in there, I can tell the UI doesn’t look quite as nice as I had hoped. I’m going to need to tweak that a bit so it’s easy to scan big lists of tasks.
Blergh, I slept really badly last night and was tired all day. But I rallied in the afternoon and finished off the last bits of user-facing #changemap — signup flow and profile pages. Users sign in via Google, so there’s no need to manage password resets or anything, but we still need to let them verify their info upon first signing up.
Now that’s all done, I’ll be importing Trello data for the #exist roadmap and testing that everything works nicely with real data — and then it might just be (beta) launch time! This whole process has gone quite quickly. The benefits of being a grizzled old developer and working with a stack you know well.
Tonight with some help from Linode I moved the #hellocode server (which has all the small things, like the hellocode.co domain, #littlelogs etc) from its legacy, memory-constrained Tokyo server to a shiny new one in Singapore with 4x the RAM (for the same price). Hopefully won’t have any more issues with out-of-memory errors now.
Today I spent the day on #changemap and got comment and vote adding and deleting done along with nailing down some styling. Inching closer to having it ready for our own use.
Ah, what the hell. I’m outing our next project for the sake of having a tag to track it. There’s not many of us here anyway so it’s not a big deal. So our new idea is called #changemap. It’s a tool for transparent businesses to manage their public product roadmaps and changelogs (yeah, hence the super-clever name). Mostly people seem to use Trello for this task at the moment, but they take suggestions via email, or UserVoice, or GitHub issues, or comments on a specific card — it’s a huge kludge because Trello isn’t made for this purpose. Changemap tries to rectify that by handling new suggestions, turning them into tasks that then move through the system, and the inevitable changelog of everything that gets completed. We’ll be using it for our own products for a while, then open it up to other businesses (that’s right, B2B baby) once it’s solid.
Got a lot done today on #manualtracking for #exist. The generic logic for turning a bunch of events per day into a single value (a total, or an average, or whatever) is all done. Next will be lots of testing for all the various event types, then I’ll add the new attributes we decided on. Once that’s all done, I guess it’ll be time to start working on the web interface for actual manual tracking. Making good progress 👍
Got some more #manualtracking stuff done for #exist today. Sorted out the shape of the metadata for all the current events, and picked out some new attributes we’ll add so there’s more to track manually. This includes some more affect measures, like energy levels, anxiety, etc. Hope people will dig that. Also adding a 1-10 pain scale attribute for some basic pain tracking for the chronic pain folks. A couple of people have asked for that (everyone who emails us these days always says “I can’t BELIEVE you haven’t added MY SPECIFIC THING already!!!” but they’re always different things) and it isn’t hard to help them out by adding one extra attribute.
Also tonight I got social login working for my secret project (gonna have to name and tag it soon!) although the docs for
python-social-auth are very poor and confusing and it might’ve been quicker to just write it myself.
Feeling pretty good about secret project progress this weekend. Still a lot to go, and I’d better get back to real work this week, but it’s inching closer to being usable for Hello Code, at least. 👍
Yesterday I made really good progress on #exist #manualtracking. I can now submit certain events via the API and have them validated (via
jsonschema) and saved to the database. Yeah! I think next I need to finalise all the event types and their schemas. Then I’ll work on the logic that chooses how to turn them into one value per day (eg. sum them, last value, biggest value, etc).
Today I was also very productive, but on my secret new project instead. Productive procrastination baby. I got the db models set up and started rendering a complete view of a “map”. It’s all coming together.
I’m still attempting to make progress on #manualtracking for #exist, but other things keep getting in the way. Today I fruitlessly tried to track down a weird timezone bug a user is experiencing, and fixed a few other little issues that have come up since the upgrade. Then after dinner I finally got some more manual tracking changes done.
Also an article I was interviewed for was published today, but I’m not impressed with it so I can’t be bothered linking to it. Oh well. Hope it sends us some signups anyway.
Slept badly and got barely anything done today. Some days are just like that. However, in the evening, on a whim, I bought a domain name for a project idea @belle and I have been throwing around for a while. It’s ridiculously foolish to start building something new when Larder is already the small second product that needs some love, so I probably won’t. But I do enjoy the idea of having it there waiting, fresh and new.
As Kurt Vonnegut said, “everybody wants to build and nobody wants to do maintenance.”
Well, my #exist upgrade is complete. The site was offline for a little over an hour, a bit longer than I intended thanks to some things I missed in my pre-flight checklist and which subsequently made things very confusing, but not too bad really. I had a few little bugs to fix afterwards that I’d missed earlier, but it all seems good now. Onward to new event streams and #manualtracking!
Sort of related, I’d definitely have fewer issues in a scenario like this with a strongly typed language. I think upgrading to #python 3 would be at least as stressful as this upgrade has been, but it would mean I could take advantage of type hinting. Something to ponder.
My work on upgrading #exist continues. I’ve got the #api working and fixed a bunch of minor things that have changed. So many various dependencies had to be upgraded all at once to work with a much more recent #django version that it has touched many disparate things. Still, no showstoppers so far. Just a lot of fiddly work.
My work on upgrading #exist from #django 1.6 to 1.10 is actually going okay. It’s both a bigger job than I anticipated, thanks to a bunch of third party dependencies that need to be upgraded too and have breaking changes (Django Rest Framework being the biggest) and smaller, because I thought it’d take me longer to get to this point. I can render all my views again! Next step is switching from South to Django’s built-in migrations, then making sure the API works, and then maybe the upgrade will be complete.
In the meantime @belle and I came up with a bunch of easy, useful changes that I think would help explain users’ data better, but I must put them off and power through adding #manualtracking. It’s always the way.
This week I’m finally, really, seriously getting into adding #manualtracking to #exist. This is a big architectural change, and due to various requirements, will necessitate upgrading a lot of dependencies with all of the massive screwing around that’ll entail. I started setting up a new cloned copy of the codebase in a new virtual env, and started working through all of the things that are now broken after upgrading dependencies, but there’s still a lot to do before I can write any new code. Fun times.
Did my #exist interview today with the potential article writer. Lovely lady, and pretty knowledgeable about the space, so we got on well enough and hopefully that’ll turn into some #press for us. It’s been a while. The last interview I did over a month ago still hasn’t been published.
Rest of the day I did some random bits and pieces, everything but coding really. Wrote some more correlation descriptions, replied to lots of emails, and added a bunch of tasks to do later in the week.
Did a lot of #exist #support and admin stuff today and yesterday. Some bug fixes, some tweaks to the new dashboard, and some planning for various things. Also had a surprise request for an interview chat for a site (maybe still a magazine? Media/press sort of thing, anyway) tomorrow afternoon that apparently might lead to an article. So I guess it’s a test of how well I can sell Exist. Going to brush up on some stats and things first.
Had a really unproductive week thanks to a couple of factors, but today @belle and I decided that we were ready, and there was nothing stopping us from releasing the new iteration of the #Exist Goals dashboard. So I deployed it. This is a combo of a visual refresh and some new insights that together are designed to make it easier to grasp the long-term trends, removing a bit of the focus on daily progress. I really like it and some users have responded positively — hopefully everyone else also thinks it’s good. There’s been no “who moved my cheese” emails yet at least, and often that’s the most vocal response.
Making progress on the #exist dashboard redesign. Today I added some new insights based on the day of the week, and tweaked a couple of others. It’s pretty much done, @belle and I are just going to test it for a week (at least) and make sure it all looks and feels useful before unleashing it. I’ve also decided on some stuff I want to add to the mobile apps so I’ll add that to the #android app soon, probably later this week.