Showing posts with label Blogging. Show all posts
Showing posts with label Blogging. Show all posts

3 Jan 2021

Thank Christ That Is Over... But Is It?

I think we can safely say that 2020 has been a tough year for nearly everyone. But it is important to pause and take stock of what happened over the year, and consider both the good and the bad:

No, 2020 really was crap. But our family did have some good news. We were able to improve our financial situation a lot, and that has really helped our mood in the current circumstances. Our son, Matthew, started nursery and really loves it. And after 5 years working at Queen's University, I was able to start working from home, which meant I got to spend a lot more time with my family.

In terms of bad news, we had a few Covid scares. Our son, Matthew, has had to be tested for Covid twice (simple colds needed to be tested before he could go back to nursery), and just before Christmas, his nursery had a confirmed case. With the current large number of cases in Belfast, we won't be sending him back on Monday, and it appears most other parents will also be keeping their children home. We have been bored stupid under lockdown, like everyone else.

Back in January, my wife, Mei, and Matthew, travelled to China to spend time with my wife's family for the Chinese New Year. China locked down on 24th January to combat the Covid-19 pandemic, and my family were unable to travel back until mid-Febrary. I was very stressed about this, and immensely relieved that they were able to get back to Northern Ireland. They then had to self-isolate for 2 weeks. At the end of March, I started working from home, and I have continued to do so ever since.

In May, I started a new job in a different department in QUB. It was advertised as a DevOps role, but in reality, it is an infrastructure/operations role, with little development work. Whilst I have learnt a lot over the past 6 months, especially about Linux and Docker solutions, this isn't where I want to be, and I'll hopefully make a move back into software development soon.

Some of the highlights of the part year have simply been able to meet up and spend time with friends and family whenever the various lockdowns have eased. I have also come to appreciate the benefits of working in an office, and being able to step away from work - something I struggled with when my work was always waiting for me in the bedroom. I also really missed the social interactions with colleagues, which Zoom or Teams just can't replicate. A lot of people have been talking about the office being eliminated following Covid; I think they are over-estimating the benefits of working from home.

In terms of personal projects, I've spent a lot of time on DIY around the home. I cut down on my coding outside of work - one of the side effects of working from home was that I didn't want to code on personal projects in the same environment that I work in.

Anyway, while 2020 has been a tough year for everyone, I suspect that this year, 2021, will be even tougher. Most of us won't be vaccinated against Covid-19 until the end of the year, and I suspect we'll see the economic impact from April onwards, when the furlough scheme ends. Keep yourself and your families safe.

3 Jun 2020

Static Site Generators

In my last post, I mentioned that my next step in my blog migration was to look at which static site generator (SSG) to use. I'm interested in an open source SSG that I can modify to suit my specific blogging workflow. I've been a long term user of the Open Live Writer tool, so I want something that will be just as simple to use. I've been impressed by K Scott Allen's series of posts on custom blog publishing tools to replace Open Live Writer, and also by Chris Ferdinandi's article on his blogging setup.

My specific requirements for an SSG are:
  • Is an actively maintained open source project
  • Has a range of plugins (for tasks like generating tabular data from spreadsheets)
  • Has decent documentation to allow me to get started (note, this is where most open source projects fail in my opinion).
  • Is written in a language I have familarity with (.NET, Java, JavaScript) or I am interested in learning (Rust, Python, Go), so that I can customize the SSG (and possibly contribute back to the project).
  • Uses Markdown templates [See below]
  • Has a range of responsive templates to allow me to get started blogging quickly.

In my original requirements post, I had been interested in drafting my posts in Markdown, probably using MarkdownPad2. However, over the past 3-4 weeks, I have started a new role in work, which along with general lockdown craziness, means I've had relatively little free time to blog. When I have sat down to work on this post, I haven't been interested in crafting a Markdown document or raw HTML - I want to quickly write up a few paragraphs and post. Given that, I've decided to look at using a CMS (possibly headless) instead of drafting everything in raw HTML/Markdown. This will probably mean a combination of a CMS and SSG.

Looking at the most popular static site generators are (Hugo, Gatsby) and some less common (11ty, Pretzel), we have:

Project Language Template Type Comments
Hugo Go HTML No plugins, but significant 3rd party tooling exists, including resources from migrating from other systems (including Blogger). Extensive documentation.
Gatsby JavaScript (React) React One of the most popular SSGs, with a cloud based option and a rich plugin ecosystem.
Jekyll Ruby Liquid One of the original SSGs, it is a relatively simple SSG geared around blogging. It is feature rich but has poor performance when compiling posts compared to newer options.
Next.js JavaScript React Framework A minimalistic framework for server-rendered React applications as well as statically exported React apps. If using the React farmework wasn't bad enough, it also supports CSS-in-JS.
Nuxt JavaScript Vue Inspired by Next.js, but based on the Vue framework instead of React.
Pelican Python Jinja2 for themes, supports Markdown or reStructuredText for posts Allows import from WordPress, Dotclear, or RSS feeds. A smaller project with less detailed documentation.
Metalsmith JavaScript Handlebars, JavaScript Metalsmith is an extremely simple, pluggable static site generator. All the logic is handled that are chained together. While this makes it very flexible, it can mean it takes longer to configure than other SSGs. Poor documentation.
Eleventy JavaScript HTML, Markdown, JavaScript and others. A simpler static site generator, written in JavaScript as an alternative to Jekyll. Transforms a directory of templates (of varying types) into HTML.
InkPaper Go Markdown, Golang An fast and simple static blog generator. Not a particularly active GitHub project. No plugin support, poor documentation.
Pretzel .NET Liquid A simple, pluggable site generation tool written in .NET (C#). Pretzel follows the same convensions as Jekyll and should be compatible with basic Jekyll websites. This is a relatively simple SSG that has not yet been updated to use .NET Core.
Publii JavaScript Handlebars Publii is a desktop-based CMS for Windows and Mac that makes creating static websites fast and hassle-free. Users can enjoy the benefits of a super-fast and secure static website, with all the convenience that a CMS provides. The app runs locally on your desktop rather than on the site's server.
Gridea JavaScript (Vue) JavaScript A static blog writing client. A relatively new project, and a lot of the documentation is in Chinese.


After considering the above options, I've decided to go with Hugo. The lack of plugin support initially put me off, but it does seem to support data driven templates. Eleventy also looks interesting, and if Hugo doesn't work out, I'll possibly use it instead. Both Gridea and Publii look useful, but I think I need to look more depth for a CMS in another post.

In my next blog post, I'm going to look at setting up Hugo and starting to write a test blog with it.

Resources


29 Mar 2020

10 Years of Blogging

Ten years ago today, I posted for the first time on this blog. At the time, I had given my resignation in my job and had some free time while working my notice. So instead of working for my employer, I decided to do something for myself, and this blog was born.

My first article was on Turing machines. My second was about my new job. The third detailed why I was blogging and what I hoped to blog about - which was really about my side projects and anything technical that jumped out at me. I then started a weekly round-up of links useful to developers, focusing on the .NET space, but also including local developer events and job postings. The weekly roundup died after 4 months, but while posting that, I was also blogging about TV, random technical topics. I blogged a few times on scripting on PowerShell (my most popular post is from 2012, and is on calling other programs from PowerShell).

Over the past few years, I have been blogging less frequently (job and family life have been eating up all my time), but I managed to write a long series on SharePoint Development that I'm quite proud of. Though looking back and reading it now, I should have edited ruthlessly down to just 2-3 articles. I have also written a few personal posts over the past 10 years. Altogether, I have posted 106 times. Amazingly, there are people out there who take the time to read my nonsense.

This blog started because I had some free time and wanted to do something for myself. Ten years later, as I write this at home with my family, we are self-isolating in the middle of a global pandemic. I have some time again for myself, in a way I haven't in a long time. I want to do something for myself - I want to write again, and learn with some side projects. I already have a few draft posts ready to publish. But more importantly, I'm looking at my blog, and realising that I need to invest in it. It is looking tired - I need to move it off Blogger, and onto a new platform that will allow me to do more with it. Here's looking to another 10 years of blogging. And thank you for reading.

17 Apr 2016

Social Media

This weekend, I’ve deleted my Twitter and LinkedIn accounts. I deleted my Facebook account years ago. It looks like I’m done on social media for good.

LinkedIn is a cesspit of recruiter slime and unsolicited offers to connect about jobs I wouldn’t offer to my cat, so it was no hardship to delete that account. But Twitter?

Death of Twitter

I used to love Twitter. I’m made some great friends there, been part of some fascinating conversations, and followed some really interesting people. But the fact is, Twitter has become a nasty place to be. I’ve seen too many people dog-piling onto others for not sharing their views, and people being abused for little or no reason. Too often lately, I’ve also found myself getting snarky with others when trying to argue a point in those rare discussions that still occasionally occur. I don’t want to spend my time in a place where people are mean to each other. I don’t want to be one of those being mean.

Apologies to all my friends on Twitter – I’ll miss catching up with you there! Please drop me a line. We can grab a coffee and stay in touch the old-fashioned, analogue way. I’ll still be posting to my blog, hopefully a bit more often than in the past year.

17 Oct 2013

Quotes

A few quotes that I’ve came across over the past few weeks that have really spoken to me:

“I Do Not Intend To Die, Washing A Teacup”

Attributed to Margaret Thatcher, The Iron Lady 2011 (courtesy of Jack Monroe’s excellent blog)

“A man of words and not of deeds is like a garden full of weeds.”

Traditional English nursery rhyme, courtesy of a comment on Barry Adam’s fantastic article “How I’ve been shafted by Darryl Collins from Banjax and Gingerparts”.  Take the time to read the comments – they’re a revelation.

“First we form habits, then they form us. Conquer your bad habits or they will conquer you.”

Dr. Rob Gilbert, Sports psychologist.

I think you can probably see a trend emerging from the quotes above.  It is time I got off my backside and started doing stuff again.

7 Mar 2013

Goals for 2013

"Be at war with your vices, at peace with your neighbours, and let every new year find you a better man."  - Benjamin Franklin

As usual, I'm late posting my goals for the new year ahead. I don't see this as being a bad thing. You should take time to consider how & what you are going to spend your limited free time on. This is particularly relevant to me as I have just started a new job with quite a long commute time.

Having looked at how I got on with 2012 goals (blog post to come), I decided to change tack completely, and to limit myself to just three goals for the coming year.

running - I
  1. Break 40 minutes in a 10 kilometre road race.  My last 10K race time was 43:20 (Dessie’s Run, Derry 2012), so to get it below 40 minutes will take sustained, consistent training.  But I doubt if I’ll equal my PB of 35:15 minutes at the Seeley Cup, Belfast, some 8 years ago and when I was over a stone lighter.
  2. This year, I will be making a big push to learn several new technologies in my free time. As part of this, I will post 40 articles on this blog, with the majority of the posts being technical articles.
  3. To listen to 40 pieces of classical music.  I have always wanted to educate myself about great music, and I think it is about time I started.  I’ll blog soon about the various pieces I plan on listening to.

5 Jan 2011

Delicious Bookmarks

I’ve received complaints about the daily update of my Delicious bookmarks that is published via the blog’s RSS feed.  This problem has been made worse by the recent migration of bookmarks from my now defunct Xmarks account to my Delicious account.  Apologies for any inconvenience this caused you. 

I have now disabled the daily RSS post from Delicious.  If you are looking for an RSS feed of my bookmarks, you can find it at http://feeds.feedburner.com/AndyParkhillsBookmarks. Note, this feed will be available regardless of where I store my bookmarks (which may not be Delicious for much longer).

RSS Icon

On a related note, I’m currently looking at ways of improving the blog. I’m aware that I have neglected it over the past few months due to work commitments.  If you have any comments or ideas for the blog, please get in contact or tweet me at @MagicAndi.

14 Sept 2010

Face Off - Code Syntax Highlighters Battle to the Death!

Or maybe not.  A while back, I blogged about the code syntax highlighter I was using and the various issues I had with it.  Over the past two months, I have tried several other code syntax highlighters, and thought I would summarize my experiences with them now.

Code Syntax Highlighter Looks OK in Blog? Looks OK in RSS feed? Client -side Processing? Modify after posting? Blog Post
Insert Code – a Windows Live Write plugin.

Send Outlook Email Via Powershell

BlogTrot Code Window – An online tool to generate HTML for your code snippet. Sending Gmail via PowerShell
NeatHighlighter - Similar to BlogTrot.

Send Outlook Email Via Powershell – since updated to use BlogTrot.

Google Code Prettify – A JavaScript library. PowerShell and Arrays
Source Code Formatter – Another Windows Live Write plugin. Fevered Coding

The overall winner is the Google Code Prettify library.  It is the easiest highlighter to use and allows you to quickly modify the display of your code snippets after posting by updating the relevant CSS file.  As it makes use of JavaScript processing on the client-side to produce the highlighting effect, the code is simple plaintext in the RSS feed, but still of an acceptable appearance:

I’ll be using the Google Code Prettify library to highlight all code snippets going forward.

The BlogTrot Code Window rendered the code on screen the best of all the highlighters tried, and the options to print and view as plaintext were also useful. The rendering in the RSS feed was poor, however, and the HTML produced could not be easily modified after posting.

It is worth noting that Scott Hanselman has recently blogged about using Syntax Highlighters again.  The one option he considers that I haven’t yet tried is hosting my code somewhere like GitHub, or Snipplr.  If you have tried one of these repositories to store and display your code snippets on a blog, please add a comment below!

26 Aug 2010

Another Day, Another StackTack Issue

I came across a couple of problems with the StackTack jQuery plug-in today.  I tried to use it with a more advanced Blogger template, but it would require a significant effort to rework the StackTack style sheet.  As I just don’t have the necessary time to update the style sheet at the moment, I reverted to basic blue styled Blogger template.  I then also noticed that StackTack was not displaying the question in IE8, and that there was a script error:

I looked at the relevant section of the (minimized) StackTack plug-in code and found that it was breaking on this IF statement:

if(e.indexOf(classTokens[0].toLowerCase())>-1){ ... }

Where e is a variable consisting of  an array of strings.  A quick Google took me to a StackOverflow question that indicated that Internet Explorer (including version 8) does not support the method indexOf onarrays.

The answer also indicated that adding a reference to the Prototype JavaScript library could resolve the issue. So I modified the includes statements in the header to be as follows:

   1:  <script src='http://ajax.googleapis.com/ajax/libs/prototype/1.6.1.0/prototype.js' type='text/javascript'/>
   2:  <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' type='text/javascript'/>
   3:  <script src='http://app.stacktack.com/jquery.stacktack.min.js' type='text/javascript'/>

This allowed the plug-in to correctly work in IE8.  I created a new issue against the plug-in on BitBucket.  You can view screenshots of my blog on browsershots.org – a great tool for web developers.

17 Aug 2010

StackTack

I came across StackTack over the weekend, a great jQuery plugin used to display questions and answers from StackOverflow and the other sites in the Stack trilogy.  It is intended for bloggers and writers who want to post Stack questions in their blogs or articles and have them kept up to date.

I immediately updated my last article on sending GMail via PowerShell to make use of the plugin, but noticed that there was an issue filtering the answers to display a single question that is not the accepted answer.  I have raised an issue against the project on BitBucket; we will wait and see what the response is. 

Regardless of this minor bug, StackApp is a great way to link to the amazing content on the StackOverflow site.  I’m certainly going to keep an eye on the other StackApps that are being built.

3 Aug 2010

The Weekly Links…

…are no more!! I have recently started using the social bookmarking site Delicious to manage all of my links.  You can see all of my shared bookmarks at http://delicious.com/andyparkhill. Some of you may have already seen my various tweets tagged #bookmark – these are automatically generated by Delicious.  There is also integration with my blog’s RSS feed, with a daily roundup of all links that I have added being posted.  And just to be sure, I’ve added a Links page to display my Delicious tag cloud!

All of my bookmarks in future will be shared via this service.  I will also be going back and adding links from the various weekly links posts.  This is part of a change in direction for the blog. I don’t want to just aggregate other’s people posts, I want to start generating my own unique content. At the minute, I’ve plenty of ideas to work on, and I’m working on freeing up more time to implement them. 

21 Jul 2010

Code Syntax Highlighter for Code Snippets

After my last blog post (and the first to contain a decent code snippet!), I wasn’t too happy with the way that the code snippet was rendered in the RSS feed:

I am currently using the Insert Code for Windows Live Writer plug-in, which has a decent rating and reasonable reviews.  I decided to check out the other possible code syntax highlighters.

As always, Scott Hanselman has already posted on this topic, and he came out in favour of Syntax Highlighter, a JavaScript library.  It looks great (see here), but there are a number of other options. These include:

  1. BlogTrot Code Window – An online tool to generate HTML for your code snippet.
  2. NeatHighlighter - Similar to BlogTrot.
  3. Google Code Prettify – A JavaScript library that does a similar job to the Syntax Highlighter.  There is a Code Prettify for Windows Live Writer plugin that can be used to automatically surround your code snippets with <pre> tags for use with the Prettify library.  Unfortunately, Google does not host the Prettify library, which would have been a major plus for me
  4. Source Code Formatter – Another code syntax highlighter for Live Writer, similar to the plug-in I am already using.

I have a number of code based posts that will appear over the next few weeks, so I will try out each of the above methods in a separate post, and post again on this topic to give you some feedback and my preferred method of displaying code snippets.  If you have any other methods of code highlighting that you would like me to consider, please get in touch.

17 Jun 2010

Normal Service Resumes

Folks, apologies for the dearth of posts over the last few weeks.  It has been a very busy couple of weeks, both in work and personally.  I have been involved in a challenging project in work, that has required some additional hours. That, on top of my daily commute, meant there has been very little free time to spend blogging.

 

On the plus side, it has meant that I have had to take look at what I want to do with the blog, and I can see that changes are required.  For a start, I will be blogging more often in the future.  That is not a wish, but is a promise.  I will be taking a leaf from Jason Bell’s book, and will be getting up early to specifically spend time on the blog and personal projects.  There will be more posts on my personal projects,and a lot more code samples

There will still be a weekly roundup of links, but I’m dropping (for now) the jobs summary.  There will also be more time on spent reviewing developer tools.  I’m also considering a series of articles on SharePoint 2010.

In terms of personal projects, I’ll be able to post an announcement this week on my first major project. 

14 May 2010

Weekly Links Changes

 

Just to let you know that I intend to change the format of the weekly links posts.  The increasing size of the weekly roundup means that it is getting unwieldy.  it is also taking a substantial time to edit and publish each Thursday evening, so I am looking at breaking up various sections into discrete posts.  This move will tie in with a new project I’ve been planning – keep your eye on the projects page for further details!

22 Apr 2010

Normal Service Will Resume Shortly…

 

Folks, apologies for the lack of posts this past week.  A minor traffic accident earlier in this week led to a lot of stress and hassle (my daily commute jumped from 1 hour to 2.5 hours), and meant that I wasn’t about to spend any time crafting posts.  Rest assured, normal service will resume next week.

Unfortunately, the same mishap meant that I missed Jesse Liberty’s talk on Silverlight tonight in Belfast, and will mean that I also miss Open Spaces in Dublin this week.  I hope the day goes well for everyone who can attend!

8 Apr 2010

Why I’m Blogging…

Sorry for the delay in posting again.  I spent the Easter weekend visiting friends in Sheffield, and had a great time catching up with them. But now that I’m back, I thought it would be useful to set out the reasons why I’m blogging, and what I hope to do with the  blog over the next few months.
The main reasons I’m blogging are:
  • To market myself.  This blog will be a body of work on the topics that I’m passionate about.
  • To make me a better communicator! 
  • To expand on my answers to StackOverflow questions.  Quite often, when I get interested in a SO question, there is additional material that doesn’t make it into the answer. I plan on using that material in posts on this blog.
  • To note technical points that are of interest to myself and others.  For instance, you can expect to see a number of posts on developing and configuring SharePoint 2010 over the next few months.
  • To document my own personal projects.
The last point is the most important.  For a while now, I had a number of personal projects that I wanted to start work on, but never seemed to have the time for.  By documenting the projects using this blog, I will publicly committing myself to completing these projects, and will also break up the project work into post sized pieces.

Given the above, I plan to post at least twice weekly to the blog.  The blog posts will in general be one of the following types:

  • A roundup of useful links (every Friday)
  • Articles summarizing work done on personal projects (typically on a Monday or Tuesday, to document work done over the weekend)
    You can also expect to see occasional posts on the following topics:
      • SharePoint 2010
      • Becoming a better developer
      • Useful code snippets