Certified in The Art of Hacking - Day 2


Logo for QA's certified in the art of hacking course.

This is a diary of what I've learned. Hopefully it will let other learners know what the course is like, and if it is worthwhile. Oh, and it might just help me remember what I'm learning! Day 1 was all about password cracking and metasploit. Today? Linux Hacking! Sadly, we aren't learning anything to do with distributing 1337 cracks for warez (so 1998!). One point to note is that the questions we're set are extremely vague. Here's a sample: Exploit the HeartBleed vulnerability on…

Continue reading →

Certified in The Art of Hacking - Day 1


Logo for QA's certified in the art of hacking course.

As part of my MSc, I have to take three "Professional Practice" courses. The course provider, QA.com, let me choose anything from their online catalogue. The first I'm doing is Certified in The Art of Hacking. As regular readers will know, I'm pretty reasonable at hacking. I have received bug bounties from Google, Twitter, Samsung, and a bunch of others. I don't claim to be an expert - and I doubt I'll be on any top-10 lists - but I have a reasonable, albeit informal, background. It's that…

Continue reading →

Book Review: Professional Practice in Engineering and Computing: Preparing for Future Careers by Riadh Habash


Book cover showing the ascent of man.

Unreadable. Full of grammatical errors and run on sentences. Just incredibly difficult to read. There may be some useful information in here, but I'll be damned if I can find it. Seriously needs to be edited down by someone with a strong grasp of the English language. Here's a typical sentence: "One of the key workplace trends of the future would be the downfall of the corporate ladder, dating back to the Industrial Revolution when thriving businesses were developed on a strict order." I…

Continue reading →

Opting Out of TurnItIn


Screenshot of TurnItIn displaying a list of my blog posts.

The web service TurnItIn is a "plagiarism detector". Lots of universities use it to assess whether their students are copy-n-pasting content which they haven't written. I'm not a big fan of it. First, I'll explain how to opt-out your websites. Then I'll explain why I don't like the service. Block Their Robot TurnItIn scans the web and records everything on your website. It then uses that to tell Universities whether a student has plagiarised from you. While I don't condone cheating, I…

Continue reading →

MSc Assignment 2 - Data Analytics Principles


A map where square relating to a specific group all have the same colour.

I'm doing an apprenticeship MSc in Digital Technology. In the spirit of openness, I'm blogging my research and my assignments. This is my paper from the Data Analytics module. I enjoyed it far more than the previous module. This was my second assignment, and I was amazed to score 72%. In the English system 50% is a pass, 60% is a commendation, 70% is distinction. Nice! A few disclaimers: I don't claim it to be brilliant. I am not very good at academic-style writing. I was marked down for…

Continue reading →

Did Dvorak Die "A Bitter Man"?


Scan of an old document with the quote highlighted.

Yet more MSc yak-shaving. I'm currently reading Melissa Schilling's book "Strategic management of technological innovation". In a passage talking about customers' resistance to new inventions and the destruction of domain knowledge, it talks about the invention of the Dvorak keyboard. Supposedly better than the QWERTY keyboard - but ignored by the majority of customers. August Dvorak is said to have died a bitter man, claiming, “I’m tired of trying to do something worthwhile for the human r…

Continue reading →

Where is the original "Overview of SHARD" paper?


A citation in a modern paper.

One thing I'm finding extremely frustrating in academia is the number of people citing papers which don't seem to actually exist. As part of a data analytics class, I'm learning about "database sharding". That is, the process of splitting data between multiple machines. But where does the term come from? Wikipedia - the source of all truth - says: In a database context, most recognize the term "shard" is most likely derived from either one of two sources: Computer Corporation of America's …

Continue reading →

Animated TreeMaps in R - the hard way


A treemap which show a volumetric view of data.

As I am a bear of very little brain, these are notes to myself on my slightly shonky process for creating animated TreeMaps in R. The aim is to end up with something like this: https://shkspr.mobi/blog/wp-content/uploads/2021/06/animated-tree-map.mp4 Generate the images Getting the data is left as an exercise for the reader (sorry!). This loops through the data and generates a separate image for each TreeMap: for(week in weeks) { weekly_data <- subset(file_data, Week == week) size…

Continue reading →

What's the origin of the phrase "we shouldn’t just be pulling people out of the river. We should be going upstream to find out who’s pushing them in"?


Dr. Reginald Lourie, Chairman of the President's Commission on the Mental Health of Children, tell the story of several men who saw a child in the river, drowning. They rushed out and rescued him. Suddenly, while applying artificial respiration, they noticed there were two more children in the river and they rushed out and saved them. Then there were four more children, then eight and 16. They began calling tor help and marshalling greater resources to form a human chain to save the children who were drowning in alarmingly increasing numbers. At last one of the men broke away from the group on the bank and walked away up the river. The others yelled. "Where are you going? You have to help us save these children "The hell with that," he replied, "I'm going upstream to see who's pushing them in,"

More yak-shaving for my MSc. A book I read was discussing data pipeline problems. How so much of the work of ETL is cleaning up crappy data and reformatting it to something useful. We should be going to the source of the data, the book suggested. Rather than wasting time cleaning - get better at production. Or, as it pithily put it: Whenever I see a generic quote like that, attributed to an authority figure, my Spider-Sense goes haywire. Did they really say that? Where's the evidence? …

Continue reading →

How not to do coding examples


A pet cat typing on a computer keyboard.

As part of my MSc, I'm getting a few lessons in technologies I'm not familiar with. I've found some of these lessons extremely confusing - even when I'm proficient in the language. Here's an example of a coding fragment from one of the tutorials in the R language. Let me explain everything that I think is wrong with it. barplot(H, names.arg =M, col=“blue” xlab ='Country', ylab="Population") something <- lm( mydata$Col1~mydata$Col2) What are H and M? They are defined earlier in the doc…

Continue reading →

MSc First Assignment - Technical and Digital Leadership


Multicoloured Grid.

I'm doing an apprenticeship MSc in Digital Technology. In the spirit of openness, I'm blogging my research and my assignments. This is my paper from the Technical and Digital Leadership module. I think it is fair to say I didn't get on too well with it. I found it very focused on American companies - which wasn't great for someone working in the UK Civil Service. It also had a weird focus on discredited management fads like MBTI. Considering it was my first ever assignment, I was delighted to …

Continue reading →

Zotero Citations to Markdown Links via CSL


Zotero logo.

I use Zotero to manage my references. Instead of in-text citations of (Smith, 1984) - I want that to be hyperlinked to the academic paper referenced. For example ([Smith, 1984](https://doi.org/.....)) This is possible, if you're willing to hack around with CSL - the Citation Style Language. Here's a fragment of CSL that I've adapted from Brenton M. Wiernik's zotero-tools/apa-doi-in-text.csl &lt;macro name=&quot;url-intext&quot;&gt; &lt;choose&gt; &lt;if…

Continue reading →