littlelogs

Keep a social journal of your work progress as you make and learn things.

Exist

Exist

exist
Exist is a personal analytics hub for understanding your life and how your habits affect each other. Bring data you already create from services like your activity tracker, events, social media, and even local weather. https://exist.io

March 2017

josh

More work on #exist #customtracking today, letting users manage all their custom attributes and displaying them on the mood timeline to match the Android app.

I also spent a long time trying to apply for the compulsory worker’s injury insurance thing we need to set up now, even though it’s just me and @belle working from home. There’s only a couple of companies in Victoria that offer it, and man, they’re all so bad at online forms that even the one I ended up going with did not at all inspire confidence. Plus they ask for lots of numbers you’re supposed to just know, like next 12 months’ revenue and expenses. I hate doing this stuff and by the end it made me question whether it’s even worth running a small business. 😩

josh

Made good progress today on #exist #manualtracking — this time, making the necessary changes to the web interface. Back on the productivity wagon! A little more to do so users can edit and manage custom tags from the web, then some better custom entry UX in the Android app, then beta testing time.

josh

Spent a very frustrating afternoon with @belle trying to debug an esoteric timeout issue between her #ios app and the #exist server. For some reason, in certain conditions, all of her requests to the server hang for like 30 seconds, and then time out in the “ssl handshake” stage (verified on the server). I can’t find anyone else with this issue, and we tried a bunch of different things to fix it but were basically stabbing in the dark. To top it off, it’s not even consistent — requests made while the app is in the foreground do work, and occasionally the background ones do also. And browsers and the Android client don’t have issues. Just iOS. Argh! I’m out of ideas. Maybe if I wish hard enough it’ll magically fix itself…

josh

More #exist #android #customtracking fun today. Trying to design an alternative 8-day graph for the Today tab that’s a bit more compact and attractive than reusing the current graphs, as they’d all just say 1 or 0 anyway. So far I have some little ticks in pill shapes that look nice. I wish I could come up with something as readable that is more compact, but all the variations I’ve tried were harder to parse. Oh well, design’s all about compromises, right?

I guess I’ll leave it at what I have for now, and muse on it a bit while I work on the editing interface.

josh

Started setting up the interface in the #exist #android app for rendering #customtracking tags. There’s probably a lot of iterating to go on making it all look just right, but I think the first 80% is done. Next step will be to think about how the interface for tracking stuff (literally, typing in your tags) will work. We also want to make it easy to add and edit stuff, but don’t want to make people think they have to use it by making it too obvious with extra buttons everywhere and so on. So yeah, even more iterating to get it just right.

josh

Woo! Got #customtracking working in a hacky way in #exist #android. Solved some minor issues with that on the server side, and then verified all works as it should. The next step will be to actually make a nice UI for adding and tracking various custom habits and events, and at some point I’ll deploy the backend stuff to the live server so we can test it for real with some beta testers.

I also spent some time helping @belle figure out more #ios #healthkit sleep logic. Getting closer!

February 2017

josh

First pass of the #exist #customtracking backend done today. Didn’t get time to make the custom Android client that can talk to it, ended up spending the evening helping @belle sort out some sleep logic for #healthkit stuff in #ios. Healthkit is like a dumb database returning low-level records, rather than giving a nice daily summary, so it’s much more akin to the crappier APIs I’ve had to integrate (cough-withings-cough) than the lovely ones like Fitbit’s. We’ll also have to implement custom de-duplication as healthkit won’t prevent multiple apps adding overlapping sleep records. Super fun times!

josh

Today I started setting up the backend architecture for the next big #exist feature, #customtracking. I’m pretty excited about it! I hope users will love it. We’re going to let them submit a daily string that’s just a list of tags, eg. "piano, meditation" which we’ll turn into individual attributes with a value of 1 for that day. It means that users can track whatever they want (binary habits and events at least, but not integer values) and we’ll transparently support it, find averages, use it in correlations and so on. I think it’ll only take a few days to get the backend done, then we’ll make a beta mobile interface to test how users will interact with it.

josh

I finished our #exist interactive report on what data you can bring from various apps. It’s simple, but fun to click around on I think, and will hopefully encourage 1) more users to have a play and then sign up, and 2) people with barely any data to realise not to bother.

josh

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.

josh

Finished and deployed #exist’s new weekly email today. Tested it against some random users to make sure nothing broke. Seems all good. The next one will go out Monday!

josh

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.

January 2017

josh

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.

In more practical news I helped @belle debug a tricky Apple Health issue and released a minor update to my own #Android app.

josh

I pretty much have the new data tab in #exist #android complete, but I want to add some interactivity and hide some stuff by default so you can drill down into it.

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.

josh

@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.

josh

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.

josh

To offset the good day I had yesterday, today was full of boring housekeeping tasks, and some #exist bug fixes and support tickets I’d been putting off. Tomorrow will probably be the same as there are more left to look at. Swings and roundabouts. 😶

josh

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

josh

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.

josh

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.

December 2016

josh

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…

josh

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.

josh

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.

josh

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.

josh

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.

josh

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.

November 2016

josh

Today I released the #exist for #android update including the new graphs. Woo! I hope people appreciate it.

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.

josh

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.

josh

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.

josh

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.

josh

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.

josh

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.

josh

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.

josh

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.

josh

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.

So anyway, without further ado — Changemap is live! It’s beta, or MVP, or whatever, but it’s there and it’s ready to serve our #Exist users. Check it out. #milestone

josh

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. 🤘

josh

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.

Older