mirror of
https://github.com/simon987/simon987.net.git
synced 2025-04-10 14:06:41 +00:00
Update projects, finish jombotron
This commit is contained in:
parent
2ed72f2710
commit
be190858d9
1
jenkins/Jenkinsfile
vendored
1
jenkins/Jenkinsfile
vendored
@ -8,6 +8,7 @@ remote.allowAnyHosts = true
|
||||
remote.retryCount = 3
|
||||
remote.retryWaitSec = 3
|
||||
logLevel = 'FINER'
|
||||
remote.port = 2299
|
||||
|
||||
pipeline {
|
||||
agent none
|
||||
|
@ -8,7 +8,7 @@
|
||||
</md-card-header>
|
||||
|
||||
<md-card-content>
|
||||
This is a partial list of my active programming projects
|
||||
This is a partial list of my programming projects
|
||||
</md-card-content>
|
||||
|
||||
<Project
|
||||
@ -21,16 +21,6 @@
|
||||
featured
|
||||
/>
|
||||
|
||||
<Project
|
||||
name="task_tracker"
|
||||
date="[2019-02]"
|
||||
description="Fast task tracker (job queue) with authentication, statistics and web frontend"
|
||||
:techs="['Go', 'PostgreSQL', 'Angular', 'Test-Driven']"
|
||||
:links="[{github: 'https://github.com/simon987/task_tracker'}, {demo:'https://tt.simon987.net'}]"
|
||||
media="/static/tt.png"
|
||||
featured
|
||||
/>
|
||||
|
||||
<Project
|
||||
name="Music graph (API & UI)"
|
||||
date="[2019-04]"
|
||||
@ -39,11 +29,37 @@
|
||||
Uses a graph-database as its core and allows subsecond searching through tens of millions of relationships
|
||||
with its mobile-friendly interface"
|
||||
:techs="['D3.js', 'Graph Database', 'Vue.js', 'Python', 'Bash', 'Java']"
|
||||
:links="[{'github (ui)': 'https://github.com/simon987/music-graph-ui'}, {'github (api)': 'https://github.com/simon987/music-graph-api'}, {website: 'https://mg.simon987.net'}]"
|
||||
:links="[{'github (ui)': 'https://github.com/simon987/music-graph-ui'},
|
||||
{'github (api)': 'https://github.com/simon987/music-graph-api'}, {website: 'https://mg.simon987.net'}]"
|
||||
media="/static/mg.png"
|
||||
featured
|
||||
/>
|
||||
|
||||
<Project
|
||||
name="sist2"
|
||||
date="[2019-11]"
|
||||
description='Lightning-fast file system indexer and search tool. Sist2 is a more powerful and
|
||||
more lightweight version of its Python predecessor.
|
||||
It is currently being used to allow full-text search of terabytes of online documents such
|
||||
as scientific papers and comic books at
|
||||
<a href="https://searchin.the-eye.eu" target="_blank">the-eye.eu</a>.'
|
||||
:techs="['C', 'LMDB', 'Elasticsearch']"
|
||||
:links="[{'github': 'https://github.com/simon987/sist2'}, {website:'https://searchin.the-eye.eu'}]"
|
||||
media="/static/c.png"
|
||||
featured
|
||||
/>
|
||||
|
||||
|
||||
<Project
|
||||
name="task_tracker"
|
||||
date="[2019-02]"
|
||||
description="Fast task tracker (job queue) with authentication, statistics and web frontend"
|
||||
:techs="['Go', 'PostgreSQL', 'Angular', 'Test-Driven']"
|
||||
:links="[{github: 'https://github.com/simon987/task_tracker'}, {demo:'https://tt.simon987.net'}]"
|
||||
media="/static/tt.png"
|
||||
featured
|
||||
/>
|
||||
|
||||
<Project
|
||||
name="irarchives"
|
||||
date="[2019-05]"
|
||||
@ -55,27 +71,15 @@
|
||||
:techs="['Python', 'PostgreSQL', 'Javascript']"
|
||||
:links="[{'github': 'https://github.com/simon987/irarchives'}]"
|
||||
media="/static/irar.png"
|
||||
featured
|
||||
/>
|
||||
|
||||
|
||||
<Project
|
||||
name="Simple Incremental Search Tool"
|
||||
date="[2018-01]"
|
||||
description="Simple web frontend to an elasticsearch database made for local files indexing.
|
||||
Enables lightning-fast incremental (as you type) search in a modern Web UI."
|
||||
:techs="['Elasticsearch', 'Python', 'Flask', 'Javascript', 'SQLite', 'Test-Driven']"
|
||||
:links="[{github: 'https://github.com/simon987/Simple-Incremental-Search-Tool'}, {demo:'https://sist.simon987.net'}]"
|
||||
media="/static/sist.png"
|
||||
/>
|
||||
|
||||
<Project
|
||||
name="Misc Web scraping"
|
||||
date="[2018-02]"
|
||||
description=""
|
||||
:techs="['Python', 'SQLite']"
|
||||
media="/static/python.png"
|
||||
/>
|
||||
<!-- <Project-->
|
||||
<!-- name="Misc Web scraping"-->
|
||||
<!-- date="[2018-02]"-->
|
||||
<!-- description=""-->
|
||||
<!-- :techs="['Python', 'SQLite']"-->
|
||||
<!-- media="/static/python.png"-->
|
||||
<!-- />-->
|
||||
|
||||
<Project
|
||||
name="OD-Database"
|
||||
@ -86,41 +90,41 @@
|
||||
media="/static/oddb.png"
|
||||
/>
|
||||
|
||||
<Project
|
||||
name="task_tracker_drone"
|
||||
date="[2019-03]"
|
||||
description="General purpose 'set and forget' task runner and client library for task_tracker"
|
||||
:techs="['Python']"
|
||||
:links="[{github: 'https://github.com/simon987/task_tracker_drone'}]"
|
||||
media="/static/worker.png"
|
||||
/>
|
||||
<!-- <Project-->
|
||||
<!-- name="task_tracker_drone"-->
|
||||
<!-- date="[2019-03]"-->
|
||||
<!-- description="General purpose 'set and forget' task runner and client library for task_tracker"-->
|
||||
<!-- :techs="['Python']"-->
|
||||
<!-- :links="[{github: 'https://github.com/simon987/task_tracker_drone'}]"-->
|
||||
<!-- media="/static/worker.png"-->
|
||||
<!-- />-->
|
||||
|
||||
<Project
|
||||
name="ws_bucket"
|
||||
date="[2019-03]"
|
||||
description="Simple websocket-based file upload service with token-based auth. Currently used to allow secure file upload for OD-Database workers."
|
||||
:techs="['Go', 'Test-Driven']"
|
||||
:links="[{github: 'https://github.com/simon987/ws_bucket'}]"
|
||||
media="/static/go.png"
|
||||
/>
|
||||
<!-- <Project-->
|
||||
<!-- name="ws_bucket"-->
|
||||
<!-- date="[2019-03]"-->
|
||||
<!-- description="Simple websocket-based file upload service with token-based auth. Currently used to allow secure file upload for OD-Database workers."-->
|
||||
<!-- :techs="['Go', 'Test-Driven']"-->
|
||||
<!-- :links="[{github: 'https://github.com/simon987/ws_bucket'}]"-->
|
||||
<!-- media="/static/go.png"-->
|
||||
<!-- />-->
|
||||
|
||||
<Project
|
||||
name="DataArchivist.net"
|
||||
date="[2019-04]"
|
||||
description="Personal data archival blog"
|
||||
:techs="['HTML', 'Hugo']"
|
||||
:links="[{'github': 'https://github.com/simon987/dataarchivist.net'}, {website: 'https://dataarchivist.net'}]"
|
||||
media="/static/rss.png"
|
||||
/>
|
||||
<!-- <Project-->
|
||||
<!-- name="DataArchivist.net"-->
|
||||
<!-- date="[2019-04]"-->
|
||||
<!-- description="Personal data archival blog"-->
|
||||
<!-- :techs="['HTML', 'Hugo']"-->
|
||||
<!-- :links="[{'github': 'https://github.com/simon987/dataarchivist.net'}, {website: 'https://dataarchivist.net'}]"-->
|
||||
<!-- media="/static/rss.png"-->
|
||||
<!-- />-->
|
||||
|
||||
<Project
|
||||
name="simon987.net"
|
||||
date="[2019-04]"
|
||||
description="My personal website"
|
||||
:techs="['Pixi.js', 'Vue.js']"
|
||||
:links="[{'github': 'https://github.com/simon987/simon987.net'}, {website: 'https://simon987.net'}]"
|
||||
media="/static/net.png"
|
||||
/>
|
||||
<!-- <Project-->
|
||||
<!-- name="simon987.net"-->
|
||||
<!-- date="[2019-04]"-->
|
||||
<!-- description="My personal website"-->
|
||||
<!-- :techs="['Pixi.js', 'Vue.js']"-->
|
||||
<!-- :links="[{'github': 'https://github.com/simon987/simon987.net'}, {website: 'https://simon987.net'}]"-->
|
||||
<!-- media="/static/net.png"-->
|
||||
<!-- />-->
|
||||
|
||||
<Project
|
||||
name="Architeuthis"
|
||||
@ -133,37 +137,25 @@
|
||||
media="/static/archi.png"
|
||||
/>
|
||||
|
||||
<Project
|
||||
name="pg_hamming"
|
||||
date="[2019-07]"
|
||||
description="Custom C-Level function for PostgreSQL to calculate hamming distance
|
||||
for fixed-length BYTEA datatype. Was designed and optimized to drastically reduce
|
||||
the query time of the irarchives project."
|
||||
:techs="['C', 'PostgreSQL']"
|
||||
:links="[{'github': 'https://github.com/simon987/pg_hamming'}]"
|
||||
media="/static/hamming.png"
|
||||
/>
|
||||
<!-- <Project-->
|
||||
<!-- name="pg_hamming"-->
|
||||
<!-- date="[2019-07]"-->
|
||||
<!-- description="Custom C-Level function for PostgreSQL to calculate hamming distance-->
|
||||
<!-- for fixed-length BYTEA datatype. Was designed and optimized to drastically reduce-->
|
||||
<!-- the query time of the irarchives project."-->
|
||||
<!-- :techs="['C', 'PostgreSQL']"-->
|
||||
<!-- :links="[{'github': 'https://github.com/simon987/pg_hamming'}]"-->
|
||||
<!-- media="/static/hamming.png"-->
|
||||
<!-- />-->
|
||||
|
||||
|
||||
<Project
|
||||
name="beemer"
|
||||
date="[2019-07]"
|
||||
description="beemer is an utility tool that executes a custom command on files written in a watched
|
||||
directory. It is mainly used to facilitate offloading of large datasets generated by
|
||||
scraping jobs to cloud storage."
|
||||
:techs="['Go']"
|
||||
:links="[{'github': 'https://github.com/simon987/beemer'}]"
|
||||
media="/static/go.png"
|
||||
/>
|
||||
|
||||
<Project
|
||||
name="phpBB request system"
|
||||
date="[2019-07]"
|
||||
description="Simple request system for phpBB3.2 built for an online community"
|
||||
:techs="['PHP']"
|
||||
:links="[{'github': 'https://github.com/simon987/phpBB-reqs'}]"
|
||||
media="/static/phpbb.png"
|
||||
/>
|
||||
<!-- <Project-->
|
||||
<!-- name="phpBB request system"-->
|
||||
<!-- date="[2019-07]"-->
|
||||
<!-- description="Simple request system for phpBB3.2 built for an online community"-->
|
||||
<!-- :techs="['PHP']"-->
|
||||
<!-- :links="[{'github': 'https://github.com/simon987/phpBB-reqs'}]"-->
|
||||
<!-- media="/static/phpbb.png"-->
|
||||
<!-- />-->
|
||||
|
||||
<Project
|
||||
name="reddit_feed"
|
||||
@ -186,14 +178,37 @@
|
||||
/>
|
||||
|
||||
<Project
|
||||
name="telegram ingest"
|
||||
date="[2019-08]"
|
||||
description="Pushshift Telegram Ingest."
|
||||
:techs="['Python', 'Elasticsearch', 'Javascript']"
|
||||
:links="[{'github': 'https://github.com/pushshift/telegram'}]"
|
||||
media="/static/telegram.png"
|
||||
fork
|
||||
name="beemer"
|
||||
date="[2019-07]"
|
||||
description="beemer is an utility tool that executes a custom command on files written in a watched
|
||||
directory. It is mainly used to facilitate offloading of large datasets generated by
|
||||
scraping jobs to cloud storage."
|
||||
:techs="['Go']"
|
||||
:links="[{'github': 'https://github.com/simon987/beemer'}]"
|
||||
media="/static/go.png"
|
||||
/>
|
||||
|
||||
<!-- <Project-->
|
||||
<!-- name="telegram ingest"-->
|
||||
<!-- date="[2019-08]"-->
|
||||
<!-- description="Pushshift Telegram Ingest."-->
|
||||
<!-- :techs="['Python', 'Elasticsearch', 'Javascript']"-->
|
||||
<!-- :links="[{'github': 'https://github.com/pushshift/telegram'}]"-->
|
||||
<!-- media="/static/telegram.png"-->
|
||||
<!-- fork-->
|
||||
<!-- />-->
|
||||
|
||||
<Project
|
||||
name="Simple Incremental Search Tool"
|
||||
date="[2018-01]"
|
||||
description="Simple web frontend to an elasticsearch database made for local files indexing.
|
||||
Enables lightning-fast incremental (as you type) search in a modern Web UI."
|
||||
:techs="['Elasticsearch', 'Python', 'Flask', 'Javascript', 'SQLite', 'Test-Driven']"
|
||||
:links="[{github: 'https://github.com/simon987/Simple-Incremental-Search-Tool'}]"
|
||||
media="/static/sist.png"
|
||||
archived
|
||||
/>
|
||||
|
||||
</md-card>
|
||||
|
||||
<router-link to="/">
|
||||
|
78
simon987/src/components/Contact.vue
Normal file
78
simon987/src/components/Contact.vue
Normal file
@ -0,0 +1,78 @@
|
||||
<template>
|
||||
<div id="content" class="md-layout">
|
||||
<md-card class="md-layout-item md-elevation-10">
|
||||
<md-card-header>
|
||||
<md-card-header-text>
|
||||
<span class="md-title"><md-icon class="md-size-2x">email</md-icon> Contact</span>
|
||||
</md-card-header-text>
|
||||
</md-card-header>
|
||||
|
||||
<md-card-content>
|
||||
You can contact me by email at <a href="mailto:me@simon987.net" class="mail">me@simon987.net</a>
|
||||
<a href="https://simon987.net/gpg">(GPG <md-icon>lock</md-icon>)</a>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
||||
<router-link to="/">
|
||||
<md-button class="md-fab md-fixed md-fab-top-left">
|
||||
<md-icon>arrow_back</md-icon>
|
||||
</md-button>
|
||||
</router-link>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
name: "Contact",
|
||||
components: {}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.md-card {
|
||||
background-color: white;
|
||||
margin: 2em;
|
||||
max-width: 1200px;
|
||||
min-width: inherit;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1250px) {
|
||||
|
||||
@media screen and (min-width: 600px) {
|
||||
.md-layout > .md-card {
|
||||
margin-top: 3.5rem;
|
||||
max-width: 90%;
|
||||
}
|
||||
}
|
||||
|
||||
.md-layout > .md-card {
|
||||
max-width: 100%;
|
||||
margin: 0;
|
||||
padding-top: 3rem;
|
||||
}
|
||||
|
||||
.md-layout > .md-card > .md-card-header {
|
||||
padding-left: 2rem;
|
||||
}
|
||||
|
||||
.md-layout > .md-card > .md-card-content {
|
||||
padding-left: 2rem;
|
||||
}
|
||||
|
||||
.md-fab {
|
||||
left: 5px;
|
||||
top: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.md-layout-item {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.mail {
|
||||
color: #F4511E !important;
|
||||
}
|
||||
|
||||
</style>
|
@ -10,6 +10,11 @@ import Grid from '../Grid';
|
||||
import Jumbotron from "./Jumbotron";
|
||||
|
||||
let themes = [
|
||||
{
|
||||
c1: 0xFA520B,
|
||||
c2: 0xFCB20C,
|
||||
c3: 0xE5E113
|
||||
},
|
||||
{
|
||||
c1: 0xf9989f,
|
||||
c2: 0xfccb8f,
|
||||
@ -40,11 +45,6 @@ let themes = [
|
||||
c2: 0xC184E9,
|
||||
c3: 0xD8C5C3
|
||||
},
|
||||
{
|
||||
c1: 0xFA520B,
|
||||
c2: 0xFCB20C,
|
||||
c3: 0xE5E113
|
||||
},
|
||||
{
|
||||
c1: 0xF97F0D,
|
||||
c2: 0xFE0B98,
|
||||
|
@ -8,25 +8,23 @@
|
||||
</md-card-header>
|
||||
|
||||
<md-card-content>
|
||||
<!-- - Software engineering student-->
|
||||
<!-- - Open source zealot-->
|
||||
<!-- - Data archival hobbyist-->
|
||||
Software engineering student, open source zealot, data archival hobbyist
|
||||
</md-card-content>
|
||||
|
||||
<div class="sections">
|
||||
<md-button to="/code" class="md-raised big-button">
|
||||
<md-icon class="md-accent">code</md-icon> Code
|
||||
<div class="desc">Projects portfolio</div>
|
||||
<div class="desc">Projects showcase</div>
|
||||
</md-button>
|
||||
|
||||
<md-button to="/" class="md-raised big-button">
|
||||
<md-button href="https://dataarchivist.net" target="_blank" class="md-raised big-button">
|
||||
<md-icon class="md-accent">edit</md-icon> Blog
|
||||
<div class="desc">Placeholder text</div>
|
||||
<div class="desc">Personal tech blog</div>
|
||||
</md-button>
|
||||
|
||||
<md-button to="/" class="md-raised big-button">
|
||||
<md-button to="/contact" class="md-raised big-button">
|
||||
<md-icon class="md-accent">email</md-icon> Contact
|
||||
<div class="desc">Placeholder text</div>
|
||||
<div class="desc">Contact page</div>
|
||||
</md-button>
|
||||
</div>
|
||||
</md-card>
|
||||
|
@ -1,16 +1,17 @@
|
||||
<template>
|
||||
<md-card>
|
||||
<md-card :class="{archived: archived}">
|
||||
<md-card-header>
|
||||
<md-card-header-text>
|
||||
<div class="md-title">
|
||||
<md-icon v-if="this.fork" md-src="/static/fork.svg"></md-icon>
|
||||
<md-icon v-if="this.featured">star</md-icon>
|
||||
<md-icon v-if="this.fork" md-src="/static/fork.svg"/>
|
||||
<md-icon v-if="this.featured" class="featured">star</md-icon>
|
||||
{{this.name}}
|
||||
<span class="muted" v-if="this.archived">(archived)</span>
|
||||
<TechChip :name="tech" :key="tech" v-for="tech in this.techs"/>
|
||||
</div>
|
||||
<div class="md-subhead">
|
||||
<span class="muted">{{this.date}}</span>
|
||||
{{this.description}}
|
||||
<span class="date">{{this.date}}</span>
|
||||
<span v-html="this.description"/>
|
||||
</div>
|
||||
</md-card-header-text>
|
||||
|
||||
@ -50,6 +51,10 @@ export default {
|
||||
featured: {
|
||||
default: false,
|
||||
type: Boolean
|
||||
},
|
||||
archived: {
|
||||
default: false,
|
||||
type: Boolean
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -65,11 +70,15 @@ export default {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.muted {
|
||||
.date {
|
||||
color: #9e9e9e;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.muted {
|
||||
color: #9e9e9e;
|
||||
}
|
||||
|
||||
.md-subhead {
|
||||
margin-top: 0.4rem;
|
||||
opacity: .8;
|
||||
@ -85,4 +94,12 @@ export default {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.archived {
|
||||
background-color: #EEEEEE;
|
||||
}
|
||||
|
||||
.featured {
|
||||
color: #FB8C00 !important;
|
||||
}
|
||||
</style>
|
||||
|
@ -1,7 +1,8 @@
|
||||
import Vue from 'vue'
|
||||
import Router from 'vue-router'
|
||||
import Grid from '../components/Grid'
|
||||
import Code from "../components/Code";
|
||||
import Code from '../components/Code'
|
||||
import Contact from '../components/Contact'
|
||||
|
||||
Vue.use(Router);
|
||||
|
||||
@ -17,6 +18,11 @@ export default new Router({
|
||||
path: '/code',
|
||||
name: 'Code',
|
||||
component: Code
|
||||
},
|
||||
{
|
||||
path: '/contact',
|
||||
name: 'Contact',
|
||||
component: Contact
|
||||
}
|
||||
]
|
||||
})
|
||||
|
BIN
simon987/static/c.png
Normal file
BIN
simon987/static/c.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
Loading…
x
Reference in New Issue
Block a user