March 27, 2019

Wednesday Edition: #Daily-Stand-Up

Hump Day, baby!

Why?

That extra nudge of accountability to achieve even a small step on your IH journey each day.

To join in:

01 Share your epic (a big chunk of work with a meaty objective) you'd like to complete by the end of March.

02 Share what you accomplished yesterday.

03 Share what you commit to accomplishing today.

04 Comment on at least one fellow hacker's progress and give them an IH Point for their check in.

Optional:

05 Share your Work In Progress to underscore your accomplishments.

Then tune in the tomorrow to share how you did on your own tasks!

#daily-stand-up

  1. 4

    EPIC: Sale launch of Programming without Anxiety ebook

    Yesterday:

    • Landing Page: added free sample section. This should make it easier to picture the style and content for customers. I added a ToC to the end as well, but maybe that would deserve better visibility on the landing page itself.

    • Content: Published a money-saved-by-meeting calculator, which parts from the stereotypical "meetings just waste time" approach. (https://treetide.com/posts/meeting-unwaste-calculator)

    Today:

    • I have a small list of subscribers already, but haven't sent them any update. They deserve the care, so I should send them some updates, as well behind-the-scenes content. I need to ask them to give feedback on the sample as well, since I didn't receive actual feedback yet.
    1. 1

      Haha, that's a cool calculator!

      1. 1

        Thanks! Actually, can you try subscribing? If you wish I'll remove you from the list - I just have a suspicion that not all subscribes get recorded... Mysterious.

        Edit: Checked more, no need. There are some POSTs to the subscribe handler in the access log, followed by a subsequent GET which resulted in HTTP 500. But now I think these must be some kind of bots trying to post to the handler using non-ssl connection, and when they get redirected, they revert to GET method which will obviously fail. I wonder why bots try to post even.

        1. 1

          Fatal error: Wrong cookie signature

          1. 1

            Thank you! Wow, I was lucky you triggered this.

            Turns out most of the errors were indeed due to bots. But there were like 3 cases like yours, where a proper SSL-based request triggered the error.

            Reason was that I had a short-term tracking cookie expiring in 15 minutes (if you have DNT set, it doesn't get associated with a long-term cookie). The expired cookie changed the XSRF signature, so if you tried to subscribe from a page that was open for a while, could get this error.

            Now I disabled tracking on subscription. Actually I'm considering just ditching the tracking at all, since in practice I don't really use it, and most of the stats can be gathered from the access.log anyway.

            Thanks again for checking!

            1. 1

              Any time!

  2. 4

    Get up, stand up!

    2019 Goals for Magnus Rush

    • 50 Augmented Podcasts: (4/50) 8%

    • 12k MAU for the App: (0/12k)

    March Epics

    (Stats from Clubhouse.io)

    Milestone: Soft Launch: 72% Complete

    • [Epic] Launch Marketing: 52% Complete

    • [Epic] SaaS MVP3: 76% Complete

    • [Epic] App MVP3: 93% Complete

    Covered some serious ground yesterday, including moving through the stories for the remainder of the month and seeing some duplicates/things I fixed in stride which gave me some nice % gains

    YESTERDAY

    • Finished!? The download manager. Was a huge sidetrack but well worth it

    • Added ability to detect incomplete downloads and restart the item to the download queue

    • Added intentional partial downloads to begin playing a requested podcast faster. Now an episode will start playing in seconds instead of waiting for the full download, and when the full download is complete, seamlessly jumps over to the full download clip in mid-play

    • Added a priority bump to bump an episode higher in the queue if it is being requested by the user via play or bookmark

    • Added popular Genres to the Search screen

    • Removed transcriptions from the client-server API call, which resulted in a nice performance gain

    • Added the latest 3-5 episodes of a podcast to the initial home screen query, to feed the download manager and in the future put a new badge on items

    TODAY

    • Create email notifications for podcast owners to alert them to new episode availability and voice messages left by users

    KUDOS

    Pend to the ing

    WIP of the Magnus Rush podcast app and podcast augmenting platform

    1. 2

      Nice. Look forward to my next long drive to give it another spin :)

    2. 2

      Status update somewhat unpenetrable for me, but a quick scroll through the features shows some nice voice-recognition based ideas.

      I got curious about the transcriptions? What were they? Were they removed since they are not needed? Why was it a gain?

      1. 1

        The transcriptions are super useful, for the podcast owner. When a new episode is detected, it is placed in a transcription queue. When the transcription is finished, I run sentiment and keyword analysis on it, for search and SEO purposes which help the podcaster with promotion. But I was grabbing these information from the episode data inadvertently with a SELECT * query statement, and that very large data was being passed down to the client, which doesn't need it.

        1. 1

          Nice feature! Is it algorithmic or actual ops doing transcribing?

          Fun, the SELECT * reminds me of a recent advice I added into my ebook: don't couple data representation of various tiers (database, server, client). This is very hard advice to follow. Needs explicit transformers (which start out 1:1 copiers), and easy to handwave with "we'll add it once differences start to emerge". But then very hard to actually add it later :)

          1. 1

            It's using a series of AWS services. I maintain a queue of transcription requests for both podcast episodes and voice memos left in the app, because the shows can take 30 minutes to complete, and I'm rate limited in the number of running transcribe jobs on AWS.

            I used to use a model for all my data with explicit return field lists, but switched off once my query branching started to get too intense. I'm going to need to do a pass on minimalism to make sure the client is only getting what it needs, and similarly, the server is only asking for the columns it needs, to optimize payload sized running around the void. Hopefully I do it before it becomes a problem!

  3. 4

    EPIC

    By end of 2019:

    5K MR

    By end of March:

    • 🙌🏾Launched 12 March 2019.

    • Publish 18 articles. (18/18 determined, 14/18 written, 11/18 published)

    • Conduct 3 post experiments with a minimum CTR of 2.69% (1/3 experiments completed - 6.15%) )

    • Increase organic growth from 0 to 11 persons (9 of 11).

    • 🙌🏾Persuaded an additional 15 influencers to contribute posts. (18/15)

    YESTERDAY

    • Fiddled with the scraping algorithm. Almost there!

    • Responded to influencers.

    • Continued rebuild of site in vanilla HTML, CSS JS. (Based on last night, I may have 50% of the site done tonight. So much freaking faster (both build time and speed)!

    TODAY

    • Finish scraping algorithm. It will be done. Tonight.

    • Follow up with influencers.

    • Spend time on Pinterest.

    • Tempted to try this tutorial. Anyone have an opinion on static site generators? The only reason I'd use one is to simplify tags and categories. Are there other benefits I should consider that I'm not? Is it worth the overhead?

    KUDOS: Thanks to @Davey for taking the time to give feedback yesterday. I know his plate is full and so I appreciate the investment! Oops. Just noted that my other guy also chimed in. Thanks @AndrewV! Y'all are the best!

    1. 2

      I'm glad I switched some of my static content to a static generator, but still haven't made the leap for my home page and download page.

      The main reason I wanted to was because it was an absolute nightmare to maintain the look of each page. Any time I changed the docs layout - adding a page, slight style tweak, etc - I had to update every damn page manually, and it was a nightmare that left me not wanting to keep it up-to-date. Used mkdocs for my docs.

      I didn't want the same nightmare when I switched from a single-page "status update blog." I switched to Hugo for my blog because I was too lazy to write HTML for every post, so simple files with markdown (or HTML) was an easy win. It also helped that there were decent blog themes, and it had tags and stuff built in so I didn't have to maintain it manually.

      But I never even half-considered running WP - my needs were not that complex, and I have an old-school anti-PHP attitude, and my little server doesn't need to run a separate server for static content :)

      Gatsby is probably great as well. Obviously SEO is important to you, so that should factor in. And, of course, theming takes a bit of work with all of them.

      I like them. Once they're setup, static content is a breeze to maintain :)

      1. 2

        (Sweet Buddha, what a team we'd be - your strengths/my weaknesses and vice versa!)

        This seems in direct contrast to what @RyanHickman shared below. Any thoughts?

        This phrase "updating every damn page manually" definitely gave me pause re vanilla approach. And I'll at least give Gatsby a go today and see where things shake out.

        If it's too much of a time suck and I don't see, at least on the horizon, savings over WP, I can always switch back.

        1. 1

          I don't think they directly contradict each other :) And we're all pragmatic here (we want businesses, not language wars haha).

          I think they all have pros/cons, and it'll be clear which is best for your case. And you can pick and choose as necessary :)

          Static gen is great for pages that all look the same, writing your own HTML page is great for one-off/custom designs, WP is great for moving fast and testing tons of tools and options, and of course rolling your own simple generator is perfectly fine for a custom case.

          And I think you'll know what to do with very little time - you can quickly tell when you're going down a rabbit hole trying to make something do what you need!

    2. 2

      Re: Static Site Generator:

      As much as I hate wordpress, it does a fantastic job at accelerating SEM compared to site generators. If I have a node application running I use Ghost which is equally great at ensuring quality on-page SEM efforts. I would also say it's easier to get other people who are non-technical to contribute to content production if you use a tool like WP or Ghost.

      1. 1

        Thanks for chiming in @RyanHickman! Curious how Static Site Generators slowed you down... My thought was that is would be faster in that I would know exactly what was under the hood require less guess work when it came to customizing the design + optimizing the site...

        1. 1

          When I work on web, 99% of the time I use bootstrap and try to stay in the same class structure for styles. This allows me to easily swap between my own changes or commercial themes.

          Many people don't use bootstrap correctly I've found. If your markup and class use follows the spec then deviation actually becomes more difficult.

          That said if I use Ghost, I strip out the theme and work from my bootstrap baseline. This way I can power others to write in the Ghost-CMS, add images... all the while maintaining the appearance of content within scope of the design I've implemented.

          Ghost and Hugo aren't far from one another. I'd challenge that Ghost is more practical for the non devs on the team who would be contributing to the content.

    3. 2

      I use BootStrap studio because I can get in and edit some things quickly, play around with a few themes, and look at some community components as well. The code is nice and clean and I can then slice it up with handlebars stuff. I had no idea some of the others like Hugo existed though.

      1. 1

        This is the first time that I'm hearing about BootStrap studio and it seems very interesting for folks who want to quickly get a site up without fiddling with a SquareSpace or WordPress.

        Personally, I'm just going to stick with static site generators. I use to use Jekyll back in the day and now I build blogs and one-page sites with Gatsby. I like not having to fiddle with a server and I like that much of the deployment workflow happens via git if you're using netlify.

      2. 1

        I knew they existed. (Grinning) Just wasn't sure why until I played with WP. As of today, I'm formally diving in.

  4. 3

    IRT PullManager.com

    EPIC

    By End of March:

    No gated beta. I have a list now and think I have a short term beta release soon (0-2 weeks away)...but I'd like to be at a stage to just let visitors "sign up" by the end of the month.

    By End of 2019:

    Have this product still going and growing. Some may see that as too vague, but as someone with a few failed SaaS, this would be quite the improvement.

    YESTERDAY (weekend)

    Added an onboarding workflow for users using Gitlab (it got late though, need to doublecheck my work). It will guide them through auth, and importing some historical pull requests.

    TODAY

    See how onboarding flow can work for Bitbucket (and how to grab pull requests to import). Get prod keys ready. Hit up my existing beta listers to see what provider they use and if I can get them in soon. I don't have the numbers of interest I got in past projects (so far, not all beta platforms have responded yet), but I have a good feeling about this.

    Kudos: All y'all shipping and hacking

    1. 1

      Congrats re onboarding workflow! Is the onboarding the last step before un-gating?

      1. 1

        It's the last round of net new feature code...but I am still working on getting production keys into the app. Getting a new puppy didn't make any of this easier. 😬

  5. 1

    This comment was deleted 6 months ago.

  6. 1

    This comment was deleted 6 months ago.