Skip to content

Instantly share code, notes, and snippets.

View MiniXC's full-sized avatar
🏠
Working from home

Christoph Minixhofer MiniXC

🏠
Working from home
  • Edinburgh
View GitHub Profile
@MiniXC
MiniXC / vagrant-stdin-fixes.sh
Created July 20, 2015 10:51
vagrant-stdin-fixes
# fixes "default: stdin: is not a tty" error message
# source: http://foo-o-rama.com/vagrant--stdin-is-not-a-tty--fix.html
s.inline = "sudo sed -i '/tty/!s/mesg n/tty -s \\&\\& mesg n/' /root/.profile"
# fixes "dpkg-reconfigure: unable to re-open stdin: No file or directory" error message
# source: http://serverfault.com/a/500778
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
@MiniXC
MiniXC / clip-path-polyfill.js
Last active May 2, 2016 13:55
Clip-Path Polyfill: Only works for "clip-path: inset" and absolute/fixed elements. Depends on polyfill.js (https://philipwalton.github.io/polyfill).
/*
* Dependends on: https://philipwalton.github.io/polyfill
* Only works for:
* -> clip-path: inset
* -> absolute/fixed positioned elements
*/
function ClipPath() {
var rectVals, rectElements, //read by setRectOnElements, set by init
polyfill = new Polyfill({
@MiniXC
MiniXC / attributeeditable.js
Last active January 4, 2017 20:46
Makes attributes with the attributeeditable attribute editable. Demo: http://codepen.io/MiniXC/pen/mOXqyP
let observer = new MutationObserver(mutations => {
mutations.forEach(mutation => {
if(mutation.attributeName === "attributeeditable") {
if(mutation.target.hasAttribute("attributeeditable") && mutation.target.getAttribute("attributeeditable") !== 'false') {
createPopovers();
} else {
editAttributes(mutation.target);
mutation.target.removeAttribute("data-attributeeditable");
}
}
google-site-verification: googledf49824418c4dc3a.html
const keva = require('keva');
module.exports = (name, json) => {
let schema = {
definitions: {},
title: name,
type: 'object',
properties: json
};
schema.properties = convert(schema.properties, schema.definitions);
@MiniXC
MiniXC / remscroll.js
Last active September 18, 2017 09:10
remembers and sets the scrolling position of the current page after reload
var href = 'remscroll.js:' + window.location.href;
window.addEventListener('load', () => {
let scrollPos = localStorage.getItem(href);
if(scrollPos) {
document.scrollingElement.scrollTop = Number(scrollPos);
}
});
document.addEventListener('scroll', () => {
halveEvens :: [Int] -> [Int]
halveEvens xs = [x `div` 2 | x <- xs, x `mod` 2 == 0]
-- Informatics 1 - Functional Programming
-- Tutorial 3
--
-- Week 5 - Due: 19-20 Oct.
module Tutorial3 where
import Data.Char
import Test.QuickCheck
import Data.Char
import Test.QuickCheck
-- count str = length [c | c <- str, isUpper c || isDigit c]
count = length . filter c
where c x = isUpper x || isDigit x
countRec [] = 0
countRec (c:str) = (if isUpper c || isDigit c then 1 else 0) + countRec str
from urllib.request import urlopen, Request
from urllib.error import HTTPError
import logging
from lxml.html import parse
def yahoo_scrape(symbol_string):
"""
returns the string sector for a given symbol
"""
sector_string = ''