Skip to content

Instantly share code, notes, and snippets.

View andreasvirkus's full-sized avatar
🙊
made you look

andreas andreasvirkus

🙊
made you look
View GitHub Profile
@andreasvirkus
andreasvirkus / README.md
Created May 11, 2020 09:00
A lightweight Deno server using Oak.

Deno server

A lightweight deno server that runs on oak.

Run it with deno --allow-net server.ts

@andreasvirkus
andreasvirkus / service-worker.js
Created April 28, 2020 16:00
SW for vue-cli with Google's workbox
// eslint-disable-next-line no-undef
workbox.setConfig({
debug: false
})
workbox.core.skipWaiting()
workbox.precaching.precacheAndRoute([])
workbox.routing.registerRoute(
@andreasvirkus
andreasvirkus / base.css
Last active December 8, 2020 03:24
When I'm too lazy to set up Tailwind and PurgeCSS for a prototype or a small project, then this will do.
/* Handicraft reset */
*,
*::before,
*::after {
box-sizing: inherit;
}
html {
box-sizing: border-box;
}
body {
@andreasvirkus
andreasvirkus / MasterList.vue
Created April 15, 2020 13:32
Demonstrating recursive Vue components
<template>
<div id="app">
<nested-list
v-for="item in list"
:key="item.name"
:name="item.name"
:items="item.items"
:level="0"
/>
</div>
export const strip = html => {
const doc = new DOMParser().parseFromString(html, 'text/html')
return (doc.body.textContent || '').trim()
}
const calculatePages = (length: number, current: number, total: number) => {
if (length === 0) return []
if (length === 1) return [current]
if (total <= length + 4) return Array.from({ length: total }, (_v, i) => i + 1)
const jumpSize = Math.ceil(length / 2)
const centerStart = Math.min(Math.max(current - (length - jumpSize), 3), total - length - 1)
const jumpStart = current <= length + 1 ? 2 : `-${jumpSize}`
const jumpEnd = current >= total - length ? total - 1 : `+${jumpSize}`
return [1, jumpStart, ...Array.from({ length }, (_v, i) => centerStart + i), jumpEnd, total]
}
// Defaults
const defaultOptions = {
format: 'image/png',
quality: 0.92,
width: undefined,
height: undefined,
Canvas: undefined
}
const createCanvas = options => (options.Canvas ? new options.Canvas() : window.document.createElement('canvas'))
export const convertTextToImage = (context, text, font = 'normal normal 24px cursive', color = '#000000') => {
context.font = font
context.fillStyle = color
context.fillText(text, 0, 10)
context.canvas.width = context.measureText(text).width
return context.canvas.toDataURL()
}
@andreasvirkus
andreasvirkus / canvasStitch.js
Created December 14, 2019 12:02
Stitch together 2 images and screenshot them
export const screenshot = (canvasRef, base, avatar) => {
const ctx = canvasRef.getContext('2d')
const imageObj1 = new Image()
const imageObj2 = new Image()
imageObj1.src = base.src
imageObj1.onload = () => {
ctx.drawImage(imageObj1, 0, 0, base.height, base.width)
imageObj2.src = avatar.src
imageObj2.onload = () => {
ctx.drawImage(imageObj2, avatar.left, avatar.top, avatar.height, avatar.width)
package main
import (
"fmt"
"math"
)
const round = 1000000.0
func Sqrt(x float64) float64 {