Skip to content

Instantly share code, notes, and snippets.

Miguel Grinberg miguelgrinberg

Block or report user

Report or block miguelgrinberg

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
miguelgrinberg /
Created Oct 28, 2019
Example code from my "MicroPython Heats My Home" presentation.
DHT22_PIN = 4 # D2 pin / GPIO4
LED_PIN = 2 # D4 pin / GPIO2
WIFI_ESSID = 'your-wifi-network-name'
WIFI_PASSWORD = 'your-wifi-password'
INTERVAL = 5 * 60
#!/usr/bin/env python
# Before you run this script make sure Flask-SQLAlchemy is installed in
# your virtual environment
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' # in-memory
View .vimrc
" plugins
set nocompatible
filetype off
let need_to_install_plugins=0
if empty(system("grep lazy_load ~/.vim/bundle/vundle/autoload/vundle.vim"))
echo "Installing Vundle..."
echo ""
silent !mkdir -p ~/.vim/bundle
silent !rm -rf ~/.vim/bundle/vundle
silent !git clone ~/.vim/bundle/vundle
#!/bin/env python
# -------------------------------------------------------------------------------
# This is a basic implementation of comments with a flat structure,
# as described in my article:
# -------------------------------------------------------------------------------
from datetime import datetime
from flask import Flask
View softcover-dockerfile
FROM phusion/baseimage:latest
MAINTAINER Nick Merwin <>
ENV HOME /root
RUN /etc/my_init.d/
CMD ["/sbin/my_init"]
# ==============================================================================
# install deps
miguelgrinberg /
Created Jul 13, 2017
from flask import Flask, render_template
from flask_bootstrap import Bootstrap
from flask_wtf import Form
from wtforms.fields import DateField
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'

Keybase proof

I hereby claim:

  • I am miguelgrinberg on github.
  • I am miguelgrinberg ( on keybase.
  • I have a public key whose fingerprint is 2488 9E35 E9BC 5DDD D3D6 C648 EE0C 3C4C F171 F9A3

To claim this, I am signing this object:

import asyncio
loop = asyncio.get_event_loop()
async def hello():
await asyncio.sleep(3)
if __name__ == '__main__':
# This simple Python script runs simulations for different retry algorithms
# The results are printed as CSV data to the console
# See this article on my blog for details:
from random import random, choice
View heat_3a.yaml
heat_template_version: 2013-05-23
description: Template that installs a wordpress server and supporting MySQL database running on separate servers
type: string
label: Image name or ID
description: Image to be used for server. Please use an Ubuntu based image.
default: trusty-server-cloudimg-amd64
You can’t perform that action at this time.