Browse Source

Add blog posts from main site

Add Makefile with build and deploy instructions
use upstream theme
pull/8/head
Cian Butler 1 year ago
parent
commit
627fd0faef
Signed by: butlerx GPG Key ID: B37CA765BAA89170
72 changed files with 869 additions and 1190 deletions
  1. +3
    -0
      .gitmodules
  2. +16
    -0
      Makefile
  3. +7
    -3
      README.md
  4. +0
    -123
      assets/js/search.js
  5. +0
    -21
      assets/scss/404.scss
  6. +0
    -178
      assets/scss/article.scss
  7. +0
    -60
      assets/scss/articleList.scss
  8. +0
    -90
      assets/scss/code.scss
  9. +0
    -22
      assets/scss/colours.scss
  10. +0
    -16
      assets/scss/footer.scss
  11. +0
    -21
      assets/scss/header.scss
  12. +0
    -56
      assets/scss/homepage.scss
  13. +0
    -26
      assets/scss/main.scss
  14. +0
    -23
      assets/scss/nav.scss
  15. +0
    -18
      assets/scss/search.scss
  16. +0
    -19
      assets/scss/typography.scss
  17. +0
    -53
      assets/scss/variables.scss
  18. +2
    -1
      config.toml
  19. +24
    -0
      content/post/2017-AGM.md
  20. +25
    -0
      content/post/2017-EGM.md
  21. +3
    -3
      content/post/2018-04-02.md
  22. +90
    -86
      content/post/2018-12-08.md
  23. +67
    -75
      content/post/2019-02-18.md
  24. BIN
      content/post/birthday/cake.jpg
  25. +62
    -0
      content/post/birthday/index.md
  26. BIN
      content/post/digital-discovery-week/ddw.png
  27. +102
    -0
      content/post/digital-discovery-week/index.md
  28. BIN
      content/post/egm/egm.png
  29. +32
    -0
      content/post/egm/index.md
  30. BIN
      content/post/google-week/googleAtDcu2.jpg
  31. +70
    -0
      content/post/google-week/index.md
  32. +26
    -0
      content/post/installfest/index.md
  33. BIN
      content/post/installfest/linux.png
  34. BIN
      content/post/intersocs-beers/hanginthere.png
  35. +16
    -0
      content/post/intersocs-beers/index.md
  36. BIN
      content/post/iss-network-outage/downtime.png
  37. +15
    -0
      content/post/iss-network-outage/index.md
  38. BIN
      content/post/missing-member/bunbun.jpg
  39. BIN
      content/post/missing-member/bunbun_small.jpg
  40. +42
    -0
      content/post/missing-member/index.md
  41. +20
    -0
      content/post/new-redbrick-site-launched/index.md
  42. BIN
      content/post/new-redbrick-site-launched/site.png
  43. +22
    -0
      content/post/newyear-bigplans/index.md
  44. BIN
      content/post/newyear-bigplans/reggie.jpg
  45. BIN
      content/post/paul-bunbury/bunbunupdate.png
  46. +29
    -0
      content/post/paul-bunbury/index.md
  47. +36
    -0
      content/post/programming-talks-workshops/index.md
  48. BIN
      content/post/programming-talks-workshops/programming.png
  49. +49
    -0
      content/post/techweek/index.md
  50. BIN
      content/post/techweek/techweek.png
  51. +77
    -0
      content/post/week-4/index.md
  52. BIN
      content/post/week-4/intercom.png
  53. BIN
      content/post/week-4/logo.png
  54. BIN
      content/post/welcome-freshers/freshers.png
  55. +30
    -0
      content/post/welcome-freshers/index.md
  56. +3
    -3
      content/search.md
  57. +0
    -16
      layouts/404.html
  58. +0
    -11
      layouts/_default/baseof.html
  59. +0
    -5
      layouts/_default/index.json
  60. +0
    -25
      layouts/_default/index.xml
  61. +0
    -16
      layouts/_default/list.html
  62. +0
    -31
      layouts/_default/search.html
  63. +0
    -13
      layouts/_default/single.html
  64. +0
    -36
      layouts/index.html
  65. +0
    -17
      layouts/partials/article-list-item.html
  66. +0
    -35
      layouts/partials/article.html
  67. +0
    -5
      layouts/partials/footer.html
  68. +0
    -37
      layouts/partials/head.html
  69. +0
    -13
      layouts/partials/header.html
  70. +0
    -16
      layouts/partials/hero.html
  71. +0
    -17
      layouts/partials/paginator.html
  72. +1
    -0
      themes/base16

+ 3
- 0
.gitmodules View File

@@ -0,0 +1,3 @@
[submodule "themes/base16"]
path = themes/base16
url = git@github.com:butlerx/hugo-theme-base16.git

+ 16
- 0
Makefile View File

@@ -0,0 +1,16 @@
.PHONY: build clean deploy update-theme

clean:
rm -rf public resources

build:
hugo

deploy: clean build
# This Should be run from a server on redbrick
chmod 755 public/* public/**/* public/**/**/*
chmod 644 public/*.{css,xml,ico,js,json,html,webp} public/**/*.{css,xml,ico,js,json,html,webp} public/**/**/*.{css,xml,ico,js,json,html,webp}
rsync -avh public/* /webtree/vhosts/blog.redbrick.dcu.ie

update-theme:
git submodule foreach git pull

+ 7
- 3
README.md View File

@@ -1,14 +1,18 @@
# Blog
# Redbrick Blog

We screw up sometimes but they're usually fun stories
We screw up sometimes but they're usually fun stories. Stories from Redbrick.

![screenshot of the blog](./blog.png)

## Usage

- To Build the site run `hugo -d /path/to/serve/files`
- To Build the site run `hugo`
- To Preview the site locally run `hugo serve` and open `localhost:1313`
- To add a new post run `hugo new post/post-title` and then open
`content/post/post-title` in your editor
- When building for Redbrick sometimes permissions have broke. to avoid breaking
perms you can deploy from a Redbrick server with hugo installed by running
`make deploy`
- To Update the theme run `make update-theme`

For everything else check the [docs](https://gohugo.io/documentation/)

+ 0
- 123
assets/js/search.js View File

@@ -1,123 +0,0 @@
const summaryInclude = 60;
const fuseOptions = {
shouldSort: true,
includeMatches: true,
threshold: 0.0,
tokenize: true,
location: 0,
distance: 100,
maxPatternLength: 32,
minMatchCharLength: 1,
keys: [
{ name: 'title', weight: 0.8 },
{ name: 'contents', weight: 0.5 },
{ name: 'tags', weight: 0.3 },
{ name: 'categories', weight: 0.3 },
],
};

const searchQuery = param('s');
if (searchQuery) {
$('#search-query').val(searchQuery);
executeSearch(searchQuery);
} else {
$('#search-results').append('<p>Please enter a word or phrase above</p>');
}

function executeSearch(searchQuery) {
$.getJSON('/index.json', data => {
const pages = data;
const fuse = new Fuse(pages, fuseOptions);
const result = fuse.search(searchQuery);
if (result.length > 0) {
populateResults(result);
} else {
$('#search-results').append('<p>No matches found</p>');
}
});
}

function populateResults(result) {
$.each(result, (key, value) => {
const { contents } = value.item;
let snippet = '';
const snippetHighlights = [];
if (fuseOptions.tokenize) {
snippetHighlights.push(searchQuery);
} else {
$.each(value.matches, (matchKey, mvalue) => {
if (mvalue.key === 'tags' || mvalue.key === 'categories') {
snippetHighlights.push(mvalue.value);
} else if (mvalue.key === 'contents') {
const start = mvalue.indices[0][0] - summaryInclude > 0 ? mvalue.indices[0][0] - summaryInclude : 0;
const end =
mvalue.indices[0][1] + summaryInclude < contents.length
? mvalue.indices[0][1] + summaryInclude
: contents.length;
snippet += contents.substring(start, end);
snippetHighlights.push(
mvalue.value.substring(mvalue.indices[0][0], mvalue.indices[0][1] - mvalue.indices[0][0] + 1),
);
}
});
}

if (snippet.length < 1) {
snippet += contents.substring(0, summaryInclude * 2);
}
// pull template from hugo templarte definition
const templateDefinition = $('#search-result-template').html();
// replace values
const output = render(templateDefinition, {
key,
title: value.item.title,
link: value.item.permalink,
tags: value.item.tags,
author: value.item.author,
date: value.item.dates,
categories: value.item.categories,
snippet,
});
$('#search-results').append(output);

$.each(snippetHighlights, (snipkey, snipvalue) => {
$(`#summary-${key}`).mark(snipvalue);
});
});
}

function param(name) {
return decodeURIComponent((location.search.split(`${name}=`)[1] || '').split('&')[0]).replace(/\+/g, ' ');
}

function render(templateString, data) {
let conditionalMatches;
const conditionalPattern = /\$\{\s*isset ([a-zA-Z]*) \s*\}(.*)\$\{\s*end\s*}/g;
// since loop below depends on re.lastInxdex, we use a copy to capture any manipulations whilst inside the loop
let copy = templateString;
while ((conditionalMatches = conditionalPattern.exec(templateString)) !== null) {
if (data[conditionalMatches[1]]) {
// valid key, remove conditionals, leave contents.
copy = copy.replace(conditionalMatches[0], conditionalMatches[2]);
} else {
// not valid, remove entire section
copy = copy.replace(conditionalMatches[0], '');
}
}
for (const key in data) {
copy = copy.replace(new RegExp(`\\$\\{\\s*${key}\\s*\\}`, 'g'), data[key]);
if (key === 'date') {
copy = copy.replace(
new RegExp('\\$\\{\\s*dateFmt\\s*\\}', 'g'),
new Date(data[key]).toLocaleDateString('en-US', {
weekday: 'long',
year: 'numeric',
month: 'long',
day: 'numeric',
}),
data[key],
);
}
}
return copy;
}

+ 0
- 21
assets/scss/404.scss View File

@@ -1,21 +0,0 @@
.page-not-found {
h1 {
font-size: 5em;
text-align: center;
}

h2 {
@include margin($bottom: 4rem);
color: base('04');
font-size: 3em;
text-align: center;
}

@media (breakpoint-md) {
@each $level, $size in ('h1': 3em, 'h2': 2em) {
h#{$level} {
font-size: $size;
}
}
}
}

+ 0
- 178
assets/scss/article.scss View File

@@ -1,178 +0,0 @@
@import 'articleList';

@mixin highlight {
@include responsive;
@include margin($bottom: 1rem, $left: -8rem, $right: -8rem);
background-color: base('01');
box-sizing: border-box;
padding: 1em;
width: 52rem;
@media (breakpoint-md) {
@include margin($left: 0, $right: 0);
border-radius: 3px;
}
}

@mixin tableCell {
border-bottom: 1px solid base('04');
line-height: inherit;
padding: 0.25rem 1rem;
}

// Post List Layout
article {
&.single {
.meta {
font-size: 0.9em;
text-align: right;

.key {
color: base('03');
}

.val {
color: base('0e');

a {
color: base('0e');
}
}
}

h1 {
&.headline {
color: base('0a');
font-size: 3em;
margin-top: 0;
}
}

section {
@include articleLayout;

&.body {
@include padding($bottom: 3rem, $top: 4rem);
@each $prop,
$color
in (
'h1': base('0d'),
'h2': base('0b'),
'h3': base('09'),
'h4': base('08'),
'h5': base('02'),
'h6': base('03'),
'a': base('0f')
)
{
#{$prop} {
color: $color;
}
}
}
}

* {
max-width: 100%;
}

pre {
@include margin($bottom: 1rem, $top: 0);
border-radius: 3px;
overflow-x: auto;
padding: 2rem;
}

p {
code {
background: base('03');
border-radius: 3px;
color: base('07');
padding: 0.2em 0.5em;
}
}

div {
&.highlight {
@include highlight;
}
}

figure {
@include highlight;

img {
border-radius: 3px;
max-width: 100%;
width: 100%;
}

figcaption {
margin-top: 1rem;

h4 {
color: base('07');
font-style: italic;
font-weight: normal;
margin-top: 0;
text-align: center;
}
}
}

table {
border-collapse: separate;
border-spacing: 0;
max-width: 100%;
width: 100%;
}

tr {
&:last-child {
td {
border-bottom: 0;
}
}
}

th {
@include tableCell;
font-weight: bold;
text-align: left;
vertical-align: bottom;
}

td {
@include tableCell;
vertical-align: top;
}

blockquote {
@include margin($left: 2rem, $right: 3rem);
border-left: 5px solid base('0c');
padding-left: 1rem;
}

hr {
border: 0;
border-bottom: 1px solid base('04');
}

@media (breakpoint-md) {
.meta {
@include padding($left: 2rem, $right: 2rem);
}

h1 {
&.headline {
@include padding($left: 2rem, $right: 2rem);
}
}

section {
&.body {
@include padding($top: 2rem, $bottom: 1rem);
}
}
}
}
}

+ 0
- 60
assets/scss/articleList.scss View File

@@ -1,60 +0,0 @@
@mixin articleLayout {
background-color: base('07');
color: base('00');
padding: 1rem 8rem;

@media (breakpoint-md) {
@include padding($left: 2rem, $right: 2rem);
}
}

.article-list {
h1 {
&.list-title {
color: base('0a');
font-size: 3em;
}
}

article {
@include articleLayout;
@include padding($bottom: 4rem, $top: 4rem);
margin-bottom: 4rem;

h2 {
&.headline {
color: base('0d');
margin-top: 0;

a {
color: base('0d');
margin-top: 0;
}
}
}

.meta {
margin-bottom: 1rem;

.key {
color: base('03');
}

.val {
color: base('0e');

a {
color: base('0e');
}
}
}

section {
&.summary {
a {
color: base('0f');
}
}
}
}
}

+ 0
- 90
assets/scss/code.scss View File

@@ -1,90 +0,0 @@
pre {
background: base('00');
color: base('07');
}

.highlight {
.hll {
background-color: base('02');
}
@each $lang,
$base
in (
'bp': '07',
'c': '03',
'c1': '03',
'cm': '03',
'cp': '03',
'cs': '03',
'err': '08',
'gd': '08',
'gh': '07',
'gi': '0b',
'gp': '03',
'gu': '0c',
'il': '09',
'k': '0e',
'kc': '0e',
'kd': '0e',
'kn': '0c',
'kp': '0e',
'kr': '0e',
'kt': '0a',
'l': '09',
'ld': '0b',
'm': '09',
'mf': '09',
'mh': '09',
'mi': '09',
'mo': '09',
'n': '07',
'na': '0d',
'nb': '07',
'nc': '0a',
'nd': '0c',
'ne': '08',
'nf': '0d',
'ni': '07',
'nl': '07',
'nn': '0a',
'no': '08',
'nt': '0c',
'nv': '08',
'nx': '0d',
'o': '0c',
'ow': '0c',
'p': '07',
'py': '07',
's': '0b',
's1': '0b',
's2': '0b',
'sb': '0b',
'sc': '07',
'sd': '03',
'se': '09',
'sh': '0b',
'si': '09',
'sr': '0b',
'ss': '0b',
'sx': '0b',
'vc': '08',
'vg': '08',
'vi': '08',
'w': '07'
)
{
.#{$lang} {
color: base($base);
}
}

.ge {
font-style: italic;
}

@each $lang in gh, gp, gs, gu {
.#{$lang} {
font-weight: bold;
}
}
}

+ 0
- 22
assets/scss/colours.scss View File

@@ -1,22 +0,0 @@
@each $num, $color in $base {
.base#{$num} {
color: $color;
}
}

@function drawPalette($colors) {
$length: length($colors);
$color-stops: append((), nth($colors, 1), comma);
$stop-size: 100 / $length;

@for $i from 1 through $length {
$color: nth($colors, $i);

@if $i > 1 {
$color-stops: append($color-stops, $color $stop-size * ($i - 1) * 1%);
}

$color-stops: append($color-stops, $color $stop-size * $i * 1%);
}
@return linear-gradient(to right, $color-stops);
}

+ 0
- 16
assets/scss/footer.scss View File

@@ -1,16 +0,0 @@
footer {
@include pageBase;
@include margin($bottom: 1rem, $top: 2rem);
color: base('03');
font-size: 0.9em;
text-align: center;

a {
color: base('03');
text-decoration: none;
}

@media (breakpoint-md) {
@include margin($bottom: 0, $top: 0);
}
}

+ 0
- 21
assets/scss/header.scss View File

@@ -1,21 +0,0 @@
header {
@include pageBase;
@include margin($bottom: 2rem, $top: 1rem);

a {
&.path {
color: base('0d');
}
}

span {
&.caret {
color: base('07');
}
}

@media (breakpoint-md) {
@include padding($left: 2rem, $right: 2rem);
margin-top: 0;
}
}

+ 0
- 56
assets/scss/homepage.scss View File

@@ -1,56 +0,0 @@
@import 'colours';

.homepage {
@media (breakpoint-md) {
margin-bottom: 2rem;
}

h1 {
&.site-title {
color: base('0c');
font-size: 5em;
text-align: center;
@media (breakpoint-md) {
font-size: 3em;
}
}

&.headline {
color: base('0a');
font-size: 3em;
@media (breakpoint-md) {
@include padding($left: 2rem, $right: 2rem);
}
}
}

.hero-logo {
background: drawPalette(map-values($base));
height: 3em;
margin: 1em 0;
}

section {
&.categories,
&.tags {
@include padding($left: 2rem, $right: 2rem);
}
}

.category {
color: base('0e');

a {
color: base('0e');
}
}

.tag {
color: base('0e');
margin-right: 2em;

a {
color: base('0e');
}
}
}

+ 0
- 26
assets/scss/main.scss View File

@@ -1,26 +0,0 @@
@import 'variables', '404', 'article', 'code', 'footer', 'header', 'homepage',
'nav', 'search', 'typography';

body {
background-color: base('00');
color: base('07');
font-family: $fonts;
font-size: 100%;
line-height: 1.5;
margin: 0;
}

.container {
@include responsive;
@include margin($left: auto, $right: auto);
}

div {
&.right {
float: right;
}

&.clearfix {
overflow: auto;
}
}

+ 0
- 23
assets/scss/nav.scss View File

@@ -1,23 +0,0 @@
nav {
&.paginator {
text-align: center;

a {
color: base('0e');
}

.faded {
color: base('02');
}

.nav-left {
margin-left: auto;
margin-right: 1%;
}

.nav-right {
margin-left: 1%;
margin-right: auto;
}
}
}

+ 0
- 18
assets/scss/search.scss View File

@@ -1,18 +0,0 @@
.search {
display: flex;

h1 {
@include margin($top: inherit, $left: inherit);
}

&-box {
border: None;
border-radius: 2rem;
font-size: 1.5rem;
height: 3rem;
margin-top: 0.5rem;
padding-left: 1.5rem;
transition: background 0.55s ease;
width: 20rem;
}
}

+ 0
- 19
assets/scss/typography.scss View File

@@ -1,19 +0,0 @@
p {
margin-bottom: 1rem;
margin-top: 0;
}

@each $prop, $font-size in ('h1': 2rem, 'h2': 1.5rem, 'h3': 1.25rem, 'h4': 1rem, 'h5': 0.875rem, 'h6': 0.75rem) {
#{$prop} {
@include margin($bottom: 0.5em, $top: 1em);
font-size: $font-size;
font-weight: bold;
line-height: 1.25;
}
}

pre,
code {
font-family: inherit;
font-size: inherit;
}

+ 0
- 53
assets/scss/variables.scss View File

@@ -1,53 +0,0 @@
$fonts: 'Source Code Pro', monospace;
$max-width: 52em;

@custom-media breakpoint-md (max-width: $max-width);

$base: (
'00': #2d2d2d,
'01': #393939,
'02': #515151,
'03': #747369,
'04': #a09f93,
'05': #d3d0c8,
'06': #e8e6df,
'07': #f2f0ec,
'08': #f2777a,
'09': #f99157,
'0a': #fc6,
'0b': #9c9,
'0c': #6cc,
'0d': #69c,
'0e': #c9c,
'0f': #d27b53,
);

@function base($num) {
@return map-get($base, $num);
}

@mixin responsive {
max-width: $max-width;
@media (breakpoint-md) {
width: 100%;
}
}

@mixin padding($top: auto, $right: auto, $bottom: auto, $left: auto) {
padding-bottom: $bottom;
padding-left: $left;
padding-right: $right;
padding-top: $top;
}

@mixin margin($top: auto, $right: auto, $bottom: auto, $left: auto) {
margin-bottom: $bottom;
margin-left: $left;
margin-right: $right;
margin-top: $top;
}

@mixin pageBase {
@include padding($bottom: 1rem, $top: 1rem);
background-color: base('01');
}

+ 2
- 1
config.toml View File

@@ -1,8 +1,9 @@
baseURL = "https://admins.redbrick.dcu.ie/"
baseURL = "https://blog.redbrick.dcu.ie/"
languageCode = "en-us"
title = "Redbrick Blog"
author = "Redbrick Members"
pygmentsCodeFences = true
theme = "base16"

[outputs]
home = ["HTML", "RSS", "JSON"]


+ 24
- 0
content/post/2017-AGM.md View File

@@ -0,0 +1,24 @@
---
author: butlerx
date: '2017-04-06 09:00:27'
tags:
- AGM
title: AGM Results
---

Dear Redbrick members,

Redbrick would like to introduce our new committee and wish them good luck in
the next year.

- Chairperson: Terry Bolt (tbolt)
- Secretary: Wojtek Bednarzak (voy)
- Treasurer: Ciara Godwin (hexagon)
- Public Relations Officer: Chris Dowling (winesnob)
- Events Officer: James Mc Dermott (mctastic)
- System Administrator: Alex Mcgrath Kraak (akraak)
- System Administrator: Cormac Smartt (pints)
- System Administrator: Tom Doyle (greenday)
- Webmaster: Ben McMahon (mcmahon)
- Helpdesk: Sahil Mehra (pr0n)
- Helpdesk: Michal Durinik (mikello)

+ 25
- 0
content/post/2017-EGM.md View File

@@ -0,0 +1,25 @@
---
author: winesnob
date: '2017-11-08 21:38:37'
tags:
- EGM
title: EGM Results
---

Dear Redbrick members,

Redbrick would like to introduce our new committee members along with the old
ones... and wish them good luck.

- **Chairperson**: Terry Bolt (tbolt)
- **Secretary**: Chris Dowling (winesnob)
- **Treasurer**: Ciara Godwin (hexagon)
- **Public Relations Officer**: Josh Malone (sangreal)
- **Events Officer**: James Mc Dermott (mctastic)
- **System Administrator**: Alex Mcgrath Kraak (akraak)
- **System Administrator**: Cormac Smartt (pints)
- **System Administrator**: Tom Doyle (greenday)
- **Webmaster**: Ben McMahon (mcmahon)
- **Helpdesk**: Nevan Oman Crowe (branch)
- **Helpdesk**: Cliodhna Harrison (thegirl)
- **First Year Liason Officer**: Anthony Doran (albino)

+ 3
- 3
content/post/2018-04-02.md View File

@@ -90,6 +90,6 @@ tables and reverting the container didn't magically fix the database inside.

So the TL;DR.

* Always lock your container version
* containers don't magically fix things
* And validate your database after modifying it
- Always lock your container version
- containers don't magically fix things
- And validate your database after modifying it

+ 90
- 86
content/post/2018-12-08.md View File

@@ -13,101 +13,105 @@ tags:

## Alert Recieved

* A raintank alert was recieved @ 23:38 to inform that the website was down
* A customer informed the site was down @ 00:38

- A raintank alert was recieved @ 23:38 to inform that the website was down
- A customer informed the site was down @ 00:38

## Alert Validation

* Exploration to the site revealed that there was in fact an apache error
* The error was a 403 that apache couldn't read the files
* And interesting not is that the webserver could also not read the custom redbrick error page, another hint that this was bigger than just one folder
- Exploration to the site revealed that there was in fact an apache error
- The error was a 403 that apache couldn't read the files
- And interesting not is that the webserver could also not read the custom
redbrick error page, another hint that this was bigger than just one folder

## Fix

* Error logs were investigated
* Apache error logs gave an error of the following
```
[Sat Dec 08 11:53:33 2018] [error] [client 66.249.81.152] (1)Operation not permitted: file permissions deny server access: /webtree/redbrick/rb_custom_error/403.html
[Sat Dec 08 11:53:33 2018] [crit] [client 66.249.81.150] (1)Operation not permitted: /home/member/m/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
[Sat Dec 08 11:53:33 2018] [error] [client 66.249.81.150] (1)Operation not permitted: file permissions deny server access: /webtree/redbrick/rb_custom_error/403.html
[Sat Dec 08 11:53:33 2018] [crit] [client 66.249.81.154] (1)Operation not permitted: /home/member/m/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
[Sat Dec 08 11:53:33 2018] [error] [client 66.249.81.154] (1)Operation not permitted: file permissions deny server access: /webtree/redbrick/rb_custom_error/403.html
[Sat Dec 08 11:53:33 2018] [error] [client 66.249.75.33] PHP Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0
[Sat Dec 08 11:53:33 2018] [crit] [client 46.229.168.140] (1)Operation not permitted: /webtree/w/wiki/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
[Sat Dec 08 11:53:33 2018] [error] [client 46.229.168.140] (1)Operation not permitted: file permissions deny server access: /webtree/redbrick/rb_custom_error/403.html
[Sat Dec 08 11:53:38 2018] [crit] [client 157.55.39.210] (1)Operation not permitted: /webtree/p/pubsoc/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
[Sat Dec 08 11:53:38 2018] [error] [client 157.55.39.210] (1)Operation not permitted: file permissions deny server access: /webtree/redbrick/rb_custom_error/403.html
```
* This lead us to view logs from dmsg
```
[36821900.601330] NFS: Server 192.168.0.24 reports our clientid is in use
[36821900.605982] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821905.612160] NFS: Server 192.168.0.24 reports our clientid is in use
[36821905.616701] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821910.622881] NFS: Server 192.168.0.24 reports our clientid is in use
[36821910.626795] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821915.633815] NFS: Server 192.168.0.24 reports our clientid is in use
[36821915.637714] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821920.644780] NFS: Server 192.168.0.24 reports our clientid is in use
[36821920.648684] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821925.655444] NFS: Server 192.168.0.24 reports our clientid is in use
[36821925.660511] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821930.666309] NFS: Server 192.168.0.24 reports our clientid is in use
[36821930.670822] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821935.677022] NFS: Server 192.168.0.24 reports our clientid is in use
[36821935.680605] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821940.687986] NFS: Server 192.168.0.24 reports our clientid is in use
[36821940.691938] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821945.698937] NFS: Server 192.168.0.24 reports our clientid is in use
[36821945.702396] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821950.709790] NFS: Server 192.168.0.24 reports our clientid is in use
[36821950.713700] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821955.720501] NFS: Server 192.168.0.24 reports our clientid is in use
[36821955.724923] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821960.731372] NFS: Server 192.168.0.24 reports our clientid is in use
[36821960.735952] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821965.742345] NFS: Server 192.168.0.24 reports our clientid is in use
[36821965.746246] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821970.753027] NFS: Server 192.168.0.24 reports our clientid is in use
[36821970.756539] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821975.763974] NFS: Server 192.168.0.24 reports our clientid is in use
[36821975.767870] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821980.774846] NFS: Server 192.168.0.24 reports our clientid is in use
[36821980.779018] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821985.785629] NFS: Server 192.168.0.24 reports our clientid is in use
[36821985.790880] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821990.796508] NFS: Server 192.168.0.24 reports our clientid is in use
[36821990.800403] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821995.807262] NFS: Server 192.168.0.24 reports our clientid is in use
[36821995.811159] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36822000.818190] NFS: Server 192.168.0.24 reports our clientid is in use
[36822000.822107] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36822005.828955] NFS: Server 192.168.0.24 reports our clientid is in use
[36822005.833709] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36822010.839894] NFS: Server 192.168.0.24 reports our clientid is in use
[36822010.845658] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36822015.850727] NFS: Server 192.168.0.24 reports our clientid is in use
[36822015.854476] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36822020.861622] NFS: Server 192.168.0.24 reports our clientid is in use
[36822020.865539] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36822025.872404] NFS: Server 192.168.0.24 reports our clientid is in use
[36822025.876325] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
```
* From this an admin identified the error "clientid is in use" can mean that NFS (Netword File Storage) and server (Web Server) were out of sync
* This means that there were error messages to do with permissions
- Error logs were investigated

- Apache error logs gave an error of the following

```
[Sat Dec 08 11:53:33 2018] [error] [client 66.249.81.152] (1)Operation not permitted: file permissions deny server access: /webtree/redbrick/rb_custom_error/403.html
[Sat Dec 08 11:53:33 2018] [crit] [client 66.249.81.150] (1)Operation not permitted: /home/member/m/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
[Sat Dec 08 11:53:33 2018] [error] [client 66.249.81.150] (1)Operation not permitted: file permissions deny server access: /webtree/redbrick/rb_custom_error/403.html
[Sat Dec 08 11:53:33 2018] [crit] [client 66.249.81.154] (1)Operation not permitted: /home/member/m/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
[Sat Dec 08 11:53:33 2018] [error] [client 66.249.81.154] (1)Operation not permitted: file permissions deny server access: /webtree/redbrick/rb_custom_error/403.html
[Sat Dec 08 11:53:33 2018] [error] [client 66.249.75.33] PHP Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0
[Sat Dec 08 11:53:33 2018] [crit] [client 46.229.168.140] (1)Operation not permitted: /webtree/w/wiki/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
[Sat Dec 08 11:53:33 2018] [error] [client 46.229.168.140] (1)Operation not permitted: file permissions deny server access: /webtree/redbrick/rb_custom_error/403.html
[Sat Dec 08 11:53:38 2018] [crit] [client 157.55.39.210] (1)Operation not permitted: /webtree/p/pubsoc/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
[Sat Dec 08 11:53:38 2018] [error] [client 157.55.39.210] (1)Operation not permitted: file permissions deny server access: /webtree/redbrick/rb_custom_error/403.html
```

- This lead us to view logs from dmsg

* The next step was to try unmount the NFS and remount it
* Apache was using the NFS and would not let the NFS unmount
* Apache was stopped.
* There was still something stopping the NFS from unmounting
* It was decided that safest option over forcing an unmount was the reboot the machine
* The machine was rebooted and the NFS mounted successfully
* The website and files were restored to their working state
```
[36821900.601330] NFS: Server 192.168.0.24 reports our clientid is in use
[36821900.605982] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821905.612160] NFS: Server 192.168.0.24 reports our clientid is in use
[36821905.616701] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821910.622881] NFS: Server 192.168.0.24 reports our clientid is in use
[36821910.626795] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821915.633815] NFS: Server 192.168.0.24 reports our clientid is in use
[36821915.637714] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821920.644780] NFS: Server 192.168.0.24 reports our clientid is in use
[36821920.648684] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821925.655444] NFS: Server 192.168.0.24 reports our clientid is in use
[36821925.660511] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821930.666309] NFS: Server 192.168.0.24 reports our clientid is in use
[36821930.670822] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821935.677022] NFS: Server 192.168.0.24 reports our clientid is in use
[36821935.680605] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821940.687986] NFS: Server 192.168.0.24 reports our clientid is in use
[36821940.691938] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821945.698937] NFS: Server 192.168.0.24 reports our clientid is in use
[36821945.702396] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821950.709790] NFS: Server 192.168.0.24 reports our clientid is in use
[36821950.713700] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821955.720501] NFS: Server 192.168.0.24 reports our clientid is in use
[36821955.724923] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821960.731372] NFS: Server 192.168.0.24 reports our clientid is in use
[36821960.735952] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821965.742345] NFS: Server 192.168.0.24 reports our clientid is in use
[36821965.746246] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821970.753027] NFS: Server 192.168.0.24 reports our clientid is in use
[36821970.756539] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821975.763974] NFS: Server 192.168.0.24 reports our clientid is in use
[36821975.767870] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821980.774846] NFS: Server 192.168.0.24 reports our clientid is in use
[36821980.779018] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821985.785629] NFS: Server 192.168.0.24 reports our clientid is in use
[36821985.790880] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821990.796508] NFS: Server 192.168.0.24 reports our clientid is in use
[36821990.800403] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36821995.807262] NFS: Server 192.168.0.24 reports our clientid is in use
[36821995.811159] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36822000.818190] NFS: Server 192.168.0.24 reports our clientid is in use
[36822000.822107] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36822005.828955] NFS: Server 192.168.0.24 reports our clientid is in use
[36822005.833709] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36822010.839894] NFS: Server 192.168.0.24 reports our clientid is in use
[36822010.845658] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36822015.850727] NFS: Server 192.168.0.24 reports our clientid is in use
[36822015.854476] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36822020.861622] NFS: Server 192.168.0.24 reports our clientid is in use
[36822020.865539] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
[36822025.872404] NFS: Server 192.168.0.24 reports our clientid is in use
[36822025.876325] NFS: state manager: lease expired failed on NFSv4 server 192.168.0.24 with error 1
```

- From this an admin identified the error "clientid is in use" can mean that
NFS (Netword File Storage) and server (Web Server) were out of sync
- This means that there were error messages to do with permissions

- The next step was to try unmount the NFS and remount it
- Apache was using the NFS and would not let the NFS unmount
- Apache was stopped.
- There was still something stopping the NFS from unmounting
- It was decided that safest option over forcing an unmount was the reboot the
machine
- The machine was rebooted and the NFS mounted successfully
- The website and files were restored to their working state

On behalf of the admin team we appologise for the outage

Regards,
greenday && The admin Team
Regards, greenday && The admin Team

+ 67
- 75
content/post/2019-02-18.md View File

@@ -10,42 +10,39 @@ tags:

# Paying the Debt: Upgrading MySQL 5.5 to Percona 8.0

It cannot be denied that Redbrick's services have been a bit wonky recently.
Our uptime has been all over the place and our systems have been crumbling. As
much as we would love to blame this on our hardware, this is not the case. RB's
tech stack has been a spaghetti monster for quite some time, having multiple
appendages added to it over the years. Sufficient time has not been committed
to keeping things up to date, and the tech debt has finally caught up with us
in a major way.
It cannot be denied that Redbrick's services have been a bit wonky recently. Our
uptime has been all over the place and our systems have been crumbling. As much
as we would love to blame this on our hardware, this is not the case. RB's tech
stack has been a spaghetti monster for quite some time, having multiple
appendages added to it over the years. Sufficient time has not been committed to
keeping things up to date, and the tech debt has finally caught up with us in a
major way.


## SELECT issues FROM mysql\_history;
## SELECT issues FROM mysql_history;

It was diagnosed some time in 2018 that the reason for the intermittent down
time of a number of our sites was our single all-serving MySQL 5.5 instance.
This runs our our server Metharme - a Ubuntu _12.04_ box with quite a beefy
spec which houses our Apache sites, MySQL and a plethora of other services,
all deployed monolithically on the bare metal. Needless to say, any updates
to this box are a feat of human engineering.
This runs our our server Metharme - a Ubuntu _12.04_ box with quite a beefy spec
which houses our Apache sites, MySQL and a plethora of other services, all
deployed monolithically on the bare metal. Needless to say, any updates to this
box are a feat of human engineering.

In November things became desperate. We had to restart the MySQL instance
every 3 hours or so to keep our services online. We tried using a cron job
to automate this (which was a bad enough idea already) but to our horror we
discovered that cron is broken on Metharme - an issue for another day.
In November things became desperate. We had to restart the MySQL instance every
3 hours or so to keep our services online. We tried using a cron job to automate
this (which was a bad enough idea already) but to our horror we discovered that
cron is broken on Metharme - an issue for another day.

On top of the monitoring alerts themselves, we started to receive a lot of
emails from our users stating that their site was down, to the point where
we built up some 10-mail threads with people in a mixed attempt to resolve
and diagnose the issues. Something else had to be done.

emails from our users stating that their site was down, to the point where we
built up some 10-mail threads with people in a mixed attempt to resolve and
diagnose the issues. Something else had to be done.

## SELECT * FROM investigation;
## SELECT \* FROM investigation;

Diagnosing this failure was very difficult. There are hundreds of websites
on Redbrick's infrastructure which rely on this service. There are also
hundreds of databases in our MySQL instance, some of which date back to
MySQL 4.X. Narrowing down a culprit was akin to finding a needle in a haystack.
From space.
Diagnosing this failure was very difficult. There are hundreds of websites on
Redbrick's infrastructure which rely on this service. There are also hundreds of
databases in our MySQL instance, some of which date back to MySQL 4.X. Narrowing
down a culprit was akin to finding a needle in a haystack. From space.

Below you can see our MySQL Queries counter which clearly shows our 3-hour
restart hack. Where it flatlines is where the service was down.
@@ -53,34 +50,32 @@ restart hack. Where it flatlines is where the service was down.
{{< figure src="/img/2019-02-18-metharme.webp" title="Metharme stats" >}}

None of our graphs indicated any sort of hardware limitation to be the culprit,
and our only idea at this point was to (at least try) upgrade our instance.
The apache logs and metrics were no help either as we do not have per-site
insights into our performance (since we only have one Apache instance).

and our only idea at this point was to (at least try) upgrade our instance. The
apache logs and metrics were no help either as we do not have per-site insights
into our performance (since we only have one Apache instance).

## UPDATE mysql SET version = 8.0;

Updating MySQL in-place wasn't an option. The latest available package for
Ubuntu 12.04 was already installed on Metharme. The best thing we could do
was deploy MySQL containerised onto Zeus, our container server, and redirect
traffic to it.
Ubuntu 12.04 was already installed on Metharme. The best thing we could do was
deploy MySQL containerised onto Zeus, our container server, and redirect traffic
to it.

There was a lot of discussion around what version to use. We looked at MySQL 5.7
and 8.0, MariaDB 11, and Percona 8.0. The logic was that if we were going
to upgrade to a breaking version with some confidence, it would be Percona.
Should that fail catastrophically we would bring it up to MySQL 5.7. Maria
was quickly ruled out as an option as it cannot replicate between MySQL
and itself due to some breaking changes in its design (namely GTID changes).

Putting it in a container specifically was only a means to fulfil the task.
We ended up attaching a bridge network and giving the container a "real" IP
address on our network - one which looks and behaves like a baremetal host.
This means that we have an IP address for mysql which can "float" to wherever,
or whatever, is hosting the instance, and also doesn't complicate our
routing any further.

Another goal was to "actually" update the databases. This meant maintaining
as many defaults as possible in the new instance - such as the `SQL_MODE` which
and 8.0, MariaDB 11, and Percona 8.0. The logic was that if we were going to
upgrade to a breaking version with some confidence, it would be Percona. Should
that fail catastrophically we would bring it up to MySQL 5.7. Maria was quickly
ruled out as an option as it cannot replicate between MySQL and itself due to
some breaking changes in its design (namely GTID changes).

Putting it in a container specifically was only a means to fulfil the task. We
ended up attaching a bridge network and giving the container a "real" IP address
on our network - one which looks and behaves like a baremetal host. This means
that we have an IP address for mysql which can "float" to wherever, or whatever,
is hosting the instance, and also doesn't complicate our routing any further.

Another goal was to "actually" update the databases. This meant maintaining as
many defaults as possible in the new instance - such as the `SQL_MODE` which
controls what sort of error tolerance it provides. We only needed to set the
following things in the end:

@@ -92,9 +87,8 @@ collation_server=utf8mb3_unicode_ci
```

As it turns out, there's almost no PHP support for the newer password hashes,
and on top of the work required to convert the old passwords this ended up
being a necessary change.

and on top of the work required to convert the old passwords this ended up being
a necessary change.

## UPDATE mysql SET host="Zeus";

@@ -103,36 +97,35 @@ uptime) wasn't an option until the replacement was production ready.

In order to pull this off, we restored a backup from Metharme to Zeus and
enabled replication from the old to the new instance. Despite the countless
warnings and edge cases painted all over the documentation, this worked
almost perfectly. I say almost - as some tables were so old they couldn't be
restored and others were corrupt in the 5.5 instance itself. Of the ~584
databases we have, only 12 ended up being left behind.
warnings and edge cases painted all over the documentation, this worked almost
perfectly. I say almost - as some tables were so old they couldn't be restored
and others were corrupt in the 5.5 instance itself. Of the ~584 databases we
have, only 12 ended up being left behind.

Once the backup + replication was setup and working, we began testing a few
sites on the new instance. One of the first was [the wiki](https://wiki.redbrick.dcu.ie/mw/Main_Page),
which went perfectly. After changing the MediaWiki configs we were immediately
able to read and change wiki entries on the new instance.
sites on the new instance. One of the first was
[the wiki](https://wiki.redbrick.dcu.ie/mw/Main_Page), which went perfectly.
After changing the MediaWiki configs we were immediately able to read and change
wiki entries on the new instance.

Next we moved a random tribute member's site. The webapp they are using is
called [Koken](http://koken.me/) and provides an image gallery blog. It's the
perfect outdated PHP worst-case scenario for the test, and after changing
some compatibility flags in Percona 8.0 and changing the `SQL_MODE` for
the app's connections it worked fine!
perfect outdated PHP worst-case scenario for the test, and after changing some
compatibility flags in Percona 8.0 and changing the `SQL_MODE` for the app's
connections it worked fine!

## INSERT INTO mysql_history(result,issues) VALUES ("SUCCESS", 0);

## INSERT INTO mysql\_history(result,issues) VALUES ("SUCCESS", 0);

Fortunately the admins of old made at least one good decision. MySQL has its
own DNS entry, and all our services are referencing it. In order to switch
everything to the new instance all we had to do was update the DNS entry
to point to the new IP address and it would "just work".
Fortunately the admins of old made at least one good decision. MySQL has its own
DNS entry, and all our services are referencing it. In order to switch
everything to the new instance all we had to do was update the DNS entry to
point to the new IP address and it would "just work".

To our own surprise and relief, this turned out to be true. After changing the
address it took us a moment to verify if the switch had actually been made, as
the only visible difference was in the graphs on either side. Every site
appeared to continue operating normally.


## DROP DATABASE metharme;

With the DNS now switched, there was no real turning back. Data was already
@@ -142,18 +135,17 @@ insane move given the whole 30 seconds of testing we had between the DNS switch
and the shutdown of the old instance, but we were confident that our new
instance was operating normally and it was safe to do so.

Metrics on the new instance have been deceptfully low, however. Here's a screenshot
of our metrics the day this post was made.
Metrics on the new instance have been deceptfully low, however. Here's a
screenshot of our metrics the day this post was made.

{{< figure src="/img/2019-02-18-zeus.webp" title="Zeus stats" >}}

As you can see, we're seeing a fraction of the traffic we had before, and things
are just as performant as they always were. This would
suggest that the service(s) to blame for killing 5.5 were either hard coded to use
the old IP address or aren't compatible with Percona 8.0.
are just as performant as they always were. This would suggest that the
service(s) to blame for killing 5.5 were either hard coded to use the old IP
address or aren't compatible with Percona 8.0.

To this date, we have encountered no issues with MySQL nor have any users
contacted us about any site issues. It's safe to say, MySQL is fixed.


m1cr0man && The admin Team

BIN
content/post/birthday/cake.jpg View File

Before After
Width: 540  |  Height: 960  |  Size: 77 KiB

+ 62
- 0
content/post/birthday/index.md View File

@@ -0,0 +1,62 @@
---
author: butlerx
date: '2016-04-04'
tags:
- announce
- birthday
- AGM
title: Redbrick Birthday and New Committee
---

Hi all:

We’ve had a busy week with a talk, quiz and the AGM. Last week was the AGM or
the shuffling of Committee, when we say good bye to some old faces and hello to
some new ones. As those of you who attended the AGM know, I was appointed as
Redbrick’s new and shiny secretary, I look forward to a year writing badly
worded but informing announces for my adoring public. Now down to business…

<!-- more -->

- Redbrick 20th Birthday - Saturday 09/04 - Opium Cafe - 19:00

# AGM Results

The results of the AGM election on Thursday are as follows:

- Noah Donnelly (cac) - Chair
- Cian Butler (butlerx) - Secretary
- Ross O'sullivan (sully) - Treasurer
- Cliodhna Harrison (thegirl) - Events
- Liam Rooney (ginger) - PRO
- Cormac Smartt (pints) - Helpdesk
- Lorcan Boyle (zergless) - Admin
- Richie Walsh (koffee) - Admin

# Redbrick 20th Birthday

![Birthday Cake](cake.jpg)

- Date: Saturday 09/04
- Time: 19:00
- Location: Opium Cafe, Wexford Street, Dublin
- More info: http://birthday.redbrick.dcu.ie/

The cake has been ordered, showers have been had, cat sitters have been arranged
and the hoodies have been ironed…. Yes that’s right, Redbrick’s 20th birthday is
just around the corner! The event is taking place this very Saturday at Opium
Cafe in town so head on over to the birthday website to reserve your ticket if
you haven’t already done so. We look forward to seeing both students and
associates for a few drinks and a bit of gossip. Any questions? Just give us a
shout...

We are all looking forward to seeing you.

As always, keep your eyes peeled on the lovely calendar and social media pages:

- Twitter: @RedbrickDCU
- Facebook: https://www.facebook.com/dcuredbrick
- Snapchat: RedbrickDCU
- Calendar: http://tinyurl.com/redbrickCalendar

Hoping you have a good week from all of the Redbrick Committee. Bye for now.

BIN
content/post/digital-discovery-week/ddw.png View File

Before After
Width: 413  |  Height: 280  |  Size: 120 KiB

+ 102
- 0
content/post/digital-discovery-week/index.md View File

@@ -0,0 +1,102 @@
---
author: tziegler
banner: ddw.png
date: '2011-11-13 02:32:50'
tags:
- web design
- Digital Discovery Week
title: Digital Discovery Week
---

Redbrick in association with the [Student's Union](http://www.dcusu.ie/) are
extremely proud to host the first annual Digital Discovery Week in DCU. The idea
of Digital Discovery Week is to show how computing is everywhere in our day to
day lives and to engage those of us that are quite technical as well as those
that may not be studying computing.

We have a whole week jam packed full of events that are aimed at everybody in
DCU and we encourage everyone, not just Redbrick members, to come along to any
event and learn something new.

<!-- more -->

**Visit [DigitalDiscovery.dcu.ie](http://digitaldiscovery.dcu.ie) for updated
event info.**

Here's a rundown of what's happening:

## Monday 14th

#### Designing For The Mobile Web - 5pm to 6pm

_LG26 - Computing Building_

How do you approach creating a website for a mobile device? What do you need to
be aware of? Are there technical limitations? On Monday we'll be showing you how
to approach designing websites for mobile devices like iPhones and Android
smartphones.

#### Kickoff Drinks in Nubar - 6pm to late

_Nubar in the Hub_

We'll be starting off the week with a few drinks in Nubar. Come along and get to
meet a few new people. There'll also be a special cocktail available for this
week and this week only. What's in it? You'll have to try one and find out.

## Tuesday 15th

#### Workday Seminar - 6pm to 8pm

_QG13 - Business School_

Workday have very kindly agreed to come to DCU to do a few quickfire talks.
They'll also be doing a quick Q&A on interview techniques. To top it all off
they've kindly agreed to put some money behind the bar as well.

What are they talking about?

1. Cloud Computing
2. Continuous 3Ds
3. You and The Software Industry

## Wednesday 16th

#### 3D Modelling Workshop - 2pm to 4pm

_LG26 - Computing Building_

We'll be holding a workshop where you'll learn what goes into creating movies in
3D software. Ever wanted to make movies like Toy Story? Come see the basics of
what that takes. We'll be doing some basic 3D Modelling and showing you how to
animate a camera to create some great movies of your own.

#### Techspectations - LinkedIn Marketing - 6pm to 8pm

_QG13 - Business School_

Workshop presented by Dr. Theo Lynn - DCU Director of Leadership and Innovation.
More details to follow.

## Thursday 17th

#### What's inside your Computer? - 5pm to 7pm

_L101 - Computing Building_

Ever wondered what is actually inside your computer and what makes it tick?
We'll be doing a hands on workshop on what goes on inside your computer. You'll
be taking apart a computer and learning what components do what. You may just
find out it's not as scary as you think it is.

## Friday 18th

#### #GetSocial - 5pm to 7pm

_Mahony Hall in the Helix_

To finish off the week we'll have some world leaders in social media speak in
the Helix. More details to follow.

**Visit [DigitalDiscovery.dcu.ie](http://digitaldiscovery.dcu.ie) for updated
event info.**

BIN
content/post/egm/egm.png View File

Before After
Width: 413  |  Height: 280  |  Size: 39 KiB

+ 32
- 0
content/post/egm/index.md View File

@@ -0,0 +1,32 @@
---
author: teapott
banner: egm.png
date: '2013-10-21 00:06:14'
tags:
- EGM
title: EGM
---

This year Redbrick's EGM is taking place on Wednesday October 23<sup>rd</sup> in
QG21. During this meeting we will hold elections for the following positions:

<!-- more -->

- System Administrator
- Webmaster
- Treasurer
- Public Relations Officer
- First Year Rep

If you are interested in running for either Webmaster or Systems Administrator
you will have to sit an exam.

Previous exams can be found [here](http://www.redbrick.dcu.ie/help/exams).

The dates for these exams will be advertised shortly, please
[get in touch with us](mailto:committee@redbrick.dcu.ie) by Monday night (21st
October) if you would like to sit either exam.

Any questions on individual exams can be directed to
[admins](mailto:admins@redbrick.dcu.ie) or
[webmaster](mailto:webmaster@redbrick.dcu.ie).

BIN
content/post/google-week/googleAtDcu2.jpg View File

Before After
Width: 580  |  Height: 363  |  Size: 72 KiB

+ 70
- 0
content/post/google-week/index.md View File

@@ -0,0 +1,70 @@
---
author: kylar
banner: googleAtDcu2.jpg
date: '2014-10-07 21:15:00'
tags:
- google
- associates
thumbnail: googleAtDcu2.jpg
title: Google Week
---

It's week 3 and Redbrick our kicking off our events for the year with a bang!

It's Google Week! A week filled with talks from Googlers, DCU graduates and
associate Redbrick members on things like Site Reliability Engineering, and
Systems at Scale.

Firstly we'd like to thank everyone who came along to the Tech University Open
House in Google HQ last Friday, we hope you ad a great day!

Now on to the good stuff, what's coming up this week you say?

<!-- more -->

**Hangout on Air - Perspectives on Engineering at Google**
When: Tuesday October 7th from 5 -6pm
Where: HG10
Hear from Google Engineers, from Dublin and Mountain View. They'll be talking
about their path to Google and their career experiences to date.

**Google @ DCU
When: Wednesday 8th October
Where: QG22**
We'll have 3 talks as follows. We can guarantee you these talks are fantastic
having heard from two of the speakers on Friday!

**Time 1.00 - 2.00** A talk given by DCU alum and Redbrick member John Looney.
John is a member of the SRE team responsible for Google's Data centre and he'll
be giving us a talk called: "Perspectives on studying Computer Science"

**Time 2.00 - 3.00** "Systems at Scale: Tales from Google Site Reliability
Engineering" This talk will be given by Andrew Widdowson, a Mountain View SRE.
Andrew will be talking about how the smallest keystroke can make the biggest
impact when dealing with systems at scale.

**Time: 3.00 - 3.30** Last but certainly not least we will hear from STEP intern
Conor Flynn, who is in second year of PSSD here in DCU. He will be discussing
his experience at Google and will be happy to answer all your questions!

We'd recommend coming along and bringing anyone even a little bit curious as to
how Google goes about its daily routine. Bring your friends, bring your mum,
heck... even bring your cat!! We've been looking forward to these talks for
quite some time and we hope you enjoy them!

Last of the talks for this week is one of our annual talks the annual:
**Introduction to Redbrick**
**When: Wednesday 8th at 4pm
Where: QG22
\*\***What:\*\* This is a great chance for everyone to get to know the
committee. In this talk we'll cover a little history of the society, our
services and our plans for the year. We will cover: Who's who in the committee.
What each committee member does. What Redbrick has to offer - an intro by our
Education Officer. What's planned for the rest of the year.

There will also be a Q&A session where you can ask about anything you need help
or advice on! And, as if that wasn't enough, there will be pizza!

For more info keep an eye on your emails and our Facebook page!

[https://www.facebook.com/dcuredbrick](https://www.facebook.com/dcuredbrick)

+ 26
- 0
content/post/installfest/index.md View File

@@ -0,0 +1,26 @@
---
author: polka
banner: linux.png
date: '2013-11-18 19:05:15'
tags:
- Linux
- installfest
title: Redbrick Linux Installfest
---

This year we were able to host our annual Installfest, thanks to the support of
Ubuntu Ireland. We offered three options for attendees, Ubuntu 12.04, OpenSuse
13.1, and Mint 15. With most of attendees choosing to install Ubuntu as a dual
boot, it was simple business from there, except for some pesky Windows 8
machines.

<!-- more -->

We were lucky enough to have CD's already from Ubuntu, along with some stickers
for people to decorate their machines should they wish. We also had UBS's of all
distros on hold on our Ubuntu lanyards.

Overall it was a great Installfest! Special thanks go to Ubuntu Ireland for
their kind donations, and Firehouse for tasty pizza.

Pictures to follow soon.

BIN
content/post/installfest/linux.png View File

Before After
Width: 413  |  Height: 280  |  Size: 155 KiB

BIN
content/post/intersocs-beers/hanginthere.png View File

Before After
Width: 413  |  Height: 280  |  Size: 192 KiB

+ 16
- 0
content/post/intersocs-beers/index.md View File

@@ -0,0 +1,16 @@
---
author: vadimck
banner: hanginthere.png
date: '2011-06-29 17:49:08'
tags:
- Intersocs
title: Intersocs Beers
---

This Friday, redbrick will be joined by other networking societies across
Ireland and the UK for some drinks.

Be sure to come along and get to know the faces of other socs.

It takes place this Friday 1st July at 7:30pm in TGI Fridays, St. Stephens
Green.

BIN
content/post/iss-network-outage/downtime.png View File

Before After
Width: 413  |  Height: 280  |  Size: 119 KiB

+ 15
- 0
content/post/iss-network-outage/index.md View File

@@ -0,0 +1,15 @@
---
author: polka
banner: downtime.png
date: '2011-12-19 21:00:00'
tags:
- ISS
- Network Outage
title: ISS Network Outage
---

Due to ISS network outages, Redbrick is going to experience some downtime on
Wednesday the 21st and Thursday the 29th of December.

Services will continue as normal apart from these two days, and we apologise for
any inconvenience caused.

BIN
content/post/missing-member/bunbun.jpg View File

Before After
Width: 413  |  Height: 280  |  Size: 70 KiB

BIN
content/post/missing-member/bunbun_small.jpg View File

Before After
Width: 180  |  Height: 254  |  Size: 20 KiB

+ 42
- 0
content/post/missing-member/index.md View File

@@ -0,0 +1,42 @@
---
author: Haus
banner: bunbun.jpg
date: '2012-02-04 14:48:24'
tags:
- missing member
- bunbun
title: Missing Member
---

One of our members has been reported as missing to the Gardai.

If anyone has seen Paul Bunbury(bunbun) since Thursday the 2nd of February at
approx. 4pm can they please either contact Whitehall Garda Station on 01 666
4500 or get in touch with us.

<!-- more -->

**Update**: A poster has been made. Please print it off and put it up in your
local area, no matter where you are.
![bunbun_small](bunbun_small.jpg)

[Email Us](mailto:committee@redbrick.dcu.ie)

Here's the post made on boards.ie about him, it includes a picture of him:
[http://tinyurl.com/75bhc5j](http://tinyurl.com/75bhc5j) ![bunbun](bunbun.jpg)

Please retweet this post or make another post to twitter with the hashtag
#FindPaulB [http://tinyurl.com/FindPaulB](http://tinyurl.com/FindPaulB)

He was last seen in the Redbrick/Engsoc Common Room (N109A) but nobody has been
able to contact him since. His family are very worried about him.

Any information about his whereabouts since Thursday the 2nd of February at 4pm
will be greatly appreciated.

There have also been posts made to the Redbrick Facebook group about him:
[https://www.facebook.com/groups/167418566612957/](https://www.facebook.com/groups/167418566612957/)

Please keep an eye out for him and spread the word.

Thanks from all of the redbrick committee members.

+ 20
- 0
content/post/new-redbrick-site-launched/index.md View File

@@ -0,0 +1,20 @@
---
author: tziegler
banner: site.png
date: '2011-09-26 00:00:00'
title: New Redbrick Site Launched
---

Well here it is. Just a few hours later than scheduled the new Redbrick site is
up and ready for you to explore. And we need you to do just that.

<!-- more -->

We're delighted with the new site as we hope you are too, but it's not finished
yet. We have big plans to integrate a new events system as well as some other
cool new features which we'll be talking about over the next few weeks. In the
mean time, please explore the new site and
[report anything that seems a bit borked](mailto:vadimck@redbrick.dcu.ie) to our
webmaster VadimCK.

Bye for now!

BIN
content/post/new-redbrick-site-launched/site.png View File

Before After
Width: 413  |  Height: 280  |  Size: 60 KiB

+ 22
- 0
content/post/newyear-bigplans/index.md View File

@@ -0,0 +1,22 @@
---
author: tziegler
banner: reggie.jpg
date: '2011-09-23 19:37:49'
tag:
- new year
title: New Year. Big Plans.
---

So it's the beginning of another year and we've got an awful lot going on. We
have the new website and branding completed over the summer and we have some
great things lined up for the next few months.

<!-- more -->

![reggie](reggie.jpg) There are 2 main goals of the year. The first is to keep
doing what we do best but make that even better. The second is to do some events
and talks to try and gain as many new members as possible. We've got some great
talks lined up from some good speakers and we have some ideas for some new and
improved services over the next few months.

Watch this space.

BIN
content/post/newyear-bigplans/reggie.jpg View File

Before After
Width: 413  |  Height: 274  |  Size: 23 KiB

BIN
content/post/paul-bunbury/bunbunupdate.png View File

Before After
Width: 413  |  Height: 280  |  Size: 134 KiB

+ 29
- 0
content/post/paul-bunbury/index.md View File

@@ -0,0 +1,29 @@
---
author: polka
banner: bunbunupdate.png
date: '2012-03-13 19:30:00'
title: Paul Bunbury
---

Hi all,

As you know, one of our members went missing on the 2nd of February. Paul
Bunbury, Redbrick username of "bunbun" was a third year Computer Applications
student.

We are sorry to say that on the 13th of March, remains removed from the Liffey
were identified as Paul's.

<!-- more -->

We offer the sincerest condolences to the Bunbury family at this time, as well
as Paul's friends. There are many of his friends in Redbrick, and Paul was one
of our greatest personalities.

We will all miss Paul sorely, and we would like to thank everyone who shared
Paul's picture and information, and those who dedicated their time to putting up
posters and searching for him.

"Good-night, sweet prince; And flights of angels sing thee to thy rest."

Rest in peace Paul.

+ 36
- 0
content/post/programming-talks-workshops/index.md View File

@@ -0,0 +1,36 @@
---
author: tziegler
banner: programming.png
date: '2011-10-10 00:30:00'
tags:
- talks
title: Programming Talks and Workshops
---

Well here we are in Week 3 already. How the hell did that happen? It has been a
hectic week signing up all our new members and getting the Freshers ball sorted.
But now I'd like to talk about what we're doing with the feedback we've received
from members so far.

<!-- more -->

As most of you know, we've asked members to fill out a survey with some
questions about Redbrick and the direction they want to see it go. I personally
have been pretty surprised with how much effort some members have gone to to
give their opinions and criticisms. All are greatly appreciated. So this year,
as well as admin training, we will also be running programming workshops every
other week. These will either be run by our own admin team or by guest speakers.
An awful lot of people asked us for more programming related talks and a lot of
people specifically asked for extra help in programming. Well we heard you and
we're making it happen. Keep your eyes on the weekly announce for more
information on that.

Finally, we've been getting tonnes of feedback for the new site which has been
extremely helpful. We know there are a few little things here and there that
need to be done but we're working hard on getting it all sorted. As some of you
may have noticed, Webmail has received a makeover. We are now back to running
Roundcube. The boards are being themed in the coming weeks and you may notice a
few little UI tweaks around the site as well.

If you have any feedback at all please
[contact the committee](mailto:committee@redbrick.dcu.ie) and let us know.

BIN
content/post/programming-talks-workshops/programming.png View File

Before After
Width: 413  |  Height: 280  |  Size: 290 KiB

+ 49
- 0
content/post/techweek/index.md View File

@@ -0,0 +1,49 @@
---
author: Twister
banner: techweek.png
date: '2014-02-28 21:55:00'
tags:
- TechWeekDCU
- Amazon
- Raspberry Pi
- Opennet
- Symantec
title: Techweek
---

Tech Week is back again this year with lots of techy goodness planned.

We have something tech for everyone with topics such as 3D Modelling, Web
Development, Top Raspberry Pi Projects, Web Security, Coding Competition all
making an appearance throughout the week!

[techweek.dcu.ie](http://techweek.dcu.ie/) for more info!

<!-- more -->

DCU President Brian MacCraith will be powering on this exciting week as DCU
embraces a celebration of all things Technology.

There will be inspiring talks covering a world wide web of topics delivered by
the best in the Tech Industry. Companies such as Amazon, Openet and Symantec
will be providing an excellent opportunity for students to get a real feel for
the places they can go in the tech field.

We have a coding competition run by Openet with uber prizes up to 1000 euros.
Last year 5 students also got job offers as a result this event, it's not to be
missed!

Amazon will be blessing us with their expert insightful talks and will also be
providing an opportunity to meet and greet with the experts in an informal
environment, were students can ask questions and exchange their CVs :)

Symantec will be delivering some very high-caliber talks, giving students an
insider view of what its like to work on a Malware threat response team within
Symantec.

We have a large array of other inspirational talks spanning 3D Modelling,
Web/Mobile Development, Security and Raspberry pi projects. Hopefully covering
all the bases and filling you with technical lust for the hacker culture within
which we live. I hope you are as excited as we are!

Full timetable here: [techweek.dcu.ie](http://techweek.dcu.ie/)

BIN
content/post/techweek/techweek.png View File

Before After
Width: 413  |  Height: 280  |  Size: 22 KiB

+ 77
- 0
content/post/week-4/index.md View File

@@ -0,0 +1,77 @@
---
author: kylar
banner: intercom.png
date: '2014-10-13'
tags:
- announce
- intercom
- screen
- associates
thumbnail: logo.png
title: Week 4
---

This week we're filling this shortening evenings with some great events. It's
all about quality, not quantity.

Without further ado the agenda for the week is as follows:

- Screen@Redbrick
- Associate Talks
- Helpdesk Talks
- Intercom@Redbrick

Interested?? OF COURSE YOU ARE for more info, click below or check our
[Facebook page](https://www.facebook.com/dcuredbrick).

<!-- more -->

# = Screen@Redbrick =

We've had to postpone this as we have admin exams at 6pm. So we're going to
reschedule for next week and change up the movie to the cheesy 1995 classic
"Hackers" Sorry for the inconvenience, we'll make sure you guys get all of next
week's details sooner. We're still ironing out a few bugs on this end.

# = Associate Talks: elephant =

Topic: "Spammers Hate Him! One weird trick for staying secure online" When:
Tuesday 14th October at 18:00 Where: C115

Social media accounts are valuable to scammers and spammers, who want to make a
quick buck off your reputation. Here's a few tips to help make your accounts
harder to abuse so hold on to your tinfoil hats kids Diarmaid MacManus will be
talking to us about how to stay secure online, some of the tips and tricks he's
learned from his time in application security with various multinationals. If
you don't leave this talk paranoid we'll be surprised!

# = Helpdesk Talks =

Topic: How to get up and running with Redbrick. Where: LG25 When: Wednesday 15th
October 15:00 Cian Butler will be guiding you through your first steps using
Redbrick services. He'll be walking through how to use your web space, logging
into IRC and how to run programmes on our development servers. With the rest of
the committee on hand to help out we should have you up and running in no time.

# = Intercom@Redbrick =

![intercom](intercom.png) This week we see another company come to pay us a
visit; this week it's Intercom. Intercom has only recently had its 3rd birthday,
yet it's making huge a serious impact on how companies deal with their
customers. Intercom have had developers, engineers and business join them from
companies as big as Amazon and Google. Come along on Thursday and see how
Intercom do what they do, and what it's like to work for them.

We've got: Brian White and Brian Long (make sure to call him Robin) coming to
talk about running Intercom. Matthew Barrington will be fanboying to the extreme
about his time with Intercom.

This should be a great evening, for anyone that may have been at the inside
intercom meetings throughout the year you know how interesting and enthusiastic
the Intercomrades are; for those who haven't you should definitely come along
and witness it first hand.

Don't forget to keep an eye on our various social media soapboxes:

- Twitter @RedbrickDCU
- Facebook: https://www.facebook.com/dcuredbrick

BIN
content/post/week-4/intercom.png View File

Before After
Width: 370  |  Height: 111  |  Size: 12 KiB

BIN
content/post/week-4/logo.png View File

Before After
Width: 512  |  Height: 512  |  Size: 18 KiB

BIN
content/post/welcome-freshers/freshers.png View File

Before After
Width: 413  |  Height: 280  |  Size: 240 KiB

+ 30
- 0
content/post/welcome-freshers/index.md View File

@@ -0,0 +1,30 @@
---
author: polka
banner: freshers.png
date: '2013-09-23 15:46:27'
tags:
- freshers
title: Welcome Freshers!
---

Hey everyone.
We'd all like to welcome all our incoming first years to DCU, welcome to
university! We will be meeting you during Freshers week, and again on Clubs and
Societies Days.

<!-- more -->

![freshers stand](freshers.png)We're currently planning our first few events of
the year, including our Introduction to Redbrick Talk, and the Freshers Ball!
Both of these are a fantastic opportunity to meet fellow students from all
years, and make friends that will last through the years. As one of DCU's oldest
societies, we can help you settle into college life, and show you how important
society life is to your college experience.

Be sure to check out our Facebook group and our Wiki, and we look forward to
meeting you very soon!

We will be announcing details for the first few weeks back within the next
fortnight.

w00t!

+ 3
- 3
content/search.md View File

@@ -1,6 +1,6 @@
---
title: "Search"
title: 'Search'
sitemap:
priority : 0.1
layout: "search"
priority: 0.1
layout: 'search'
---

+ 0
- 16
layouts/404.html