Author: ianmjones

  • Adding a new Go HTTP server service with oto | Always Developing #7

    Live coding an app with SvelteJS, Go, CockroachDB, and Juju Charms in Python. Sometimes Linux desktop app or WordPress plugin development too.

    Always Developing Playlist:- https://www.youtube.com/playlist?list=PLDWtdmaxq1few8CjnK4MC3LLBMVpi_aCS

    Before starting every work day, I do half an hour of noodling on side projects, making sure to keep them moving forward, albeit slowly.

    Working on these side projects is how I learn new programming languages, frameworks and technologies.

    Chances are I’ll fail miserably each and every day, so at the very least you can take comfort in seeing a so-called senior developer fumbling through some development with little success.

    Blog:- https://www.ianmjones.com
    Twitter:- https://twitter.com/ianmjones

    Tech Used:
    Svelte:- https://svelte.dev
    Go:- https://golang.org
    CockroachDB:- https://www.cockroachlabs.com
    Juju:- https://juju.is

  • I lied, I still need to fix up the Add Goal form and refactor some Svelte | Always Developing #6

    Live coding an app with SvelteJS, Go, CockroachDB, and Juju Charms in Python. Sometimes Linux desktop app or WordPress plugin development too.

    Always Developing Playlist:- https://www.youtube.com/playlist?list=PLDWtdmaxq1few8CjnK4MC3LLBMVpi_aCS

    Before starting every work day, I do half an hour of noodling on side projects, making sure to keep them moving forward, albeit slowly.

    Working on these side projects is how I learn new programming languages, frameworks and technologies.

    Chances are I’ll fail miserably each and every day, so at the very least you can take comfort in seeing a so-called senior developer fumbling through some development with little success.

    Blog:- https://www.ianmjones.com
    Twitter:- https://twitter.com/ianmjones

    Tech Used:
    Svelte:- https://svelte.dev
    Go:- https://golang.org
    CockroachDB:- https://www.cockroachlabs.com
    Juju:- https://juju.is

  • Finishing off a Svelte component that hides implementation details | Always Developing #5

    Live coding an app with SvelteJS, Go, CockroachDB, and Juju Charms in Python. Sometimes Linux desktop app or WordPress plugin development too.

    Always Developing Playlist:- https://www.youtube.com/playlist?list=PLDWtdmaxq1few8CjnK4MC3LLBMVpi_aCS

    Before starting every work day, I do half an hour of noodling on side projects, making sure to keep them moving forward, albeit slowly.

    Working on these side projects is how I learn new programming languages, frameworks and technologies.

    Chances are I’ll fail miserably each and every day, so at the very least you can take comfort in seeing a so-called senior developer fumbling through some development with little success.

    Blog:- https://www.ianmjones.com
    Twitter:- https://twitter.com/ianmjones

    Tech Used:
    Svelte:- https://svelte.dev
    Go:- https://golang.org
    CockroachDB:- https://www.cockroachlabs.com
    Juju:- https://juju.is

  • Enabling Svelte devtools, fixing a form, and date input analysis paralysis | Always Developing #4

    Live coding an app with SvelteJS, Go, CockroachDB, and Juju Charms in Python. Sometimes Linux desktop app or WordPress plugin development too.

    Always Developing Playlist:- https://www.youtube.com/playlist?list=PLDWtdmaxq1few8CjnK4MC3LLBMVpi_aCS

    Before starting every work day, I do half an hour of noodling on side projects, making sure to keep them moving forward, albeit slowly.

    Working on these side projects is how I learn new programming languages, frameworks and technologies.

    Chances are I’ll fail miserably each and every day, so at the very least you can take comfort in seeing a so-called senior developer fumbling through some development with little success.

    Blog:- https://www.ianmjones.com
    Twitter:- https://twitter.com/ianmjones

    Tech Used:
    Svelte:- https://svelte.dev
    Go:- https://golang.org
    CockroachDB:- https://www.cockroachlabs.com
    Juju:- https://juju.is

  • Fixing yesterday’s CSS mess and adding a route for the new SvelteJS component | Always Developing #3

    Live coding an app with SvelteJS, Go, CockroachDB, and Juju Charms in Python. Sometimes Linux desktop app or WordPress plugin development too.

    Always Developing Playlist:- https://www.youtube.com/playlist?list=PLDWtdmaxq1few8CjnK4MC3LLBMVpi_aCS

    Before starting every work day, I do half an hour of noodling on side projects, making sure to keep them moving forward, albeit slowly.

    Working on these side projects is how I learn new programming languages, frameworks and technologies.

    Chances are I’ll fail miserably each and every day, so at the very least you can take comfort in seeing a so-called senior developer fumbling through some development with little success.

    Blog:- https://www.ianmjones.com
    Twitter:- https://twitter.com/ianmjones

    Tech Used:
    Svelte:- https://svelte.dev
    Go:- https://golang.org
    CockroachDB:- https://www.cockroachlabs.com
    Juju:- https://juju.is

  • Refactoring a component in a SvelteJS app and messing with CSS | Always Developing #2

    Live coding an app with SvelteJS, Go, CockroachDB, and Juju Charms in Python. Sometimes Linux desktop app or WordPress plugin development too.

    Always Developing Playlist:- https://www.youtube.com/playlist?list=PLDWtdmaxq1few8CjnK4MC3LLBMVpi_aCS

    Before starting every work day, I do half an hour of noodling on side projects, making sure to keep them moving forward, albeit slowly.

    Working on these side projects is how I learn new programming languages, frameworks and technologies.

    Chances are I’ll fail miserably each and every day, so at the very least you can take comfort in seeing a so-called senior developer fumbling through some development with little success.

    Blog:- https://www.ianmjones.com
    Twitter:- https://twitter.com/ianmjones

    Tech Used:
    Svelte:- https://svelte.dev
    Go:- https://golang.org
    CockroachDB:- https://www.cockroachlabs.com
    Juju:- https://juju.is

  • Fixing a tiny bug in a SvelteJS app | Always Developing #1

    Live coding an app with SvelteJS, Go, CockroachDB, and Juju Charms in Python. Sometimes Linux desktop app or WordPress plugin development too.

    Always Developing Playlist:- https://www.youtube.com/playlist?list=PLDWtdmaxq1few8CjnK4MC3LLBMVpi_aCS

    Before starting every work day, I do half an hour of noodling on side projects, making sure to keep them moving forward, albeit slowly.

    Working on these side projects is how I learn new programming languages, frameworks and technologies.

    Chances are I’ll fail miserably each and every day, so at the very least you can take comfort in seeing a so-called senior developer fumbling through some development with little success.

    Blog:- https://www.ianmjones.com
    Twitter:- https://twitter.com/ianmjones

    Tech Used:
    Svelte:- https://svelte.dev
    Go:- https://golang.org
    CockroachDB:- https://www.cockroachlabs.com
    Juju:- https://juju.is

  • This is why I like the snap store

    Just one full day after releasing Snippet Pixie 1.5.1 on the snap store, and 75% of users have it already.

    snap store

    Graph showing Snippet Pixie 1.5.1 at 75% adoption in 1 day

    For a software developer, seeing this level of rapid deployment of a new release is awesome. Having users using the latest version quickly and easily helps get bug fixes out rapidly, which in turn reduces the chances of the user having problems and needing support.

  • Snippet Pixie 1.5.0

    I've just realised that I forgot to post that Snippet Pixie 1.5.0 was released, almost 4 months ago!

    Snippet Pixie 1.5.0 was released

    Here's what the 1.5.0 released included:

    • Added search of Snippets in main window.
    • Added last used Snippets shown first in Search and Paste window.
    • Added shortcuts for main window actions such as Add Snippet (Ctrl+n).
    • Added support for system Light and Dark appearance preference.
    • Improved theming of window controls to be more consistent with system.

    Being able to search snippets in the main window is very useful while adding or editing snippets, especially once you've accumulated quite a few.

    Over time I've found that I tend to use the same handful of snippets over and over again while working in a particular context. So this release now orders the entries shown in the Search & Paste window by most recently used first, whether there's a search or not. This has proven to be a huge productivity boost for me.

    Once you've got a good library of snippets created, adding shortcuts to the main window in this release doesn't really make much difference to you as you rarely using that window. However, when you're starting out with Snippet Pixie or in a phase of editing a bunch of existing snippets, this new feature will be very helpful.

    The last two entries in the release notes relate to how the main and search & paste windows are themed. If a Linux desktop supports light and dark themes, Snippet Pixie should now switch its styling according to the user's preference. Along with that came a reduction in custom styling for Snippet Pixie, it's now using standard colours for the header bar and pretty much everywhere else so that it can easily switch between light and dark, and generally fit in with whatever desktop is in use.

    Snippet Pixie 1.5.0 is available from the elementary OS AppCenter, the Snap Store, and nixpkgs.

    elementary OS AppCenter

    Snap Store

    nixpkgs

  • 2021 Goals

    At the end of my 2020 Year in Review post I mentioned that I intend to write up some goals for 2021 so that we can all have a good laugh at how badly I fail to achieve them in a 2021 Year in Review post. So here we are, let's do this!

    2020 Year in Review

    To me, goals are worthless unless they're S.M.A.R.T. There's a few variants of what SMART stands for, but the version I learnt many moons ago is as follows:

    S.M.A.R.T

    • Specific – targeting a specific area for improvement
    • Measurable – progress can be measured numerically
    • Achievable – has to be attainable
    • Realistic – has to be achievable within the allotted time span
    • Time-boxed – there must be a target end date for reaching the goal

    So, given the above, I'm setting goals for 2021 that cover areas of my life where I feel I need to make significant improvements, or keep on top of and simply not screw up.

    Business

    My business is software development, that's what I do, and love doing it. However, the vast majority of my income comes from being a contract software developer where I effectively trade time for money.

    For a very long time now I've wanted to at least partially supplement my consultancy income with passive income from software products. While I've had some success with this in the past, at present I'm failing bad, with only WP Table Pixie and Snippet Pixie available as a way of generating passive income. The annual revenue from them combined might just stretch to a nice meal out for the wife and I (finger's crossed we can do that this year).

    WP Table Pixie

    Snippet Pixie

    I don't think either of the above products have much chance of making any significant revenue in the long term, but my Secret Project might make something worthwhile eventually.

    Goal 1: Release 1 new software product by 01/11/2021

    My little secret project should be available for anyone to sign up for and use by 1st November 2021.

    It's important to get the software to Minimum Viable Product and available for use by people I don't know. If it's not available for anyone to use, I can't possibly make any money from it.

    Goal 2: Secret Project earns $10 MRR by 31/12/2021

    My little secret project should have however many paying customers it needs to be earning $10 USD per month by 31st December 2021.

    Just having that validation is key here, I can worry about growing revenue in the future. I need to do whatever it takes to get people interested in, trying and paying for it. There's a lot to that beyond simply making the product available for sign up.

    The product may not even be something you pay for on a monthly basis, but there'll be some way of working out a monthly recurring revenue figure.

    Personal Growth

    While I've learnt a lot in relation to programming in 2020 having picked up Go, Svelte, and some ancillary technologies, I've really not grown my social skills as I had hoped.

    On the face of things you'd think growing my social skills is a bit of a hard goal to quantify, but I think I have two goals that will achieve what I want in terms of helping me communicate better and improve my interactions with the World at large.

    Goal 3: Write 12 blog posts by 31/12/2021

    There should be a new blog post published on this site every month, for a total of 12 posts by the end of the year. While the goal is to have 12 new posts by the end of the year, I really mean to publish something every month.

    I need to greatly improve my writing skills, and just writing something that is publicly available at least once per month should help with that.

    I'm not even worried about how big each post is, or how profound it may be, I just need to write something on this blog.

    I'm already over achieving on this goal as this post and 2020 Year in Review are definitely going to count! 😆️

    2020 Year in Review

    Goal 4: Release 6 episodes of Always Developing by 31/12/2021

    It doesn't matter whether I decide to release audio or video, but by the end of the year there must be 6 new episodes of Always Developing available.

    Always Developing

    Health & Fitness

    I've been really lazy in 2020, and my strength and suppleness have suffered as a consequence. I've noticed this simply when going for longer walks with my daughter, or doing various DIY tasks around the house this year. Getting more fit and healthy will not only directly improve my quality of life, but is also very important for those that I love.

    Goal 5: Practice strength yoga 156 times by 31/12/2021

    That's 3 times per week of doing either Yoga Strength Basics for Beginners or Beginner Yoga Strength Classes.

    Yoga Strength Basics for Beginners

    Beginner Yoga Strength Classes

    These classes should help me achieve both increased strength and suppleness over time. I'm intending to start my day off by following these classes before sitting down for breakfast, catching up on the internet, and starting my work day. The classes have built in rest days, but my intent is to limit the sessions to work days, and leave weekends for other activities.

    Summary

    While five goals is quite a bit to juggle at one time, there's two sets of two that go hand in hand, and I feel all three areas balance each other and hopefully help one another too.

    In January 2022 I'll write a 2021 Year in Review post and include a section reviewing how I got on with these goals.

    I might even do an interim post at some point in the year to see how things are going and whether any course corrections have been required. That'll at least help with goal 3 anyway!