I think once I've forgotten all the keyboard shortcuts in Android Studio that's a good sign I've been away long enough.
I was also focused on adding more features to the web app (the place where people could buy a subscription) so that more people would find it valuable enough to buy a subscription. Focusing on that took a few months before we saw our first customer that stayed.
I really wish I hadn't waited this long to take care of it -- I know plenty of people are waiting on the update. But the platform is at a good place, and I think I'm finally over the mobile development hangover. I'm ready to knock it out
I *really* never meant for it to be delayed for as long as it has. Mostly, they were personal reasons -- for one, I was doing both Android and iOS development at a day job for most of the time after we launched blogs/accounts in 2016. And having my days packed with nothing but that really made me not want to do more of it when I got home. Relatively speaking, native mobile development feels like going back to the days of programming with punch cards to me.
A few goals for the week: https://lobste.rs/s/2g4s1p/what_are_you_working_on_this_week#c_hmykdk
First up: our eternally-delayed Android app.
It lives!
Backend is set; now on to the last phase for #WriteFreely: cleaning up the frontend. Includes supporting your various configurations, removing Write.as branding and paywall code still tangled up in there, and maybe shrinking down the stylesheet (not pictured here, of course).
So far so good on this -- seems like a much higher ratio of real users vs. spammers, and from what I can tell, no automated accounts getting through.
Interactive setup / configuration process is in there now.
https://github.com/writeas/writefreely/commit/cc224db6e6e7ebe444fa8ced975af6cbe90474cb
This also includes validation -- something we can reuse when starting up the server, so we can be sure no invalid values are getting through and wreaking havoc on an instance.
Next:
- Update templated pages with the instance's configured name instead of "Write.as" and its metadata
- Removing template exceptions for an "official blog" (i.e. https://write.as/blog/)
- Adding a setup process
Was thinking about leaving a nice setup process out of v1.0, but it'll be easy to add and make onboarding / installation much nicer.
Officially, the open source version is still going to be released by the end of December.
Unofficially I might finish it this month :)
Good progress on Write.as open source today -- got the endpoints moved over and 2500 lines of database code migrated from global functions to struct methods. Left out all the API v1 stuff and removed paywall code.
Past 8 hours have been spent copying code, using tons of Vim macros to update everything, and build, fix errors, repeat. Now that it's compiling again, time to strip out more Write.as(the service)-specific functionality.
It's my day off, so despite the list of higher priorities, I'm going to do something relaxing: continue refactoring the web app into components.
This is a crucial step in open sourcing the platform, as it'll make the entire codebase more maintainable, and allow both the hosted and self-hosted platforms to share crucial code. It also makes the components reusable in other platforms we build, like @snap_as.
All those changes are happening now on the `develop` branch: https://github.com/writeas/web-core/tree/develop
I've been spending all my time over the past few days fending these guys off (apparently I've been talking in my sleep about it). But it's all worth it because it means: no CAPTCHA or email verification when signing up (two things I detest), and keeping anonymous posting open to everyone (besides spammers).
I'm fighting two strains of SEO spammers right now -- one repeatedly publishing anonymous posts (without signing up), and another publishing anonymous posts after creating an account.
The former is the hardest to fight -- IPs are all over the place, and no tracking means I can't mark individuals as spammers. Hence stricter spam rules.
The latter is easier. Essentially I can turn suspicious accounts into honeypots, which then waste spammers' time as they repeatedly try to publish.
Casual dev-related updates from @write_as / @writefreely, tooted by @matt.
This account isn't super active. You might want to check out our other profiles!