blog

review: Oron Amular - Power Unimaginable

Firstly, the necessary disclaimer that I know Michael the author and that he asked me to write a review. That said all the thoughts are my own and I willingly bought the book with my hard earned cash. So without further ado on with the review!

Also this review is more than several month’s overdue to the extent that Michael has started writing the sequel to the epic trilogy. I have has the privilege of reading some of the draft chapters as I support him on Patreon.

Power Unimaginable is the climax to the trilogy of Oron Amular, but yet it opens up the World of Astrom. Once again the writing is excellent making for a page turning novel that covers the details from minutes to hours to years. Michael doesn’t hold back from delivering on character growth and the reality of life and the challenges it can bring.

This conclusion is longer than the previous two books but for good reason, the detail packed into the different action sequences bring the mountain alive with the peril and challenges that our beloved characters face. Micheal puts you the reader in the middle of the action along with the sweat, tears and emotion that the characters are experiencing.

The final chapters set up the sequel brilliantly, leaving the reader wondering what will happen, truly the tournament was simply the beginning of the journey, not the end.

You can buy the book or the whole trilogy from the World of Astrom store and if you enjoyed this trilogy I recommend you support Micheal of Patreon to get early access to draft chapters and other goodies such as maps, detailed blog posts, an exclusive community and a chance to interact with Micheal directly.

#review #book #fantasy

My recommended Typescript configurations.

I have recently started to use Typescript in my React projects, although I still have a fair way to go in actually using it fully (currently I am more writing JS in ts/tsx files… but that can be for another day).

However I did find I was fighting the swiggly lines in my editor from eslint and prettier and they seemed to be fighting each other in regard to formatting. Having asked around my developer friends and a bit of wrangling myself below is my current config for these projects.

Note: This is mostly for my own reference and will be updated from time to time as I discover newer options and tools.

First up is my tsconfig.json, I expect this to change as I understand the power of typescript.

/* tsconfig.json */
{
  "compilerOptions": {
    "target": "ES2020",
    "module": "es2020",
    "jsx": "react",
    "declaration": true,
    "declarationMap": true,
    "strict": true,
    "moduleResolution": "node",
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    /* Advanced Options */
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  },
  "include": [
    "./src/**/*"
  ]
}

Next is my devDependencies snipped from package.json

  "devDependencies": {
    "@typescript-eslint/eslint-plugin": "^4.8.2",
    "@typescript-eslint/parser": "^4.8.2",
    "eslint": "^7.1.0",
    "eslint-config-prettier": "^6.11.0",
    "eslint-plugin-prettier": "^3.1.3",
    "prettier": "^2.0.5",
    "typescript": "^4.1.2"
  },

Next is my .prettierrc file for formatting

{
  "trailingComma": "es5",
  "tabWidth": 2,
  "semi": false,
  "singleQuote": false,
  "printWidth": 120
}

and finally my .eslintrc.js file:

module.exports = {
  parser: `@typescript-eslint/parser`,
  extends: [`plugin:@typescript-eslint/recommended`, `plugin:prettier/recommended`, `prettier/@typescript-eslint`],
  plugins: [`@typescript-eslint`, `prettier`],
  parserOptions: {
    ecmaVersion: 2018, // Allows for the parsing of modern ECMAScript features
    sourceType: `module`, // Allows for the use of imports
  },
  env: {
    browser: true,
    node: true,
  },
  rules: {
    quotes: `off`,
    "@typescript-eslint/quotes": [
      2,
      `backtick`,
      {
        avoidEscape: true,
      },
    ],
    indent: [`error`, 2, { SwitchCase: 1 }],
    "prettier/prettier": [
      `error`,
      {
        trailingComma: `es5`,
        semi: false,
        singleQuote: false,
        printWidth: 120,
      },
    ],
    "@typescript-eslint/explicit-function-return-type": `off`,
  },
}

I suspect I will need to tweak my tsconfig and my eslint but for now these are making my development experience somewhat sensible.

If you have any improvements on these files then please let me know!

#config #javascript #typescript #development

review: Oron Amular - Rite of Passage

Firstly, the necessary disclaimer that I know Michael the author and that he asked me to write a review. That said all the thoughts are my own and I willingly bought the book with my hard earned cash. So without further ado on with the review!

Also this review is several month’s overdue to the extent that Michael is gearing up to release the final and third book this November (2020)!

Rite of Passage continues directly on from where the first book ‘The Call of the Mountain’ left us. This means that the pace of the action doesn’t drop one bit, in fact, it accelerates as the characters encounter new allies and enemies on their way to the mountain Oron Amular.

Michael keeps the imagery vivid with rich descriptions of the locations and the action sequences that keep the reader turning page after page until a cliff hanger of an ending means I cannot wait to devour the third book when I can get my hands on it!

Once again the book is a short in length for a fantasy novel and again this is refreshing to have so much detail packed into the story and description without being drawn into unnecessary detail which creates an air of mystery that places you the reader with the characters in the story, journeying with them to the Mountain.

All in all, this is another excellent book from Michael and one I thoroughly can recommend! Available online or order it at your local book store (if they are open!)

#review #book #fantasy

resource: Slack Etiquette Guide

Slack Guide

So I have been meaning to write this for while now (like months and months) and finally with the craziness of COVID-19 and my clients being forced to work remotely, I have made time to compile this quick guide to Slack based on a few articles I have read and my personal experience over the years.

Get the online version here or download a PDF if you prefer.

#guide #messaging #slack #resources

starting a business: part 2

I have failed.

It is part of life to failure, I can see this so clearly in my son, who at 14 months is failing rapidly, not that we normally name it as such, we call it learning, be it in the sounds he makes, the food he eats or the ‘toys’ he plays with. All of these endeavours sit on a scale of failure to success, whatever success looks like to him (and to us as parents!).

The above is to say that failure is natural to anything we put our minds and hands to, so getting comfortable with failure is necessary in order to succeed. Failure is what led me to this current season of starting a business, failure is saying that I would write a blog post every week (it has been 2 weeks since the last one); failure is trying to do something new, something beyond the current status quo, failure is essential for success.

So without further ado, here is why I have failed to deliver a blog post for the last 2 weeks.

Two weeks ago.

I wrote my first bid to a tender for a project for Film London. They are looking to redesign their website and were accepting bids. I thought I had more time but with a holiday mid-August, I had to rush to submit it before the deadline. I also applied to various jobs that had come up through my existing channels.

I also met with one of my existing clients for a progress report, this went well, it has enabled me to make progress on the project.

Finally I succeeded in deciding on a name and a logo, as you might have guessed we are now called ‘Software Crafts’. I updated the website, designed a logo, business cards and started posting to my new Instagram account. Safe to say it was a productive week.

One week ago.

I finished my first project, a website refresh for alumah and I published a nice instagram post about it here, but again this fraught with failure as this took me half a day to get out the door. Hopefully next time will be quicker! But I got paid for the project already, it feels amazing to have that first paycheck come in from your own work!

I have also had success on getting a contract to fill the gap while I build up my client base, firstly I have been progressing through the screening process for toptal.com, then also I have had a couple of direct approaches from potential projects. I am keeping my fingers crossed for something to start next Monday.

On the admin side of things I have still procratinated in sorting out an accountant, although I am now able to pay myself a salary if I want, yay! I have also switched to Notion to manage my projects, it is looking more promising and pleasant than Asana to date.

Finally, I have managed my second scheduled Instagram post today and I have written this post. Happy days and only 11am! I am thinking next week will be a different style post, maybe something technical certainly less of my ramblings.

#failure #bid #tender #freelancing #business #contracting