The popular open-source contract for web designers and developers by Stuff & Nonsense
- Originally published: 23/12/2008
- Revised date: 15/12/2013
- Original post
#!/usr/bin/env python | |
import bz2 | |
import datetime | |
import os | |
import sys | |
import time | |
import urllib2 | |
import warnings |
# create a redis app | |
flynn create --remote "" redis | |
# create a release using the latest (at the time of writing) Docker Redis image | |
flynn -a redis release add -f config.json "https://registry.hub.docker.com/_/redis?tag=3.0.2" | |
# scale the server to one process. This may time out initially as the server pulls the image, but watch "flynn -a redis ps" and should come up. | |
flynn -a redis scale server=1 | |
# redis should now be running in the cluster at redis.discoverd:6379 |
Question: Can you write code implementing the consumer and producer pattern?
This is a classic concurrency problem where we have threads generating data to be consumed (producers) by other threads (consumers).
The implementation with POSIX threads can be a pain in the ass but it is quite straight forward in golang thanks to its concurrency constructs.
from os import urandom | |
from celery.beat import PersistentScheduler | |
from some_place import create_readis_connection # ! | |
class SingletonScheduler(PersistentScheduler): | |
def __init__(self, *args, **kwargs): | |
super(SingletonScheduler, self).__init__(*args, **kwargs) |
<div class="container"> | |
<div class="row"> | |
<div class="col-sm-6 col-md-4 col-md-offset-4"> | |
<h1 class="text-center login-title">Sign in to continue to Bootsnipp</h1> | |
<div class="account-wall"> | |
<img class="profile-img" src="https://lh5.googleusercontent.com/-b0-k99FZlyE/AAAAAAAAAAI/AAAAAAAAAAA/eu7opA4byxI/photo.jpg?sz=120" | |
alt=""> | |
<form class="form-signin"> | |
<input type="text" class="form-control" placeholder="Email" required autofocus> | |
<input type="password" class="form-control" placeholder="Password" required> |
@app.route('/login/<provider_name>', methods=['GET', 'POST']) | |
@authomatic.login('g') | |
@requires_ssl | |
def login(provider_name): | |
if g.user is not None and g.user.is_authenticated(): | |
return redirect(url_for('index')) | |
if authomatic.result: | |
if authomatic.result.error: | |
return 'Something went wrong: {0}'.format(authomatic.result.error.message) | |
if authomatic.result.user: |
As websites become more JavaScript heavy, it's harder to automate things like screenshotting for archival purposes. I've seen examples and suggestions to use PhantomJS for visual testing/archiving of websites, but have run into issues such as the non-rendering of webfonts. I've never tried out Selenium until today...and while I'm not thinking about performance implications yet, Selenium seems far more accurate than PhantomJS...which makes sense since it actually opens a real browser. And it's not too hard to script to do complex interactions: here's an [example of how to log in to Twitter, write a tweet, upload an image, and send a tweet via Selenium and DOM element selection](https://gist.github.com/dannguyen/8a6fa49253c1d6a0eb92
#!/bin/sh | |
### BEGIN INIT INFO | |
# Provides: btsync | |
# Required-Start: $local_fs $remote_fs | |
# Required-Stop: $local_fs $remote_fs | |
# Should-Start: $network | |
# Should-Stop: $network | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 0 1 6 | |
# Short-Description: Multi-user daemonized version of btsync. |
# -*- coding: utf-8 -*- | |
""" | |
An example flask application showing how to upload a file to S3 | |
while creating a REST API using Flask-Restful. | |
Note: This method of uploading files is fine for smaller file sizes, | |
but uploads should be queued using something like celery for | |
larger ones. | |
""" | |
from cStringIO import StringIO |