diff --git a/.gitmodules b/.gitmodules
index 611c761..9ffec5c 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -4,3 +4,6 @@
[submodule "brainsteam/themes/Mainroad"]
path = brainsteam/themes/Mainroad
url = ssh://git@git.jamesravey.me:222/ravenscroftj/Mainroad.git
+[submodule "brainsteam/themes/plague"]
+ path = brainsteam/themes/plague
+ url = https://github.com/brianreumere/plague.git
diff --git a/brainsteam/config.toml b/brainsteam/config.toml
index 25537ef..b1cb16b 100644
--- a/brainsteam/config.toml
+++ b/brainsteam/config.toml
@@ -2,12 +2,19 @@ baseURL = "https://brainsteam.co.uk/"
languageCode = "en-us"
title = "Brainsteam"
#theme='hugo-ink'
-theme='Mainroad'
+#theme='Mainroad'
+theme='plague'
paginate=10
disqusShortname = "brainsteam"
copyright = "© James Ravenscroft"
+[module]
+ [[module.imports]]
+ disable = false
+ ignoreConfig = false
+ ignoreImports = true
+ path = 'plague' # Theme
pygmentsstyle = "vs"
@@ -31,48 +38,76 @@ post_meta = ["author", "date", "categories", "translations"] # Order of post met
[markup.goldmark.renderer]
unsafe= true
-[Params]
+
+
+[params]
authorbox= true
- subtitle = "Digital Home of James Ravenscroft Machine Learning and NLP specialist and software generalist"
- avatar = "/images/avatar_small.png"
- favicon = "/images/avatar_small.png"
+ siteHeaderText = "Brainsteam"
+ siteFooterText = "Powered by [Hugo](https://gohugo.io/) and the [plague](https://github.com/brianreumere/plague) theme."
- copyright = "James Ravenscroft"
+ # subtitle = "Digital Home of James Ravenscroft Machine Learning and NLP specialist and software generalist"
+
+ # avatar = "/images/avatar_small.png"
+
+ # favicon = "/images/avatar_small.png"
+
+ # copyright = "James Ravenscroft"
recentSections = ["posts"]
- mainSections = ["posts","notes","replies","likes","reposts","bookmarks", "watches"]
+ colors = "default"
-[Author] # Used in authorbox
- name = "James Ravenscroft"
- bio = "James is an NLP and Machine Learning specialist and software generalist, currently CTO at Filament and previously an IBMer"
- avatar = "/images/avatar.png"
+ #mainSections = ["posts","notes","replies","likes","reposts","bookmarks", "watches"]
+ mainSections = ["posts"]
-[Params.Logo]
- image = "/images/avatar_small.png"
+ [params.hcard]
+ avatar = "images/avatar_small.png"
+ fullName = "James Ravenscroft"
+ pronouns = ["he", "him"]
+ nickname = "jamesravey"
+ city = "Portsmouth"
+ region = "Hants"
+ country = "United Kingdom"
+ showLocation = true
-[Params.sidebar]
- home = "right" # Configure layout for home page
- list = "right" # Configure layout for list pages
- single = false # Configure layout for single pages
- # Enable widgets in given order
- widgets = ["search", "recent", "types", "social", "categories", "taglist", "languages"]
+ social = [
+ { platform = "github", identity = "ravenscroftj", url_pattern = "https://github.com/%s" },
+ { platform = "mastodon", identity = "jamesravey", url_pattern = "https://fosstodon.org/%s"},
+ { platform = "bluesky", identity = "jamesravey", url_pattern = "https://bsky.app/profile/%s"}
+ ]
-[Params.widgets.social]
- # Enable parts of social widget
- #facebook = "username"
- #twitter = "username"
- #instagram = "username"
- #linkedin = "username"
- #telegram = "username"
- github = "ravenscroftj"
- mastodon = "https://fosstodon.org/@jamesravey"
- #gitlab = "username"
- #bitbucket = "username"
- #email = "example@example.com"
+
+# [Author] # Used in authorbox
+# name = "James Ravenscroft"
+# bio = "James is an NLP and Machine Learning specialist and software generalist, currently CTO at Filament and previously an IBMer"
+# avatar = "/images/avatar.png"
+
+
+# [Params.Logo]
+# image = "/images/avatar_small.png"
+
+# [Params.sidebar]
+# home = "right" # Configure layout for home page
+# list = "right" # Configure layout for list pages
+# single = false # Configure layout for single pages
+# # Enable widgets in given order
+# widgets = ["search", "recent", "types", "social", "categories", "taglist", "languages"]
+
+# [Params.widgets.social]
+# # Enable parts of social widget
+# #facebook = "username"
+# #twitter = "username"
+# #instagram = "username"
+# #linkedin = "username"
+# #telegram = "username"
+# github = "ravenscroftj"
+# mastodon = "https://fosstodon.org/@jamesravey"
+# #gitlab = "username"
+# #bitbucket = "username"
+# #email = "example@example.com"
[[menu.main]]
name = "Home"
@@ -80,20 +115,20 @@ url = "/"
weight = 1
[[menu.main]]
-name = "Blog Posts"
+name = "Posts"
url = "/posts"
weight = 2
[[menu.main]]
-name = "About Me"
-url = "/pages/about"
+name = "Notes"
+url = "/notes/"
weight = 3
[[menu.main]]
-name = "My Work"
-url = "/pages/my-work"
+name = "Links"
+url = "/bookmarks/"
weight = 5
[[menu.main]]
@@ -102,26 +137,6 @@ url = "/search"
weight = 6
-[[params.social]]
-name = "Twitter"
-icon = "twitter"
-url = "https://twitter.com/jamesravey/"
-
-[[params.social]]
-name = "Mastodon"
-url ="https://fosstodon.org/@jamesravey"
-icon = "message-circle"
-
-[[params.social]]
-name = "Github"
-icon = "github"
-url = "https://github.com/ravenscroftj"
-
-[[params.social]]
-name = "RSS"
-icon = "rss"
-url = "/pages/feeds/"
-
[taxonomies]
tag = "tags"
diff --git a/brainsteam/content/_index.md b/brainsteam/content/_index.md
new file mode 100644
index 0000000..63591d1
--- /dev/null
+++ b/brainsteam/content/_index.md
@@ -0,0 +1,4 @@
+---
+---
+
+Welcome to the Digital Home of James Ravenscroft Machine Learning and NLP specialist and software generalist.
diff --git a/brainsteam/content/notes/2023/06/19/1687211074.md b/brainsteam/content/notes/2023/06/19/1687211074.md
index def30aa..f840226 100644
--- a/brainsteam/content/notes/2023/06/19/1687211074.md
+++ b/brainsteam/content/notes/2023/06/19/1687211074.md
@@ -1,19 +1,18 @@
---
-date: '2023-06-19T21:44:34.280750'
+date: "2023-06-19T21:44:34.280750"
mp-syndicate-to:
-- https://brid.gy/publish/mastodon
+ - https://brid.gy/publish/mastodon
photo:
-- https://brainsteam.co.uk/media/2023/06/19/1687211074_0.jpg
+ - url: https://brainsteam.co.uk/media/2023/06/19/1687211074_0.jpg
+ alt: a tiny mouse staring through the bars of a humane trap next to a large pile of peanut butter
post_meta:
-- date
+ - date
tags:
-- personal
-- humour
+ - personal
+ - humour
thumbnail: https://brainsteam.co.uk/media/2023/06/19/1687211074_0.jpg
type: notes
url: /notes/2023/06/19/1687211074
---
-
-
- Had a run in with this little guy this morning. He's been living in our garage eating bird seed out of a sack I bought for our bird feeders for a few weeks. I set up infrared cameras and humane traps and I've been watching him scurrying around cutely at night.we released him into a hedgerow next to a big field this morning and I'm kind of going to miss him.
\ No newline at end of file
+Had a run in with this little guy this morning. He's been living in our garage eating bird seed out of a sack I bought for our bird feeders for a few weeks. I set up infrared cameras and humane traps and I've been watching him scurrying around cutely at night.we released him into a hedgerow next to a big field this morning and I'm kind of going to miss him.
diff --git a/brainsteam/content/notes/2023/07/09/1688912402.md b/brainsteam/content/notes/2023/07/09/1688912402.md
index 8883ec8..8bad657 100644
--- a/brainsteam/content/notes/2023/07/09/1688912402.md
+++ b/brainsteam/content/notes/2023/07/09/1688912402.md
@@ -1,18 +1,13 @@
---
-date: '2023-07-09T14:20:02.886483'
+date: "2023-07-09T14:20:02.886483"
post_meta: ["date"]
photo:
-- /media/2023/07/09/1688912402_0.jpg
+ - https://brainsteam.co.uk/media/2023/07/09/1688912402_0.jpg
tags:
-- personal
-thumbnail: /media/2023/07/09/1688912402_0.jpg
+ - personal
+thumbnail: https://brainsteam.co.uk/media/2023/07/09/1688912402_0.jpg
type: notes
url: /notes/2023/07/09/1688912402
-
---
-
-
-
-
- Welcome to my new look website. I've spent my Sunday morning getting the site looking nice and setting up webmentions. I'm now just testing that I can still make new posts
\ No newline at end of file
+Welcome to my new look website. I've spent my Sunday morning getting the site looking nice and setting up webmentions. I'm now just testing that I can still make new posts
diff --git a/brainsteam/content/notes/2023/08/06/1691312975.md b/brainsteam/content/notes/2023/08/06/1691312975.md
index 59a4813..029dd62 100644
--- a/brainsteam/content/notes/2023/08/06/1691312975.md
+++ b/brainsteam/content/notes/2023/08/06/1691312975.md
@@ -1,22 +1,19 @@
---
-date: '2023-08-06T09:09:35.376904'
+date: "2023-08-06T09:09:35.376904"
mp-syndicate-to:
-- https://brid.gy/publish/mastodon
+ - https://brid.gy/publish/mastodon
photo:
-- /media/2023/08/06/1691312975_0.jpg
+ - /media/2023/08/06/1691312975_0.jpg
post_meta:
-- date
+ - date
tags:
-- personal
+ - personal
thumbnail: /media/2023/08/06/1691312975_0.jpg
type: notes
url: /notes/2023/08/06/1691312975
-
---
-
-
- a quick walk along Lee-on-the-Solent beach to burn some morning lark energy this morning
-
\ No newline at end of file
+a quick walk along Lee-on-the-Solent beach to burn some morning lark energy this morning
+
diff --git a/brainsteam/content/pages/about.md b/brainsteam/content/pages/about.md
index a4c0a8d..6cc71fc 100644
--- a/brainsteam/content/pages/about.md
+++ b/brainsteam/content/pages/about.md
@@ -1,6 +1,6 @@
---
post_meta:
-- date
+ - date
title: About Me
type: pages
url: /pages/about
@@ -11,8 +11,6 @@ I'm James, I am a Chief Technology Officer and Software Engineer specialising in
- [What I'm up to right now](#what-im-up-to-right-now)
- [What I do for work](#what-i-do-for-work)
- [What I do for fun](#what-i-do-for-fun)
-- [About The Site](#about-the-site)
-
## What I'm up to right now
@@ -20,29 +18,17 @@ I keep my [now](/now) page up to date with exactly where I'm at.
## What I do for work
- - I've been freelancing and [building websites](https://web.archive.org/web/20051102052726/http://www.simssource.net/) since the mid 00s
- - I started my full time career at IBM in 2011 in their [CICS transaction processing product](https://www.ibm.com/it-infrastructure/z/cics) before moving over to Watson where I was a customer-facing solutions architect which entailed helping other techies to use Watson APIs and services.
- - In 2016 I left IBM to co-found [Filament AI](https://filament.ai), formerly an AI & ML consultancy and now a software product business where I am currently CTO and Chief Data Scientist. I oversee and manage our technical roadmap and strategy, but I also keep my hands dirty and regularly deliver code for customers and for our products.
- - In 2022 I wrapped up up my part-time PhD which I've been working on under the dual supervision of [Prof. Maria Liakata](https://www.turing.ac.uk/people/researchers/maria-liakata) at the [Alan Turing Institute](https://www.turing.ac.uk/) [Dr Amanda Clare](https://users.aber.ac.uk/afc/) at Aberystwth University (where I finished my BSc in 2013).
- - My main academic affiliation was with [University of Warwick](https://warwick.ac.uk/fac/sci/dcs/) but, I often crash Turing events and, I've been known to visit Aberystwyth to give talks at careers events and departmental seminars.
-
+- I've been freelancing and [building websites](https://web.archive.org/web/20051102052726/http://www.simssource.net/) since the mid 00s
+- I started my full time career at IBM in 2011 in their [CICS transaction processing product](https://www.ibm.com/it-infrastructure/z/cics) before moving over to Watson where I was a customer-facing solutions architect which entailed helping other techies to use Watson APIs and services.
+- In 2016 I left IBM to co-found [Filament AI](https://filament.ai), formerly an AI & ML consultancy and now a software product business where I am currently CTO and Chief Data Scientist. I oversee and manage our technical roadmap and strategy, but I also keep my hands dirty and regularly deliver code for customers and for our products.
+- In 2022 I wrapped up up my part-time PhD which I've been working on under the dual supervision of [Prof. Maria Liakata](https://www.turing.ac.uk/people/researchers/maria-liakata) at the [Alan Turing Institute](https://www.turing.ac.uk/) [Dr Amanda Clare](https://users.aber.ac.uk/afc/) at Aberystwth University (where I finished my BSc in 2013).
+- My main academic affiliation was with [University of Warwick](https://warwick.ac.uk/fac/sci/dcs/) but, I often crash Turing events and, I've been known to visit Aberystwyth to give talks at careers events and departmental seminars.
## What I do for fun
- - I'm a big fan of food - both cooking and eating it.
- - I like to tinker with software and hardware (like [this talking moose head](/2016/06/05/blackgangpi-a-raspberry-pi-hack-at-blackgang-chine/)) in my spare time. I'm a big fan of open source culture including efforts to decentralise the web like [indieweb](https://indieweb.org/) and [the fediverse](https://fediverse.party/en/fediverse).
- - I like to read, frequently science fiction and fantasy but the occasional pop-sci title or general fiction. I have historically tracked some of my reading over at [Goodreads](https://www.goodreads.com/user/show/4547536-james-ravenscroft) but I now keep track with [Bookwyrm](https://bookwyrm.social/user/jamesravey) and eventually I plan to start tracking this stuff here via [bookwyrm](https://indiebookclub.biz/) and micropub.
- - I like to watch box sets and movies - my wife and I are [Cineworld Unlimited card](cineworld.co.uk/) holders.
- - I've been playing saxophone (Alto and Tenor mainly) off-and-on since the early 2000s. I can also play a few chords on a guitar and I'll happily tinker with a piano/keyboard, harmonica and clarinet although don't ask me to play you a full track!
- - Although I've not had time recently I did really enjoy [Lindyhop](/2015/06/28/bedford-place-vintage-festival/) - a 1920s style swing dance.
-
-## About The Site
-
-I'm using some icons from SVGRepo like:
- - [the link icon](https://www.svgrepo.com/svg/525988/link)
- - [the like icon](https://www.svgrepo.com/svg/506227/like)
- - [the comment icon](https://www.svgrepo.com/svg/522070/comment-3)
- - [the repost icon](https://www.svgrepo.com/svg/469632/retweet)
- - [the mastodon icon](https://www.svgrepo.com/svg/362235/mastodon-simple)
-
-in all cases I've made some small changes to the svg metadata - you're free to copy and make similar changes to these according to [the license](https://www.svgrepo.com/page/licensing#CC%20Attribution)
\ No newline at end of file
+- I'm a big fan of food - both cooking and eating it.
+- I like to tinker with software and hardware (like [this talking moose head](/2016/06/05/blackgangpi-a-raspberry-pi-hack-at-blackgang-chine/)) in my spare time. I'm a big fan of open source culture including efforts to decentralise the web like [indieweb](https://indieweb.org/) and [the fediverse](https://fediverse.party/en/fediverse).
+- I like to read, frequently science fiction and fantasy but the occasional pop-sci title or general fiction. I have historically tracked some of my reading over at [Goodreads](https://www.goodreads.com/user/show/4547536-james-ravenscroft) but I now keep track with [Bookwyrm](https://bookwyrm.social/user/jamesravey) and eventually I plan to start tracking this stuff here via [bookwyrm](https://indiebookclub.biz/) and micropub.
+- I like to watch box sets and movies - my wife and I are [Cineworld Unlimited card](cineworld.co.uk/) holders.
+- I've been playing saxophone (Alto and Tenor mainly) off-and-on since the early 2000s. I can also play a few chords on a guitar and I'll happily tinker with a piano/keyboard, harmonica and clarinet although don't ask me to play you a full track!
+- Although I've not had time recently I did really enjoy [Lindyhop](/2015/06/28/bedford-place-vintage-festival/) - a 1920s style swing dance.
diff --git a/brainsteam/content/posts/2022/07/02/collingwood.md b/brainsteam/content/posts/2022/07/02/collingwood.md
deleted file mode 100644
index 56ff864..0000000
--- a/brainsteam/content/posts/2022/07/02/collingwood.md
+++ /dev/null
@@ -1,4 +0,0 @@
----
-post_meta:
-- date
----
\ No newline at end of file
diff --git a/brainsteam/content/posts/2022/12/11/repairable-tech.md b/brainsteam/content/posts/2022/12/11/repairable-tech.md
deleted file mode 100644
index 56ff864..0000000
--- a/brainsteam/content/posts/2022/12/11/repairable-tech.md
+++ /dev/null
@@ -1,4 +0,0 @@
----
-post_meta:
-- date
----
\ No newline at end of file
diff --git a/brainsteam/content/posts/2023/02/async-promise-constructors.md b/brainsteam/content/posts/2023/02/async-promise-constructors.md
index 3e85c85..69713a9 100644
--- a/brainsteam/content/posts/2023/02/async-promise-constructors.md
+++ b/brainsteam/content/posts/2023/02/async-promise-constructors.md
@@ -2,16 +2,15 @@
date: 2023-02-01 09:39:03+00:00
description: Why you shouldn't use async in your new Promise()
mp-syndicate-to:
-- https://brid.gy/publish/mastodon
-- https://brid.gy/publish/twitter
+ - https://brid.gy/publish/mastodon
+ - https://brid.gy/publish/twitter
post_meta:
-- date
+ - date
tags:
-- nodejs
-- typescript
-- javascript
-- softeng
-- null
+ - nodejs
+ - typescript
+ - javascript
+ - softeng
title: Async Promise Constructors
type: posts
url: /2023/2/1/async-promise-constructors
@@ -22,24 +21,22 @@ I ran into an interesting typescript/js problem yesterday at work.
The following code snippet was generating an error and a stack trace that was never being propagated up to the caller:
```typescript
-return new Promise(async (resolve, reject) =>{
+return new Promise(async (resolve, reject) => {
+ const data = await this.client.getObject(bucket, path);
- const data = await this.client.getObject(bucket, path)
+ const buf: any[] = [];
- const buf : any[] = []
+ data.on("data", (data) => {
+ buf.push(data);
+ });
- data.on('data', (data) => {
- buf.push(data)
- })
-
- data.on('error', (err) => {
- reject(err)
- })
-
- data.on('end', ()=>{
- resolve(JSON.parse(Buffer.concat(buf).toString()))
- })
+ data.on("error", (err) => {
+ reject(err);
+ });
+ data.on("end", () => {
+ resolve(JSON.parse(Buffer.concat(buf).toString()));
+ });
});
```
@@ -47,31 +44,32 @@ The code basically uses [minio](https://min.io/)'s client library to get the con
Seasoned js folks may have already spotted the problem (or at least guessed it based on the blog post title).
-I'ved used an `async` function inside my Promise constructor. I'm doing this so that I can make my async call to S3 but this has the added side effect of turning my promise constructer itself into a promise (promise-ception?). Promise constructors can't `await` so effectively if the `getObject` async call fails, the error is lost and nothing happens and the outer promise is never resolved or rejected.
+I'ved used an `async` function inside my Promise constructor. I'm doing this so that I can make my async call to S3 but this has the added side effect of turning my promise constructer itself into a promise (promise-ception?). Promise constructors can't `await` so effectively if the `getObject` async call fails, the error is lost and nothing happens and the outer promise is never resolved or rejected.
-As it turns out, [eslint has a rule for this](https://eslint.org/docs/latest/rules/no-async-promise-executor) which I had turned off.
+As it turns out, [eslint has a rule for this](https://eslint.org/docs/latest/rules/no-async-promise-executor) which I had turned off.
### Solution
I could make the getObject outer function async and then do the `getObject()` call in the outer layer:
```typescript
+async function someFunction() {
+ const data = await this.client.getObject(bucket, path);
-async function someFunction(){
+ return new Promise((resolve, reject) => {
+ const buf: any[] = [];
- const data = await this.client.getObject(bucket, path)
-
- return new Promise((resolve, reject) =>{
- const buf : any[] = []
-
- data.on('data', (data) => { buf.push(data) })
- data.on('error', (err) => { reject(err) })
- data.on('end', ()=>{
- resolve(JSON.parse(Buffer.concat(buf).toString()))
- })
+ data.on("data", (data) => {
+ buf.push(data);
});
+ data.on("error", (err) => {
+ reject(err);
+ });
+ data.on("end", () => {
+ resolve(JSON.parse(Buffer.concat(buf).toString()));
+ });
+ });
}
-
```
-Now if the `getObject` call fails the whole `someFunction()` fails (effectively the promise that is generated by use of the await/async syntactic sugar is rejected).
\ No newline at end of file
+Now if the `getObject` call fails the whole `someFunction()` fails (effectively the promise that is generated by use of the await/async syntactic sugar is rejected).
diff --git a/brainsteam/content/posts/2023/03/25/nlp-is-more-than-llms/index.md b/brainsteam/content/posts/2023/03/25/nlp-is-more-than-llms/index.md
index 5f8094b..d6e439c 100644
--- a/brainsteam/content/posts/2023/03/25/nlp-is-more-than-llms/index.md
+++ b/brainsteam/content/posts/2023/03/25/nlp-is-more-than-llms/index.md
@@ -10,7 +10,7 @@ post_meta:
resources:
- name: feature
src: images/language.jpg
-thumbnail: /2023/3/25//nlp-is-more-than-just-llms/images/language.jpg
+thumbnail: images/language.jpg
tags:
- nlp
- llms
diff --git a/brainsteam/content/posts/2023/06/17-xavier-dj/index.md b/brainsteam/content/posts/2023/06/17-xavier-dj/index.md
index 8469f1c..b48d87a 100644
--- a/brainsteam/content/posts/2023/06/17-xavier-dj/index.md
+++ b/brainsteam/content/posts/2023/06/17-xavier-dj/index.md
@@ -12,7 +12,7 @@ tags:
- personal
- ai
- ml
-thumbnail: /2023/6/17/xavier-the-spotify-dj/images/dj.png
+thumbnail: images/dj.png
title: Xavier the Spotify AI DJ
type: posts
url: /2023/6/17/xavier-the-spotify-dj
diff --git a/brainsteam/content/posts/2023/08/05/turbopilot.md b/brainsteam/content/posts/2023/08/05/turbopilot.md
new file mode 100644
index 0000000..3b6ff82
--- /dev/null
+++ b/brainsteam/content/posts/2023/08/05/turbopilot.md
@@ -0,0 +1,16 @@
+---
+title: "Turbopilot"
+date: 2023-08-05T19:40:53+01:00
+draft: true
+description: short summary
+url: /2023/8/5/turbopilot
+type: posts
+mp-syndicate-to:
+- https://brid.gy/publish/mastodon
+- https://brid.gy/publish/twitter
+tags:
+ - post
+---
+
+In April I caught COVID and while I was stuck at home I got bored with sitting around feeling sorry for myself, so I decided to play around with
+
diff --git a/brainsteam/content/posts/2023/08/13/freshrss.md b/brainsteam/content/posts/2023/08/13/freshrss.md
new file mode 100644
index 0000000..0426da4
--- /dev/null
+++ b/brainsteam/content/posts/2023/08/13/freshrss.md
@@ -0,0 +1,14 @@
+---
+title: "FreshRSS Updates"
+date: 2023-08-13T08:39:05+01:00
+description: Troubleshooting some freshrss maaintenance issues
+url: /2023/8/13/freshrss-updates
+type: posts
+mp-syndicate-to:
+- https://brid.gy/publish/mastodon
+- https://brid.gy/publish/twitter
+tags:
+ - rss
+ - selfhosting
+---
+
diff --git a/brainsteam/icons/bluesky.svg b/brainsteam/icons/bluesky.svg
new file mode 100644
index 0000000..81ebcca
--- /dev/null
+++ b/brainsteam/icons/bluesky.svg
@@ -0,0 +1,4 @@
+
diff --git a/brainsteam/icons/email.svg b/brainsteam/icons/email.svg
new file mode 100644
index 0000000..5f38422
--- /dev/null
+++ b/brainsteam/icons/email.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/brainsteam/icons/github.svg b/brainsteam/icons/github.svg
new file mode 100644
index 0000000..ce22700
--- /dev/null
+++ b/brainsteam/icons/github.svg
@@ -0,0 +1 @@
+
diff --git a/brainsteam/icons/mastodon.svg b/brainsteam/icons/mastodon.svg
new file mode 100644
index 0000000..030ad7c
--- /dev/null
+++ b/brainsteam/icons/mastodon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/brainsteam/static/images/comment-icon.svg b/brainsteam/static/images/comment-icon.svg
new file mode 100644
index 0000000..dc369c4
--- /dev/null
+++ b/brainsteam/static/images/comment-icon.svg
@@ -0,0 +1,3 @@
+
diff --git a/brainsteam/static/images/like-icon.svg b/brainsteam/static/images/like-icon.svg
new file mode 100644
index 0000000..51c2346
--- /dev/null
+++ b/brainsteam/static/images/like-icon.svg
@@ -0,0 +1,15 @@
+
\ No newline at end of file
diff --git a/brainsteam/static/images/repost-icon.svg b/brainsteam/static/images/repost-icon.svg
new file mode 100644
index 0000000..fa89acc
--- /dev/null
+++ b/brainsteam/static/images/repost-icon.svg
@@ -0,0 +1,17 @@
+
\ No newline at end of file
diff --git a/brainsteam/static/images/sprite.svg b/brainsteam/static/images/sprite.svg
new file mode 100644
index 0000000..e9cafb3
--- /dev/null
+++ b/brainsteam/static/images/sprite.svg
@@ -0,0 +1,13 @@
+
+
+
\ No newline at end of file
diff --git a/brainsteam/themes/hugo-ink b/brainsteam/themes/hugo-ink
index c1b6060..b8cb96f 160000
--- a/brainsteam/themes/hugo-ink
+++ b/brainsteam/themes/hugo-ink
@@ -1 +1 @@
-Subproject commit c1b6060453911a7d30108286df4533303a615d82
+Subproject commit b8cb96f370a009c5cb487147a96c71f52613af7d
diff --git a/brainsteam/themes/plague b/brainsteam/themes/plague
new file mode 160000
index 0000000..4739bdb
--- /dev/null
+++ b/brainsteam/themes/plague
@@ -0,0 +1 @@
+Subproject commit 4739bdb60036bd783ebd04fbf5151ab6346a63c9