Two years of Admiral Shark's Keyboards

Two years ago, I decided to make something for my portfolio to help me get a job

Quite frankly, I was only looking to pad out my GitHub by making my own website engine of sorts. I picked the theme of "IBM" since I was already deep into the ThinkPad hobby at the time and very close to buying my first proper keyboard, so the idea was that this marriage of convenience would help keep me interested in doing this unpaid task. I then wanted to show my friends what I created, so I started hosting the website online. Then, I realised this would be the perfect place to host photos of my collection to show others. Then, I realised I could host some helpful resources that may help my fellow hobbyists. And then, the website somehow took off...

Two years have now passed and I now have a website that's a known and respected central resource for IBM keyboards and is my largest project to date. These two years have seen a lot of development, leading to the said rise of this website as a resource for those interested in the IBM and family keyboard hobby and, most notably, four main features of the website has emerged for people's benefit, research needs and reading pleasure. These are the keyboard database, my articles, topics of interest, and more recently Shark's Wiki. As a summary of this site's progress:

Some stats of the biggest features of the website
Some stats of the biggest features of the website

It's been a challenging, involved but fun journey, with the keyboard database especially being one of the highlights of the site and my favourite fruit of my labour. And thus, I thought it would be worthwhile looking back at what I've done for the two-year anniversary of this website! But first...

A big thank you

If people weren't viewing my website, this wouldn't have gone anywhere. I would have said to myself "why bother?" and called it a day. But, people do visit, and I get positive feedback, thank yous for providing resources and being helpful on r/ModelM, and things are still growing. So, you the reader deserve a big thank you from me.

Whenever I get an email or message offering appreciation for my work, it genuinely makes my day. Knowing something I've done helps others stay informed and understand aspects of our beloved hobby is a great feeling and an affirmation that what I'm doing matters. Especially, providing help to new people in the hobby is always a pleasure since I know all too well how asking questions can render responses like "you should know this" or (apologies for the expletive) "dumbass". Another thing I'm particularly appreciative of is those who offer suggestions on how to improve or even simply find part numbers missing from the database. Knowing that there is always more I can do is humbling and keeps me grounded. Especially in the wake of this being the first time I've really put myself and my work out there and subsequently caught off guard by the unexpected success.

So yeah, thank you for sticking by and reading stuff on my site. Thank you for allowing me to contribute to this hobby, preserve the history and details of these mammoth keyboards of the past, and give myself a purpose outside of my IRL life. I'm also grateful to those who share my site and pages around. Another big thanks to everyone who has contributed to the keyboard database and collaborated with me on articles. Yet another big thanks to Unicomp for answering my queries over the last two years and for allowing me to partake in the Mini Model M prototype program. And one last mega thanks to the r/ModelM moderator team and the r/ModelM subreddit and Discord members themselves for being the best buddies and supporting audience I could hope for!

That's pretty much all I have to say regarding the anniversary. But if you fancy a read, feel free to read on to see how we got from A to B.

The complete story

1st August 2019 - and so, it begins

It all started when I cloned the repo containing the base source code to a website engine I had started work on the previous month. My creation was a PHP framework designed to make front-end web development simpler for back-end web developers by substituting markup with adaptable PHP functions, enforcing simplistic yet effective serialisable 'block-like' page-building structures and layout inspired by Semantic UI. The new project was simply entitled "SHARKNET" (a codename I've (re)used for several projects in my school years) and it was to become a test implementation of the aforementioned framework to help me develop it in a trial-by-fire manner. In the beginning, the theme was simply ThinkPads.

Viewing one of my laptops, build 23rd August 2019
Viewing one of my laptops, build 23rd August 2019

Looks primitive, doesn't it? But, you got to start somewhere... Not long after this, I began hosting the early version of this site on a spare domain I had from my previous web project (a Star Trek alternative history creative piece I was working on from my mid-teens until 20) so I could share with others. Me having lots of ThinkPads was quite the meme with my friends at university, so I decided to roll with it.

30th August 2019 - keyboards first appear

On this day, I bought my first Model M keyboard - a 1987 Type II 122-key P/N 1390886. I was already eyeing up several other Model Ms on the market at the time, so I began work on implementing support for keyboard data on the site since I figured this would eventually be my next collection to display. I already had an IBM UltraNav and two Lenovo TrackPoint keyboards to start things off with too, so I started work on what would eventually become the database structure for the keyboard database.

The Fleet page (now called Collection), build 31st August 2019
The Fleet page (now called Collection), build 31st August 2019

In a way, this was a very early beginning of the end to the ThinkPad content that would eventually be neglected until I archived it and then eventually removed it.

12th September 2019 - the site gets a home

It was a little bit strange to have a website about IBM stuff on a domain with a name completely unrelated, so I bought sharktastica.co.uk as a permanent home for the site. This idea was rapidly evolving into my own personal site, so I got a domain name with my common online alias - SharktasticA. It's a portmanteau of my favourite animal (sharks), fantastic, and my favourite band (Metallica). The 'A' at the end is capitalised for emphasis, so it's pronounced "shark-tastic-cah".

About page, build 12th September 2019
About page, build 12th September 2019

18th September 2019 - Keyboard Database

It may be hard to believe now, but when the biggest feature of my website landed, it provided less than ten data points per keyboard. The keyboard database is something I'm really proud of and is what my site is known for.

The Keyboard Directory then (now called Keyboard Database), build 18th September 2019
The Keyboard Directory then (now called Keyboard Database), build 18th September 2019

Now spanning 1,500 or so recorded unique keyboard part numbers, the keyboard database is one of the largest and most detailed queryable IBM and family keyboard databases on the internet. deskthority wiki's IBM part numbers list is of course the largest inspiration and another resource to be respected, but whilst I believe it's still technically larger than my repository, it's not so easily queryable and provides only a limited amount of detail on a given keyboard themselves.

The Keyboard Database now, build 9th August 2021
The Keyboard Database now, build 9th August 2021

Thanks to not being confined to a MediaWiki page, my database also allows me to offer some cool features with the data. Namely, statistics on keyboard properties and a public access API.

If you're wondering, the first entry into the database was P/N 1394324, a Type III 122-key Model M.

27th October 2019 - my first article

On this day, I posted my first major keyboard article, which was about the IBM System 9002 Hybrid Keyboard. This was originally posted on my now-retired sharktasticallyshark.wordpress.com blog that I used to use for life and work posts (largely game development, which is what I studied for my undergraduate between 2015 and 2019). Since I was looking to add other stuff to the site, I decided to also port that blog post here as an article and thus creating the second major feature of the website.

The 9002 article in its present revision, build 9th August 2021
The 9002 article in its present revision, build 9th August 2021

The impetus for this article was stumbling across Engicoder's 2016 deskthority thread about the System 9000 keyboards, which in October 2019, I started looking into and trying to contribute. I quickly assembled this article as a way to collect the facts in one place and appeal for more information. I made quite a few amendments in November 2019 after conversing with SneakyRobb, who became my first friend and contact on deskthority for research activities.

23rd November 2019 - project becoming serious

Now in development for about three months now, I was quickly beginning to enjoy working on the site. As such, something just clicked at the end of November and I decided to actively work on developing the site as a serious project. At this point, the database had now grown to just over 200 part numbers and progress on adding to it was beginning to pick up.

The Keyboards index page (now called Content), build 23rd November 2019
The Keyboards index page (now called Content), build 23rd November 2019

After this point, work on the ThinkPad content pretty much stopped.

2nd March 2020 - site identity established

Q1 and Q2 2020 were pivotal in establishing the website as a serious resource, starting with implementing the identity of the website that is largely retained today. Late February 2020 saw work on establishing the colour theme of the site and giving the site a proper name for the next year - Shark's IBM Stuff.

The home page, build 24th February 2020
The home page, build 24th February 2020

I also began publicly advertising the features of my website, mostly focusing on promoting the database. Things were increasingly well-received, especially on r/ThinkPad (due to stuff regarding TrackPoint keyboards) and r/ModelM.

The old Keyboard Finder tool, build 2nd March 2020
The old Keyboard Finder tool, build 2nd March 2020

15th May 2020 - Beginning of topics

Topics were the third major feature of the website to be implemented. The first topic was keyboard connections, which were previously hosted on the Keyboards index page but that page was beginning to become extremely unwieldy.

The first draft of the Keyboard Connections topic, build 15th May 2020 (+1 if you can spot the three inaccuracies)
The first draft of the Keyboard Connections topic, build 15th May 2020 (+1 if you can spot the three inaccuracies)

Topics as a concept are largely lists and descriptions of things pertaining to a given theme. For example, the aforementioned keyboard connections topic aims to provide you with a wide range of information on IBM and family keyboard plugs, protocols, and pinouts for use with cable recreation and conversion projects. As the infographic at the beginning stated, the current most popular topics are Differences between and classifications of 122-key Model Ms, Keyboard Connections, Keyboard Dictionary and TrackPoint, pointing stick, and UltraNav keyboards. The fourth one especially is popular due to its usefulness to ThinkPad and keyboard folk alike.

8th June 2020 - r/ModelM, moderating, doubling the member count

As you may imagine, the COVID-19 lockdowns of 2020 meant that IRL social life was a bit... difficult. As I presume was the case for most people, I spent more time online during this time, which in my case brought me into actively posting on r/ModelM. Despite being 10 years old, the subreddit had a membership in the 600-700 range at the time and posting was initially sparse. But, a few months earlier, my friend u/drake9800 had taken over the subreddit and began to actively work on building a community. To our surprise, we ended up doubling the membership count by the end of 2020 and reached 2,000 members in July 2021.

r/ModelM's subscriber stats as per subredditstats.com/r/modelm
r/ModelM's subscriber stats as per subredditstats.com/r/modelm

I first came into the fold of helping out on 8th June when Drake made me a wiki contributor. A few months later, Drake gave me the opportunity to help with moderation. The key to our initial success was active and friendly moderating and a series of photo contests. Thankfully, people also stayed and kept posting after these. On 2nd September 2020, we also created a supporting active Discord server that has since grown to about 360 members at the time of writing. So it's not the biggest of servers, but it's a friendly and well-received community that completely avoided the drama of some other keyboard communities.

7th August 2020 - State of the Website

By August 2020, the website was increasingly finding its audience and thus I started making the routine "State of the Website" posts beginning with the 2020 August post on the 7th August. The idea is to compile a grand list of updates and new content created during a certain timeframe. Initially, this was every two months but has now switched to quarters.

The website's appearance at the time, build 3rd August 2020
The website's appearance at the time, build 3rd August 2020

Chronologically, the start of the update cycles was the My prototype IBM website and database post from right at the beginning of my official participation at r/ModelM. Whilst viewership of these posts is not really high, they've been invaluable for helping me track my progress and have helped greatly with reminding me what the website used to be like at various points in time.

14th September 2020 - Reaching Google's front page

A full year of development had already passed by this point and the celebration for the first anniversary of the website's existence came in the form of realising that my website was starting to appear in Google's search results thanks to continued work towards improving SEO.

A pleasing circularity to this is that I noticed this with the part number of my very first Model M. Anyway, this was not the end of this battle with SEO. Getting into Google's results is one thing, maintaining it whilst continually developing the site is another.

Example of the Google results as of 14th September 2020
Example of the Google results as of 14th September 2020

14th October 2020 - An API for the Database

As of method of sharing my work more widely, I eventually decided to work on public external access to the keyboard database. All the details of this are described on the Keyboard Database External Access page, but TLDR, it's a way you can fetch data from the database on one or more keyboards using GET requests and have the data returned in JSON.

25th February 2021 - Unveiling the Unicomp Mini M to the public

If there was a single event so far that I'd describe as my "big break", it would this article. First look at the Mini Model M prototype & helping Unicomp was the first hands-on public preview of the Unicomp Mini Model M keyboard and remains my most successful article to date. About a month before publishing the article, Unicomp's VP of Development Don Bowman contacted me regarding a proposal to critically review the Mini M and later be able to report my findings to everyone else.

The cover photo for the article
The cover photo for the article

What resulted was the first extensive look and typing demo of the Mini M, the first analysis and test of its new membrane matrix design, and a description of all the issues found and the responses Unicomp gave. It was received really positively, despite the fact the keyboard's controller went on to have issues at launch. The prototype controller my keyboard had (v7.50D) didn't have the dead Q-key and overheating issues that were plaguing v7.52 (launch) to v7.56 (the final problematic one). But, from what people are now reporting, the current v7.57 seems to be working fine.

10th March 2021 - cappybot

cappybot is the Python-based Discord bot companion I develop and maintain for the r/ModelM Discord server. At this point, it's basically an extension of the website that's capable of querying the database, searching through articles and resources I have archived, and more. It has become a staple feature of our community and in particular is widely used for searching up part numbers.

cappybot's keyboard part number search command as of 8th September 2021
cappybot's keyboard part number search command as of 8th September 2021

It was originally developed by doopqoob as Clackbot. However, in March 2021, doopqoob decided to part ways with the community (amicably) and I took over bot development. On 10th March, I forked the Clackbot repository, renamed it cappybot, and began redevelopment and implementation of new features. Presently, I'm working on a new codebase called cappybot v2 that will eventually be open-source and feature support for new Discord features such as slash commands and buttons to replace react interactivity.

3rd July 2021 - Model M4s and my biggest editorial piece

We're now approaching the current era and my biggest work to date - the Model M4 Story article. With this, I wanted to bring to viewers attention the seldom discussed subfamily of Model M keyboards that used (in my opinion) underrated buckling rubber sleeves switches. It was originally going to be exclusively facts about the Model M4, M4-1 and their numeric keypads, but it quickly evolved to include their origin story (the IBM PS/2 L40SX laptop) and what they led to (Model M6-1 ThinkPad keyboards). I wanted this to be the definitive article on these keyboards (at least, to date) and the first in a series called "Revealed" where I would showcase and describe other seldom discussed IBM keyboards.

The Model M4 story article in its present revision, build 8th September 2021
The Model M4 story article in its present revision, build 8th September 2021

The article required a lot of research and input from several other people, leading to quite a sizeable collaboration. Everyone who helped is fully referenced at the end of the article, but I want to give another shoutout to aichi JAPAN, arkanoid, Brandon @ ClickyKeyboards, Dario, Jack @ laptop.pics, Troy @ Unicomp and Uberman765. Without these, the article would not have been as well-illustrated as it is. The article went on to receive good praise and I received a lot of valuable feedback for going forward with the next chapter of article writing and the website at large.

Now - accessibility, next chapter with Shark's Wiki

And so, we arrive at today. It's been a long road coming from a curious project to help with finding a job to this, but there's no sign of slowing down! There are plenty of part numbers to be found and indexed, plenty of keyboards to explore and write about, and new technical challenges to overcome. At present, my focus is accessibility. For the last two months or so, I've been looking at ways to make the website more digestible to more people, which has resulted in a custom high-contrast but navigable reader mode and compatibility mode version of the website. For the former, I decided to make my own custom reader mode instead of relying on the browser's 'best' judgement since it tends to get a bit trigger-happy with culling objects on the screen that are needed for context. For the former, I'm trying to offer a version of the website that is written more friendly for older and even text-based browsers. The fact most of the website is database-powered made offering this something quite easy to do.

At the same time, I've also been trying to improve support for screen readers by improving how my navigation elements are written and using ARIA (Accessible Rich Internet Applications) attributes where possible. This work is still in its relative infancy, but the quality of support is due to increase a lot over the coming weeks.

In regards to site content, all the focus is currently being put into the Shark's Wiki project that launched only a month ago. With the future of deskthority uncertain, I decided it was about time to work on my own wiki of sorts that was built on the principle of offering information that can and will be directly sourced. That's not to say my previous efforts weren't researched (they definitely were), but as a reassurance to the reader, all pages within Shark's Wiki will be sourced as you would expect on Wikipedia. This project is also in its infancy and I'm aware gaps in citing exist, but I hope in time to plug all these and reach a stable position by the end of 2021!

The IBM 3210 & 3215 Printer-Keyboard wiki article, build 11th September 2021
The IBM 3210 & 3215 Printer-Keyboard wiki article, build 11th September 2021

And, that's pretty much it. I hope you all stick around for this journey because great things are ahead! So many keyboards to be explored, so many topics to write about... There's plenty to come.

Cheers!

Photo banner.jpg